博客项目自动化测试

✏️作者:银河罐头
系列专栏:JavaEE

“种一棵树最好的时间是十年前,其次是现在”

目录

  • 前述
  • 代码编写
  • 代码参考
  • 难点
  • 亮点

前述

1.针对个人博客项目进行测试,对于个人博客的测试主要就是针对主要功能进行测试,然后按照页面书写测试类。

2.自动化测试一般步骤
1)使用思维导图编写 web 自动化测试用例
2)创建自动化项目,根据用例来实现脚本

代码编写

根据脑图进行测试用例的编写:每个页面一个测试类,然后再各个测试类中进行测试用例的编写。
注意公共属性需要单独放一个类,方便进行代码复用。
使用测试套件便于运行以及修改。
创建启动以及现场截图就是会频繁进行复用,所以单独创建一个类进行存储。
注意添加隐式等待,为了确保页面正确加载显示。

  • 单例驱动: 自动化程序中会很频繁的使用驱动,如果频繁的创建和销毁开销还是比较大的,因此我们可以使用一种懒汉模式的加载方式去加载驱动,这样既能保证驱动不会频繁创建(程序运行过程保持单例),又能减轻程序刚开始启动时的系统开销(只有用到驱动的时候才去加载他),其他类如果需要驱动直接继承该类即可.

  • 屏幕截图: 有的时候我们测试用例执行出错了,我们需要查看当时网页出现的情况,那么就需要使用屏幕截图来排查问题. 具体的,可以使用驱动的 getScreenshotAs 方法去保存屏幕截图,在每一个测试case执行完后进行一次屏幕截图,并将截图保存到一个路径下,文件名以当时时间进行组织(防止保存屏幕截图出现覆盖情况),那么就可以在AutoTestUtils类下加上屏幕截图的方法,方便其他类调用.

1)公共类AutoTestUtils

  1. 创建驱动、保存现场截图
  2. 注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
  3. 注意文件名的动态获取,注意时间格式的设置。

2)注册页面测试 RegTest
① 创建驱动,并打开页面
② 测试页面是否正常打开
③ 测试正常注册:测试(此处没测)
④ 测试异常注册:密码和确认密码不一致的情况
⑤ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码

⑦进行屏幕截图

3)登录页面测试 LoginTest
① 创建驱动,并打开页面
② 测试页面是否正常打开
③ 测试正常登录:用户名+密码+验证码正确
④ 测试异常登录:用户名/密码/验证码错误的情况
⑤ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码

因为验证码,所以这里登录是手工测试

4)个人博客列表页测试 MyBlogListTest

① 创建驱动,并打开页面
② 测试页面是否正常打开

③对博客列表信息进行检验

④进行屏幕截图

5)个人中心测试 MyInfoTest

① 创建驱动,并打开页面
② 测试页面是否正常打开

③对修改昵称,修改密码进行测试

④进行弹窗处理

⑤进行屏幕截图

6)添加删除博客测试 AddBlogTest

① 创建驱动,并打开页面
② 测试页面是否正常打开

③对博客的发布和删除功能进行测试

④处理响应弹窗

⑤进行屏幕截图

7)驱动释放 DriverQuitTest
因为驱动的测试是要在最后一个测试类完成之后进行释放的,如果是使用@AfterAll注解,那么每次修改测试类的时候都会需要挪动驱动释放的位置,所以直接新建一个类作为驱动释放,此时只需要在测试套件中放到最后就行。

8)测试套件 RunSuite
测试套件的运行,使用的是以测试类作为执行顺序的方式。

代码参考

BlogTest

博客项目自动化测试_第1张图片

但是会发现测试耗时有些长,说明性能还有优化的空间。

难点

主要就是在进行顺序划定以及导航方面存在遗漏或者错误的情况;另外对于页面登录过程中的内容清空也要格外注意,一定要进行清空;再者,可以进行隐式等待,确保页面加载完成,提高自动化的稳定性。

亮点

根据个人项目来设计的测试用例,然后根据测试用例使用 selenium3 自动化测试工具和 junit5 单元测试框架结合来实现web自动化测试的。

①使用 junit5 中提供的注解,避免生成过多的对象,造成资源和时间上的浪费,提高了自动化执行的效率。
②只创建一次驱动,避免每个用例重复创建驱动造成时间和资源的浪费。
③使用参数化,保持用例的整洁,提高代码的可读性。
④使用等待,提高了自动化运行效率,提高了自动化的稳定性。
⑤使用屏幕截图,方便问题的追溯以及解决。

你可能感兴趣的:(软件测试,selenium,测试工具,junit)