Jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。 – 百度百科
安装方式
安装JMeter主要依赖Java8
和JMeter
安装包
开始前
完成一个简单的HTTP
例子, 需要创建以下内容, 注意有层级区分:
- 计划
- 线程组
- HTTP请求
- 察看结果树
- HTTP请求
- 线程组
开始
创建计划
开始时, 默认会包含一个计划, 给计划指定一个名称
创建线程组
鼠标右键
点击计划
(以下事件均是右击), 依次点击添加
> 线程
> 线程组
配置线程组
此处注意线程数
和循环次数
, 这两个数相乘
即总请求数量
, 调试时可以设置为1
, 正式开始测试可以根据场景调整该值的大小
创建HTTP请求
配置HTTP请求
填写好对应的信息, 这里以JSON格式POST请求为例:
配置结果预览
右击HTTP请求, 添加
> 监听器
> 察看结果树
查看结果
点击运行, 通过监听器察看结果树
, 选择HTTP请求
来看结果是否正确:
高级用法
- 报告
- 断言
- 变量(计数器)
- 拦截器
汇总报告
添加
> 监听器
> 汇总报告
, 添加后点击运行
如果要进行大量压测, 调整线程组的数量
即可, 左侧选择线程组
, 修改为 10 * 10 = 100
次
结果:
断言 - 响应校验
以响应的状态码断言为例:
JSON断言
输入JSON中断言键的的路径, 以及预期的结果
请求变量
如果你希望请求时的某个参数
是动态
的则需要添加参数规则, 这里以POST
请求JSON
数据体插入参数
为例, 比如要递增
一个数值
类型变量
右击HTTP请求
> 添加
> 配置元件
> 计数器
注意这里的引用名称
决定你的变量替换
, 修改JSON请求的参数:
格式: ${变量名}
, 这里可以理解为普通的文本替换
选择察看结果树
> 选择最新的请求 > 点击请求
选项卡, 预览结果:
此时调整线程组数量, age参数会根据步长递增, 每个请求都不会重复.
其他高级用法, 可以参阅JMeter官网进行学习使用.
查阅资料
- https://baike.baidu.com/item/Jmeter
- https://www.blazemeter.com/blog/how-to-use-the-json-plugin-in-jmeter
- https://stackoverflow.com/questions/37169153/jmeter-does-not-send-json-data-in-post
- https://stackoverflow.com/questions/31923104/jmeter-and-json-extracting-and-using-variables-for-another-request
- https://stackoverflow.com/questions/55039827/storing-the-output-json-parameters-as-variable-in-jmeter-using-it-in-next-reques
- https://dzone.com/articles/how-to-use-the-json-plugin-in-jmeter
- https://stackoverflow.com/questions/36680192/jmeter-variables-in-json-request