Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。因为再做接口测试时可以设置线程组,所以也可做接口性能测试。
本篇使用JMeter完成了一个完整的Http接口性能测试流程,从脚本编写(工具化生成),执行到最终结果分析。
1. 测试接口的 基本要求
> 接口地址 :我们选取最常见的百度搜索接口:https://www.baidu.com/s?ie=utf-8&&wd=新闻
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线程 等于 一个用户
![](https://img-blog.csdnimg.cn/img_convert/141a7ccea4cc4bcb8c4c089c85cc9154.webp?x-oss-process=image/format,png)
1) 添加线程组 --菜单
![](https://img-blog.csdnimg.cn/img_convert/0f5e2c9b3ffa4168aed15b3d57eedd3c.webp?x-oss-process=image/format,png)
1) 添加线程组 --参数
![](https://img-blog.csdnimg.cn/img_convert/45cdd28c160a46d7a07a06cbf21f553d.webp?x-oss-process=image/format,png)
2)添加请求、添加 http消息头管理器
2.1)添加请求
接下来的一步就是要加入实际被测页面,右击“线程组” > “添加” > “Sampler” > “HTTP请求”。
ps: 参数,用于get 或put请求;消息体数据用于post 请求; -----很重要,很容易出错!
![](https://img-blog.csdnimg.cn/img_convert/7c54ce52aa364d8ba608c8afde3a4ce2.webp?x-oss-process=image/format,png)
1) 添加请求
![](https://img-blog.csdnimg.cn/img_convert/f7e721350cb441de8f81afed7cca5480.webp?x-oss-process=image/format,png)
2.2)http消息头管理器
![](https://img-blog.csdnimg.cn/img_convert/2515ba475e074669b5de5491abe20894.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/c1ebde9df4684b5e89e45b1e4e1da29a.webp?x-oss-process=image/format,png)
3)添加察看结果树
添加结果监听器(察看结果树 ), “监听器”让用户来观察测试结果
运行后点击左侧观察结果数,查看请求执行结果,红色为失败,绿色为成功,如下图:
![](https://img-blog.csdnimg.cn/img_convert/6a7221b4cdbb4f6e9d7b769268e600e4.webp?x-oss-process=image/format,png)
3) 添加察看结果树
![](https://img-blog.csdnimg.cn/img_convert/f1815f815d234657a44de1b47c3da333.webp?x-oss-process=image/format,png)
执行后结果树查看
添加用户自定义变量 &集合点
![](https://img-blog.csdnimg.cn/img_convert/f84c032304104bdea0679886ce812b16.webp?x-oss-process=image/format,png)
添加用户自定义变量 -菜单
![](https://img-blog.csdnimg.cn/img_convert/267ad80f9a584bb5837ab827146a0c90.webp?x-oss-process=image/format,png)
4)添加用户自定义变量 - 添加变量
用户自定义变量 -,需要再HTTP请求处,手动修改请求中为变量形式 ${wd}
![](https://img-blog.csdnimg.cn/img_convert/f8fb43732a5b4d33af5c3b5d3fcded0f.webp?x-oss-process=image/format,png)
*)添加集合点
![](https://img-blog.csdnimg.cn/img_convert/bf8d098f56fb4ff09f5252e5842a6fd6.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/24e52352d91e4084b0ac0f4306c421a5.webp?x-oss-process=image/format,png)
如果线程数是6,按组分组的模拟用户数是3,超时时间是0,则:当加载完3个用户时,这3个用户开始并发操作;当另外3个用户加载完时,开始第2(6/3)组的并发; ---------------如果要做1000用户并发,则第一个参数为1000,第二个参数为0。========设置超时时间为0时,则要保证线程数是分组并法数的整数倍,否则剩余用户数就会一直等待状态;
![](https://img-blog.csdnimg.cn/img_convert/2c4654c31a3343ffa56af87f1ff5011b.webp?x-oss-process=image/format,png)
5)添加请求的断言 6)添加断言结果
![](https://img-blog.csdnimg.cn/img_convert/c766c9350a0042d1a705166cb0074989.webp?x-oss-process=image/format,png)
4)添加用户自定义变量 - 手动修改请求中为变量形式 ${wd}
![](https://img-blog.csdnimg.cn/img_convert/7283c22fb0434683b5b5bb234a7dd00e.webp?x-oss-process=image/format,png)
5)添加请求的断言 --菜单
![](https://img-blog.csdnimg.cn/img_convert/2181a7068cff47d09a9a020b2a836b4d.webp?x-oss-process=image/format,png)
5)添加请求的断言 -- 校验返回的文本中是否包含搜索词,添加参数${wd}到要测试的模式中
![](https://img-blog.csdnimg.cn/img_convert/eb088f28c3ff41758f8552675a03e484.webp?x-oss-process=image/format,png)
6) 添加断言结果 --菜单,运行一次就可以看到断言结果成功或失败了
![](https://img-blog.csdnimg.cn/img_convert/1001e77616ed4e83a116d9eeebf33d30.webp?x-oss-process=image/format,png)
6) 断言结果查看,如上失败,可能是添加断言的“测试字段” 勾选错误导致
添加聚合报告
![](https://img-blog.csdnimg.cn/img_convert/32ccb2b016474cb8a1174636e7f00416.webp?x-oss-process=image/format,png)
7)添加聚合报告--“线程组” -> “添加” -> “监听器” -> “聚合报告”,用以存放性能测试报告
8)执行
至此,就完成了一个完整Http接口的JMeter性能测试脚本编写,点击运行即可
>查看运行日志, “选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图
![](https://img-blog.csdnimg.cn/img_convert/68bffa4b77f44aa8a5d28b472855605c.webp?x-oss-process=image/format,png)
8)运行 (后面是清空执行结果)
9)结果分析(分析测试报告)
待性能测试执行完成后,打开聚合报告可以看到:
![](https://img-blog.csdnimg.cn/img_convert/1aee22a78d15496cb7c85f1e230b8ab8.webp?x-oss-process=image/format,png)
响应时间的单位是ms. 另外:KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
10) 脚本查看
可以使用编辑器查看.jmx文件,如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/84c6854c64864284a0b73ee6a71baa00.webp?x-oss-process=image/format,png)
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!!
![](https://img-blog.csdnimg.cn/img_convert/ad689821fc00412017e8e139823bc732.gif)