文章目录
前言
编写测试用例,对个人博客项目进行对应的功能测试、性能测试和自动化测试,
一、项目概述
采用SSM技术实现的博客系统,使用MySQL进行数据的存储,目前暂不头像自定义上传功能,只能在静态加载的可选头像中进行选择。实现了登录拦截器限制访问权限和MD5加盐算法对密码进行加密,具备博客系统的基本功能。
二、项目功能
主要实现了以下几个主要功能:注册、登录、注销、写博客、发布博客、修改博客、删除博客。
- 登录功能:根据用户注册后保存在数据库的用户名账号以及验证码进行登录,登录后会跳转到列表页面。除列表页面外,其他页面都会被拦截跳转到登录页面。
- 注册功能:根据用户输入的用户名和密码进行验证,未注册过且符合输入要求的会在密码进行加盐加密之后存放在数据库中。可在注册框顶端进行可选头像的选择和预览。
- 展示功能:在博客列表页面左侧为查阅量排行榜,用户点击查看博客全文为一次查阅量自增1,根据查阅量来进行排序展示。右侧为当前所有博客的分页展示,博客正文进行部分展示,根据界面美观,每页展示3篇博客。点击查看博客正文可进入博客详情页面,展示全部正文内容。
- 博客相关功能:在写博客进行编辑后点击发布,文章出现在文章展示列表中;修改文章在文章编辑界面展示已经编译好的内容进行修改后重新发布;删除文章对应的数据库数据。
三、测试
1.功能测试
2.自动化测试
1.自动化测试用例
主要针对功能进行自动化测试
登录功能涉及到验证码,此处在后端逻辑中设置了”特殊通行码“高于验证码匹配判断,以下自动化测试中所有登录操作的验证码均使用特殊通行码跳过,对于验证码测试在手动功能测试中进行测试。
预设文章“测试博客” 用来判断当前列表显示是否正常和新增文章是否被删除。
新增文章标题“自动化测试” ,修改标题为“自动化测试修改版”,新密码为“123457”。
2.代码实现
1. 设置初始化类
创建驱动,添加初始化和关闭操作
public class InitAndEnd {
static WebDriver webDriver;
@BeforeAll
static void SetUp(){
webDriver = new ChromeDriver();
}
@AfterAll
static void TearDown(){
webDriver.quit();
}
}
2.用户操作功能测试
用户注册
- 将测试的用户名、密码、URL放在CSV文件中,以文件参数形式传递
- 判断页面跳转是否正常
- 异常注册测试:用户名/密码为空;使用已注册账号进行注册
- 正常注册测试:使用文件中参数进行注册测试
- 测试注册成功后点击弹窗确认是否正常跳转到登录页面
用户登录
- 异常登录测试:用户名/密码/验证码为空;用户名不存在/密码错误/验证通行码错误
- 正常登录测试:使用文件中参数以及通行验证码进行登录测试
- 登录成功后判断当前跳转页面是否为博客列表页面
修改个人信息
- 点击修改信息,判断页面跳转是否正常
- 异常修改测试:原密码/新密码/确认密码为空;原密码错误;新密码和确认密码不一致
- 修改成功后判断当前是否跳转到登录页面
- 使用修改后密码进行一次用户登录测试
注销
- 点击进入我的博客页面(注销按键只出现在我的博客页面)
- 点击注销,取消弹窗,判断当前页面是否为我的博客页面
- 点击注销,确认弹窗,判断当前页面是否为登陆页面
代码运行结果
3.博客文章操作测试
查看文章’
- 使用测试账号登录后,判断当前页面是否为博客列表页面
- 点击预设文章对应查看全文,判断当前跳转页面是否为博客详情页
- 判断当前页title元素是否为预设文章标题
写博客&发布博客
- 点击写博客,判断当前跳转页面是否为写博客页面
- 定位标题元素进行预设测试标题的文本添加
- 点击发布:确认发布后点击 添加/取消 判断页面是否跳转到博客列表
- 使用新增文章标题执行查看文章测试
修改博客
- 点击修改博客,判断当前跳转页面是否正确
- 定位标题元素清楚原有文本,使用修改博客预设标题进行文本添加
- 点击发布:确认发布后点击取消 判断页面是否跳转到博客列表
- 使用修改后文章标题执行查看文章测试
删除博客
- 点击删除:点击取消,判断当前页面是否为我的博客页面
- 点击删除:点击确认,执行查看博客测试,判断当前第一篇博客标题是否为预设博客标题
代码运行结果
3.性能测试
使用LoadRunner进行登录、编写并发布博客以及删除博客、注销等功能进行简单的性能测试。
1.录制并强化脚本
使用VUG录制脚本,在脚本上添加集合点以及事务
1.参数化设置三个用户名和密码
2.设置迭代次数
3.添加事务以及集合点
- 在登陆前添加集合点,实现用户并发登录
- 在登录、发布、修改、删除操作添加事务
4.测试通过
2.设计场景并设置并发数
1.设置10个虚拟用户
2.在Controller中设计场景
3.开始运行
运行时截图
运行结束截图
3.在Analysis中查看性能报告
1.点击率
2.吞吐量
3.系统资源
对于只有基本功能的程序来说,内存占比还是较高的内存使用率,当点击率较大时,CPU的使用率也达到较高点,总体来说程序性能还有很多的优化空间。