jmeter

概念/术语

QPS(Queries Per Second)是指每秒能够响应的查询次数,也即是最大吞吐能力(吞吐量)。

性能测试,有很多专业术语,为了方便大家理解,这里用通俗的语言来解释下,如果有不准的地方,欢迎反馈。

并发:tps

线程数:跑道里参加赛跑的人数

迭代(jmeter中叫做循环次数):每个人跑多少圈

循环(jmeter中是循环控制器):一次迭代里面,反复执行其中一段脚本,就是反复来回跑其中一段跑道

参数值:发请求时候用的数据

参数化:是一种策略,可以根据参数策略获取参数值,参考:https://www.cnblogs.com/uncleyong/p/10702700.html

思考时间:模拟用户等待的时间

关联:下一个请求入参依赖上一个请求的某个返回值,参考:https://www.cnblogs.com/uncleyong/p/10702702.html

检查点:判断请求是否成功,一般只有查询请求才加检查点

集合点:同一时刻去发起请求,主要应用场景是秒杀

事务:一般把被测的某个或者某几个请求一起定义为一个事务,是人为的测试定义

负载:服务器的繁忙程度,如果一个8c的服务器,每次可以同时处理8个请求,如果请求量大,后面的请求就排队,排队的请求越多,服务器的负载就越高

平均响应时间(art):每个事务的处理时间,从发送请求到接收到响应

tps:每秒处理的事务数(和qps:https://www.cnblogs.com/uncleyong/p/11059556.html)

每秒点击率(数):每秒处理的请求数,而不是用户每秒发送的请求数

场景:设置并发策略,模拟用户使用的场景

分析:场景运行完,生成各种维度的结果

安装

需要先安装java8,并配置环境变量。

版本 5.5

把jmeter安装目录下的bin/jmeterw.cmd发送到桌面快捷方式,以后双击它就可以打开了。

集群安装

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

controller node + worker node

命令行

jmeter -n -t [jmx file] [-p property-file] [-l results-file] [-j log-file] -e -o [Path to output folder]
# eg, jmeter -n -t app-user.jmx -l result.j -e -o report
# -n –> no-gui
# -t –> testplan

监控

jmeter + grafana + influxdb

grafana 和 influxdb 均有docker版本,它们的组合配置见influxdb/README.txt
jmeter配置示例见“jmeter发送数据到influxdb2的示例.jmx”。

Grafana版本尽量是v8.3.3,用v6.5.1无法导入influxdb2的监控。

示例

官方示例目录在apache-jmeter-5.5\printable_docs\demos中。

附件见jmeter-assets目录。

datatist-dev2-requests.jmx:测试计划,包含登录、存cookie;请求接口、解析响应的json、断言等。

jemeter-handleType.jmx:当需要传输request payload时,需要1)配置Http header Manager中添加Content-Type的值为application/json;charset=utf-8;2)HTTP request中的Body Data中配置 {}即可。

参考

作者:admin  创建时间:2024-12-26 19:49
最后编辑:admin  更新时间:2025-09-19 10:08