一、自动化脚本架构搭建
1、添加setUp线程组,测试标签新增功能;添加tearDown线程组,测试标签删除功能
这里可以将标签的增删改查写到一个线程组,但是为了实践setUp和tearDown线程组的使用,将它们写到不同线程组中了。
2、添加登录http请求获取token
(1)添加登录http请求
(2)添加查看结果树可以看到登录的响应数据有token
(3)添加JSON提取器提取token
截图左边把还未添加的先注释掉了
(4)利用函数工具生成字符串,添加BeanShell 后置处理程序
设置token为全局变量
(5)利用函数工具生成字符串,在别的接口的请求头信息中引入token
3、添加标签新增http请求
添加响应断言:
新增的数据是json格式,需要在请求头中添加Content-Type
4、添加标签删除http请求
对于重复的内容,我们可以添加请求默认值复用
5、添加改、查线程组
勾选独立运行每个线程组
保证先改后查
6、添加改、查的http请求
二、增删改查接口测试
1、将新增外的线程组都禁用,测试新增接口是否成功
2、查询新增数据name对应的id
原打算将插入数据的id设置为全局变量,让其他改、查、删接口对该id的记录执行操作,这样保证了脚本运行完毕后不对原本数据产生影响。
但是我的博客系统的id采用自增id,无法自己设置id,插入数据。于是我想到先去数据库查询添加的数据name对应的id,然后再将id设为全局变量,对该记录进行改、查、删。
这样迂回的获取到id可能降低脚本的运行时间,可以在数据库给name字段增加索引,提高查询效率。
步骤:
(1)添加mysql库包
库包下载可参考我的另一篇文章(。・∀・)ノ゙嗨 (测试工具——Jmeter从入门到实践学习笔记)
(2)添加JDBC Connection Configuration
配置数据库的连接
(3)添加JDBC Request
注意:这里为了方便将TagName作为参数使用,新增了用户定义的变量
。此外,这里将TagName和TagRemark参数化,便于之后统一更改测试内容。
(4)添加调试取样器,禁用不相关的线程组,运行一下,查看参数名
可以看到id_1的值正是我们想要的值
(5)添加BeanShell 后置处理程序
,将id_1设置为全局变量
使用函数工具生成字符串复制到BeanShell 后置处理程序中
(6)将全局变量取出使用
在改http请求中:
在查http请求中:
3、测试修改接口是否成功
4、测试查询接口是否成功
添加响应断言:
这里同时也测试了修改接口是没问题的。
5、测试删除接口是否成功
将全部线程组启用,一键运行自动化测试脚本,查看结果树,全绿!!!
三、对博客网站进行性能测试
如果网站的用户并发量很大,产品需求要求进行性能测试,则对程序进行性能测试。个人博客其实用户量没多大,这里进行的性能测试目的是熟悉jmeter的压测步骤。
场景1:模拟半小时之内1000个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0
半小时以内1000个用户访问,是弱压力测试,不是同一时刻进行访问
场景2:模拟100个用户同时访问服务器资源,要求平均响应时间在3000ms内,且错误率为0
添加同步定时器,100个用户为一组
运行,查看聚合报告
场景3:模拟2个用户以20QPS的频率访问服务器资源持续10秒,要求平均响应时间在3000ms内,错误率为0
20QPS:每秒访问20次
添加常数吞吐量定时器
运行,查看聚合报告
四、生成可视化测试报告
1、将jmx文件复制到jmeter安装目录的bin目录下
2、执行命令
jmeter -n -t 名.jmx -l 名.txt -e -o ./目录名
-n 无图形化运行
-t 被运行的脚本
-l 将运行信息写入日志文件
-e 生成测试报告
-o 指定报告输出目录
3、点击index.html,用浏览器打开
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!