OJ系统C端UI自动化测试
一、思维导图
二、代码编写
概述:针对C端进行主要功能进行自动化测试.
基本逻辑:
- 在未登录状态下访问题目->访问未完赛竞赛页面->访问历史竞赛页面
- 登录页-> 测试登录失败: a.账号正确验证码错误b.账号错误,验证码正确c.账号和验证码都为空d.获取验证码次数最大 e.验证码已失效 || 第一次登录即为注册 || 登录成功
- 登录成功跳转题库页测试页面元素是否存在->测试翻页->测试搜索->测试答题
- 跳转竞赛页面测试页面元素是否存在->测试机未完赛页面->测试翻页->测试翻页->报名竞赛->参与竞赛
- 跳转到历史竞赛->测试翻页->测试竞赛练习->测试竞赛排名
- 退出登
1.前置工作
引入依赖
<dependencies>
<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>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
2.创建公共类
- 里面包含统一创建的driver,截图,翻页功能,答题功能,提取出来的公共类
3.未登录访问各个页面
- 题目页面
a.在右上角显示登录
b.未登录不允许答题
c.各个元素是否显示正常
- 竞赛页面
a.未完赛 ---点击报名,提示需要报名才能参加竞赛
b.历史竞赛页面--------竞赛练习,查看排名
4.验证码登录
- 登录失败
a.账号正确,验证码错误
b.账号错误,验证码错误
c.账号和验证码都为空
d.获取验证码最大次数
e.验证码已失效
- 注册
即第一次获取验证码登录为注册过程,入库
- 登录成功
账号和验证码都正确,进入登录页
5.题库页面
- 翻页
a.调整展示数量
b.前后翻页
c.指定跳转页面
- 搜索
a.根据题目名称搜搜
b.根据题目难度搜索
c.重置
- 答题
a.查看页面元素是否俱全
b.编写正确代码||编写错误代码
c.交提代码,检查通过||未通过元素是否齐全
d.测试,下一题,上一题,返回题库页面
6.竞赛页面
1.未完赛页面
a.翻页
-
调整展示数量
-
前后翻页
-
指定跳转页面
b.报名竞赛
- 报名竞赛
- 已报名
到达规定时间
- 参与竞赛 ->测试答题功能一致
2.历史竞赛
- 竞赛练习
- 竞赛排名
7.退出登录
删除登录记录,token等个人信息
三、代码参考
在test_c目录下
OjAutoTest · 九月YJ/UI自动化测试 - 码云 - 开源中国
四、总结
注意:
1.测试要关注测试的先后顺序
2.确保页面元素存在,确保不是动态的,是动态的需要确定的定位到具体的元素
3.确保是测试登录后再测试其他页面,其他页面都需要登录才能测试其他页面
4.驱动关闭最后确保是在执行最后,避免在执行其他用例的时候报错
5.使用截图工具确保精确到时分秒毛秒,避免执行程序过快会出现截图覆盖
6.隐式等待时间确保浏览器能渲染出元素,保证网络畅通
7.使用无头模式启动
————————————————
亮点:
只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。
使用参数化:保持用例的简洁,提高代码的可读性
使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。
使用了等待:提高了自动化的运行效率,提高了自动化的稳定性,减小误报的可能性。
使用了屏幕截图:方便问题的追溯以及问题的解决。