1.项目功能
该个人博客系统主要实现了以下几个功能:登录、注销、浏览博客、发布博客以及删除博客等功能。
1.登录功能:用户名以及密码已经在后端写入了数据库,即:用户名以及密码是已经存在的。登录成功后就会跳转到个人主页。在右上角存在主页、写博客和注销三个按钮,但是在未登录情况下按下均只会跳转到登录页面。
2.个人主页:可以在列表页查看有限数量的博客简介,其包括博客标题、发布时间以及内容概要。在左侧可以看到登录的用户以及文章数、分类数等的模块。在右上角有主页、写博客和注销三个功能:主页即列表页,写博客即博客编辑页,注销即注销用户,回到登录页面。
3.列表页面:在列表页面点击“查看全文”按钮就会跳转到详情页,此时就可以看到该篇博客的完整内容。在右上角有登陆、写博客和我的三个功能。
4.发布博客:在登录之后的任意界面点击“写博客”之后就会进入博客编辑页面,此时就可以进行博客的编写,点击“发布文章”后就可以成功发布文章,此时就会跳转到列表页。
2.测试计划
一、功能测试
1.测试用例
2.实际执行测试用例的截图
1)正常登陆
2)写博客测试
3)发布成功并查看个人主页
4)删除博客测试,第一篇博客被删除了
5)注销功能测试 :点击注销后回到登陆页面
3.代码编写
1)公共类AutoTestUtils
创建驱动、保存现场截图
注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
注意文件名的动态获取,注意时间格式的设置。
注意:可以在创建驱动的时候修改默认的有头模式or无头模式
2)注册页测试BlogRegTest
① 测试是否可以正常注册
3)列表页测试BlogListTest
① 测试博客列表页是否可以正常打开
4)登录页面测试BlogLoginTest
① 创建驱动,并打开页面
② 测试页面是否正常打开
③ 测试正常登录:多参数测试
④ 测试异常登录:用户名/密码错误的情况(此处不测null)
⑤ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码
5)个人主页测试BlogPersonListTest
① 测试主页是否可以正常打开
② 测试查看全文按钮、修改按钮是否可以正常使用
③ 测试异常登陆的情况
4)编辑页测试BlogEditTest
① 测试编辑页是否可以正确打开
② 测试博客是否可以正常发布:元素齐全 or 部分元素
③ 测试“发布博客”按钮是否可以正常使用
④ 执行顺序
6)驱动释放DriverQuiteTest
因为驱动的测试是要在最后一个测试类完成之后进行释放的,如果是使用@AfterAll注解,那么每次修改测试类的时候都会需要挪动驱动释放的位置,所以直接新建一个类作为驱动释放,此时只需要在测试套件中放到最后就行。
7)测试套件runSuite
测试套件的运行,使用的是以测试类作为执行顺序的方式。
二、自动化测试
自动化测试参考代码:
https://gitee.com/yu--chenglin/my-project/tree/master/target/test-classes/com/blogWebAutoTest
三、亮点
① 使用了JUnit5中提供的注解:避免生成过多的对象,造成资源和时间的浪费,提高了自动化的执行效率。
② 只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。
③ 使用参数化:保持用例的简洁,提高代码的可读性
④ 使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。
⑤ 使用了等待:提高了自动化的运行效率,提高了自动化的稳定性,减小误报的可能性。
⑥ 使用了屏幕截图:方便问题的追溯以及问题的解决。
⑦ 使用了无头模式:只注重结果,可以留出屏幕。