博客系统自动化测试

1. 项目介绍

博客主要由四个页面构成:

登录页、列表页、详情页、编辑页

主要功能包括:

用户登录、用户注销、博客编辑、发布博客、查看博客详情、删除博客

下面针对主要功能进行测试

2. 测试用例

博客系统自动化测试_第1张图片

3. 代码编写

  • 每个页面一个测试类,在各个测试类中进行测试用例的编写。
  • 公共属性单独放一个类,方便进行代码复用。(驱动,截图,隐式等待)
  • 使用测试套件便于运行以及修改。

 博客系统自动化测试_第2张图片

1)公共类Utils
创建驱动、保存现场截图,隐式等待

注意点:
①在保存现场截图的图片的名称要体现出测试类的类名,方便进行问题的追溯。
②文件名的动态获取,注意时间格式的设置。
③可以在创建驱动的时候修改默认的有头模式or无头模式
2)登录页面测试BlogLoginTest

流程:
① 测试页面是否正常打开
② 测试正常登录:多参数测试
③ 测试异常登录:用户名/密码错误的情况(此处不测null)
④ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码

3)列表页测试BlogListTest
① 测试博客列表页是否可以正常打开
② 测试列表页的“查看全文”按钮是否可以正常跳转
③ 测试未登录的直接链接是否会跳转到登录页面,测试“注销”按钮

4)编辑页测试BlogEditTest
① 测试编辑页是否可以正确打开
② 测试博客是否可以正常发布,发布后,遍历博客列表,查看是否存在此标题
 

5)详情页测试BlogDetailTest
① 测试详情页的正确打开
② 测试“删除”按钮是否可用,删除第一篇博客,比较的是时间,因为标题可能会存在为空的情况

6)驱动释放DriverQuiteTest
驱动的测试是要在最后一个测试类完成之后进行释放的

7)测试套件runSuite

测试结果:

博客系统自动化测试_第3张图片

4. 小结

  • 关注测试用例的执行顺序问题
  • 注意多参数测试的页面导航问题
  • 当多参数(多用户登录)时就会出现高并发的服务器错误情况,该情况需要关注
  • 因为列表页等的测试是需要在登录成功后才能抵达的,所以在进行登录页面测试的最后一步应该是登录成功的状态,这样子是为了确保列表页等能够正确进入测试。
  • 驱动关闭的位置要注意,只有最后一个用例结束之后才进行关闭。
  • 为了把所有的用例的执行结果保存下来,方便后续查错或查看,也就是保存现场,此时就需要直接在公共类中进行该方法的定义。
  • 注意屏幕截图保存的方式:动态时间戳并进行时间格式化,然后期望按照某种维度(天、周)以文件夹的方式进行保存。
  • 获取元素的时候建议获取固定的元素,如时间、标题等;内容不建议获取,因为是动态的。元素的路径是不可变的,所以可以使用xpath来进行元素的定位。
  • 可以适当关注用例执行时间,如果时间过长就需要考虑是我们自己写的测试用例的问题还是程序真的有性能问题。
  • 测试用例并不是越多越好
  • 可以使用无头模式来创建驱动

5. 面试题分析


【面试】使用selenium4自动化测试工具和junit5单元测试框架结合,如何实现的,以及有什么亮点?
1)实现:
① 根据测试用例使用selenium4自动化测试工具和junit5单元测试框架结合来实现web自动化测试的功能、步骤、技术
② 对于代码中的每个包都要进行概要介绍(公共属性[复用]、测试用例[根据每个页面来进行设计的],然后使用测试套件将所有测试类进行加载)
2)亮点:
① 使用了JUnit5中提供的注解:避免生成过多的对象,造成资源和时间的浪费,提高了自动化的执行效率。
② 只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。
③ 使用参数化:保持用例的简洁,提高代码的可读性
④ 使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。
⑤ 使用了等待:提高了自动化的运行效率,提高了自动化的稳定性,减小误报的可能性。
⑥ 使用了屏幕截图:方便问题的追溯以及问题的解决。
⑦ 使用了无头模式:只注重结果,可以留出屏幕。
 

你可能感兴趣的:(测试,java)