“闻声“自动化测试报告
"闻声"自动化测试
文章目录
- "闻声"自动化测试
- 一.web测试用例
- 二.自动化测试脚本编写
- 2.1 公共类AutoTestUtils
- 2.2 "闻声"未登录测试——MPUnLoginTest
- 2.4 "闻声"登录页测试——MPLoginTest
- 2.5 "闻声"歌曲列表页测试——MPListTest
- 2.6 "闻声"喜欢列表页测试——MPLikeListTest
- 2.7 添加歌曲页测试——MPUploadMusicTest
- 详细代码
- 三.自动化测试脚本测试结果
- 四.自动化测试脚本总结
一.web测试用例
根据页面分类书写对应页面的测试类,然后对主要功能进行测试。
二.自动化测试脚本编写
- 根据测试用例图进行测试用例脚本的编写:每个页面一个测试类,然后再对各个测试类中进行测试用例的编写。
- 公共属性单独放一个类(AutotestUtils),减少代码的冗余。
- 添加隐式等待,为了确保页面正确加载显示。
- 将浏览器设置为允许访问所有的链接(–remote-allow-origins=*)
需要的依赖:
<dependency>
<!-- junit5 新的编程和扩展模型 -->
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- junit5 参数化依赖 -->
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<!-- File相关依赖 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<!-- SLF4J API -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<!-- Logback 实现 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>1.8.2</version>
<scope>test</scope>
</dependency>
文件结构:
2.1 公共类AutoTestUtils
- 创建驱动
- 设置允许访问所有的连接
- 设置浏览器加载策略为 PageLoadStrategy.EAGER
- 设置⽆头模式
- 创建隐式等待
- 获取屏幕截图
注意:
- 保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试
类的类名,方便出现问题时进行检查。
例如: image 文件下的 " 2024-10-15/tests.ListPageTest-listPageRight-17-42-57-24.png "
2.2 "闻声"未登录测试——MPUnLoginTest
- 创建驱动并进入闻声登录页
- 检查未登录情况下进入闻声列表页的拦截是否工作正常
- 检查未登录情况下进入闻声喜欢的歌曲列表页的拦截是否工作正常
- 检查未登录情况下进入添加歌曲页的拦截是否工作正常
注意:
- 注意执行顺序
2.4 "闻声"登录页测试——MPLoginTest
- 创建驱动并进入"闻声"登录页
- 检查"闻声"登录页面是否加载成功
- 检查登录正常:使用两个存在的用户名进行登录
- 检查登录异常:用户名不存在、用户名格式错误、密码格式错误、密码不存在和密码错误的情况
注意:
- 登录正常输入内容时需要先刷新页面来清空文本框的内容,注册异常每个用例测试完后都需要刷新登录界面,以便后续测试能够成功进行
- 注意执行顺序
2.5 "闻声"歌曲列表页测试——MPListTest
- 创建驱动并登录成功后进入"闻声"列表页
- 检查博客列表页面是否加载成功
- 检查喜欢模块是否工作正常
- 点击喜欢将歌曲(未添加过)添加到喜欢列表中是否成功
- 点击"喜欢"添加喜欢列表中有的歌曲是否有提示
- 检查删除模块是否工作正常
- 选择单个歌曲点击"删除"是否正常
- 选择多个歌曲点击"删除选中"是否正常
- 将喜欢列表的存在歌在歌曲列表中删除是否正常(喜欢列表的歌同时被删除)
- 检查添加歌曲模块是否页面正常
- 检查搜索歌曲模块是否工作正常
- 正常搜索 :搜索歌曲列表中第一个歌名中存在的词
- 搜索异常:搜索歌曲列表中所有歌名中不存在的词
注意:
- 测试开始登录的用户为“lisi”以便后续测试
- 搜索模块测试完后都需要重新刷新歌曲列表页面,以便后续测试能够成功进行
- 搜索歌曲模块中执行搜索成功测试用例时搜索结束后检查判断搜索结果是否正确时需要判断搜索的内容是中文还是英文(英文需要进行忽略大小写处理)
- 注意执行顺序
2.6 "闻声"喜欢列表页测试——MPLikeListTest
- 创建驱动并登录成功后点击“喜欢列表”进入喜欢列表页
- 检查喜欢列表页面是否加载成功
- 检查回到首页模块是否工作正常
- 检查移除喜欢的歌曲模块是否工作正常
- 检查搜索喜欢的歌曲模块是否工作正常
- 正常搜索 :搜索喜欢歌曲列表中第一个歌名中存在的词
- 搜索异常:搜索喜欢歌曲列表中所有歌名中不存在的词
注意:
- 搜索喜欢的歌曲模块中执行搜索成功测试用例时搜索结束后检查判断搜索结果是否正确时需要判断搜索的内容是中文还是英文(英文需要进行忽略大小写处理)
- 回到首页测试结束后需要返回喜欢列表页以进行后续测试
- 注意执行顺序
2.7 添加歌曲页测试——MPUploadMusicTest
- 创建驱动并登录成功后点击“添加歌曲”进入喜欢列表页
- 检查添加歌曲页面是否加载成功
- 检查添加歌曲成功是否能够正常显示
- 检查添加已存在歌曲是否有提示信息
- 检查添加歌曲时缺失信息测试
- 缺少歌手名信息时提示是否正确
- 缺少mp3文件时是否提示正确
注意:
- 添加歌曲成功和添加歌曲失败测试结束后都回到添加歌曲页面
- 添加歌曲成功中的歌手名使用的是"upLoadTests:" + 生成随机的字符
- 使用sendKeys()传递文件在本机的地址实现上传文件
- 注意执行顺序
- 最后需要关闭驱动
详细代码
自动化测试代码
三.自动化测试脚本测试结果
所有测试用例通过,如图所示:
四.自动化测试脚本总结
- junit5框架编写测试用例类时注意类名需要以Test结尾(或者使用使用 surefire 插件自定义命名规则)
- 测试用例的执行顺序问题很关键,如果顺序不正确就会导致测试出错。
- 使用@TestMethodOrder注解实现指定排序时需要配合@Order注解使用
- 注意屏幕截图保存的方式:动态时间戳并进行时间格式化。
以文件夹的方式进行保存。 - 在检查页面是否成功加载时,对于页面的检查一定要到位。如检查元素是否存在确保页面的正确性以及某些关键功能是否能够正常工作。
- 驱动关闭的位置要注意,只有当最后一个用例结束之后才能关闭驱动。
- 为了避免遗忘驱动释放的位置(某一个测试结束后释放),可以单独写一个类来存放驱动释放,然后直接放到套件测试类(使用 JUnit Platform Suite实现)的最后就行。
- 可以采用无头模式来创建驱动。
- 当多用户同时在同一设备的相同浏览器登录时,会出现用户数据异常的情况,该情况需要关注,后期处理。
- 可以适当关注用例执行时间,如果时间过长就需要考虑是否是测试用例的问题还是程序存在有性能问题。(需要使用JMeter进行进一步验证)
- 注意:一定要关注执行顺序!否则可能会出现错误。