1.项目介绍
功能介绍:
管理页登录、用户模块管理、题目模块管理、竞赛模块管理
下面针对主要功能进行测试
改进了之前项目的不足之处,增加了分页功能等
2.测试用例
3.代码编写
代码地址:oj-test: oj系统自动化测试 (gitee.com)
1)公共类Utils
创建驱动、保存现场截图,隐式等待
注意点:
①在保存现场截图的图片的名称要体现出测试类的类名,方便进行问题的追溯。
②文件名的动态获取,注意时间格式的设置。
③可以在创建驱动的时候修改默认的有头模式or无头模式
2)登录页面测试OJLoginTest
- 测试页面是否正常打开
- 测试正常登录:用户名密码正确
- 测试异常登录:用户名/密码错误的情况(此处不测null)
- 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
- 注意多参数输入时,清空内容后才能再次输入用户名以及密码
3)用户模块测试UserListTest
- 测试页面是否可以正常打开
- 测试根据特定值搜索用户是否成功
4)题目测试FourmDetailTest
- 测试页面是否正常打开
- 测试根据题目难度搜索题目是否成功
- 测试题目编辑是否成功
- 测试新增题目操作是否成功
5) 竞赛测试ForumPersonTest
- 测试页面是否正常打开
- 测试竞赛信息修改(发布撤销发布,内容的修改,删除)是否成功
- 测试新增竞赛是否成功
6)驱动释放DriverQuiteTest
驱动的测试是要在最后一个测试类完成之后进行释放的
7)测试套件runSuite
4.小结
- 关注测试用例的执行顺序问题
- 注意多参数测试的页面导航问题
- 当多参数(多用户登录)时就会出现高并发的服务器错误情况,该情况需要关注
- 因为列表页等的测试是需要在登录成功后才能抵达的,所以在进行登录页面测试的最后一步应该是登录成功的状态,这样子是为了确保列表页等能够正确进入测试。
- 驱动关闭的位置要注意,只有最后一个用例结束之后才进行关闭。
- 为了把所有的用例的执行结果保存下来,方便后续查错或查看,也就是保存现场,此时就需要直接在公共类中进行该方法的定义。
- 注意屏幕截图保存的方式:动态时间戳并进行时间格式化,然后期望按照某种维度(天、周)以文件夹的方式进行保存。
- 获取元素的时候建议获取固定的元素,如时间、标题等;内容不建议获取,因为是动态的。元素的路径是不可变的,所以可以使用xpath来进行元素的定位。
- 可以适当关注用例执行时间,如果时间过长就需要考虑是我们自己写的测试用例的问题还是程序真的有性能问题。
- 测试用例并不是越多越好
- 可以使用无头模式来创建驱动