Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。因为再做接口测试时可以设置线程组,所以也可做接口性能测试。
本篇使用JMeter完成了一个完整的Http接口性能测试流程,从脚本编写(工具化生成),执行到最终结果分析。
1. 测试接口的 基本要求
> 接口地址 :我们选取最常见的百度搜索接口:百度安全验证新闻
ie:编码方式,默认为utf-8
wd: 搜索词
> 返回结果判断 (断言):
搜索结果,我们可以通过校验结果中是否含有搜索词wd来判断本次请求成功或失败。
2. 操作
> 依次进行如下操作:1) 添加线程组 2)添加请求&http消息头管理器 3)添加结果监听器(察看结果树 )
4)添加用户自定义变量 *)添加定时器(集合点)
5)添加请求的断言 6)添加断言结果 7)添加聚合报告 8)执行
9)结果分析(分析测试报告)
1) 添加线程组
添加虚拟用户组(Thread Group),这些虚拟用户用来模拟访问被测系统
一个线程组(Thread Group)等于一组虚拟用户(virtual users group),
一个Java线程 等于 一个用户
1) 添加线程组 --菜单
1) 添加线程组 --参数
2)添加请求、添加 http消息头管理器
2.1)添加请求
接下来的一步就是要加入实际被测页面,右击“线程组” > “添加” > “Sampler” > “HTTP请求”。
ps: 参数,用于get 或put请求;消息体数据用于post 请求; -----很重要,很容易出错!
1) 添加请求
2.2)http消息头管理器
3)添加察看结果树
添加结果监听器(察看结果树 ), “监听器”让用户来观察测试结果
运行后点击左侧观察结果数,查看请求执行结果,红色为失败,绿色为成功,如下图:
3) 添加察看结果树
执行后结果树查看
-
添加用户自定义变量 &集合点
-
添加用户自定义变量 -菜单
4)添加用户自定义变量 - 添加变量
用户自定义变量 -,需要再HTTP请求处,手动修改请求中为变量形式 ${wd}
*)添加集合点
如果线程数是6,按组分组的模拟用户数是3,超时时间是0,则:当加载完3个用户时,这3个用户开始并发操作;当另外3个用户加载完时,开始第2(6/3)组的并发; ---------------如果要做1000用户并发,则第一个参数为1000,第二个参数为0。========设置超时时间为0时,则要保证线程数是分组并法数的整数倍,否则剩余用户数就会一直等待状态;
5)添加请求的断言 6)添加断言结果
4)添加用户自定义变量 - 手动修改请求中为变量形式 ${wd}
5)添加请求的断言 --菜单
5)添加请求的断言 -- 校验返回的文本中是否包含搜索词,添加参数${wd}到要测试的模式中
6) 添加断言结果 --菜单,运行一次就可以看到断言结果成功或失败了
6) 断言结果查看,如上失败,可能是添加断言的“测试字段” 勾选错误导致
-
添加聚合报告
7)添加聚合报告--“线程组” -> “添加” -> “监听器” -> “聚合报告”,用以存放性能测试报告
8)执行
至此,就完成了一个完整Http接口的JMeter性能测试脚本编写,点击运行即可
>查看运行日志, “选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图
8)运行 (后面是清空执行结果)
9)结果分析(分析测试报告)
待性能测试执行完成后,打开聚合报告可以看到:
响应时间的单位是ms. 另外:KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
10) 脚本查看
可以使用编辑器查看.jmx文件,如下图所示:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!