9、JMeter插件安装-非GUI界面
插件安装
下载地址:https://jmeter-plugins.org/install/Install/
安装方法:安装jpgc相关的插件,jpgc-Standard Set和KPI vs KPI Graphs
- 把jmeter-plugins-manager-1.7.jar放入/lib/ext里面,然后重启Jmeter。
- 加载插件 Option->Plugin Managger
监听器
监听器-察看结果树
察看结果树以树状结构组织显示所有取样器的响应。显示取样器请求和响应的细节以及请求结果,包括消息头,请求的数据,响应的数据。
注意: 因为生成查看结果树需要消耗大量的系统资源(CPU,内存等),负载测试期间不得使用查看结果树
监听器-聚合报告
聚合报告为测试中的每个不同名称的请求创建一个表记录。对于每个请求,它统计了响应信息并提供请求计数、最小值、最大值、平均值、错误率、近似吞吐量(请求/秒)和每秒千字节吞吐量。在聚合报告中,各个响应时间不能超过客户的要求,就是合格,例如不能超过响应时间2s,大于2s就是不合格的
名称 | 聚合报告定义名称 |
注释 | 非必填项 |
文件名 | 运行结果存放路径 |
Log/Display Only | 如果勾选”仅日志错误”列表中间只显示有错误的记录,勾选”Successes”,列表中只显示成功的。默认是两个都不勾选 |
Configure | 自定义report 关心数据项 |
Label | 采样器名称 |
Samples | 表示测试中一共发出了多少个请求,如果线程数为:50,每个线程数循环5次,Samples 显示为:50*5=250 |
Average | 每个请求平均响应时间(单位为:ms) |
Median | 中位值(50% 用户响应时间),样本值按照从小到大排列,位置为不小于(样本个数)/2最小整数值。例如样本是5,33 35 37 38 40,中位数是37 |
90% Line | 90% 用户响应时间,样本升序排列,第90%位置的样本值round(n*90%) |
95% Line | 95% 用户响应时间,样本升序排列,第95%位置的样本值round(n*95%) |
99% Line | 99% 用户响应时间,样本升序排列,第99%位置的样本值round(n*99%) |
Min | 最小响应时间 |
Max | 最大响应时间 |
Error% | 错误率(请求的数量/请求的总数) |
Throughput | 吞吐量,每秒完成的请求数。=请求数/总时间 |
接收 KB/sec | 每秒从服务器端接收到的数据量,相当于千字节Throughput/Sec |
发送 KB/sec | 每秒从客户端接发送的数据量,相当于千字节Throughput/Sec |
非GUI界面启动
非GUI界面,压测参数
- -h 帮助
- -n 非GUI模式
- -t 指定要运行的 JMeter 测试脚本文件
- -l 记录结果的文件 每次运行之前,(要确保之前没有运行过,即xxx.jtl不存在,不然报错)
- -r Jmter.properties文件中指定的所有远程服务器
- -e 在脚本运行结束后生成html报告
- -o 用于存放html报告的目录(目录要为空,不然报错)
官方配置文件地址
http://jmeter.apache.org/usermanual/get-started.html
jmeter -n -t D:\jmeter_2024\discuz.jmx -l D:\jmeter_2024\discuz.jtl -e -o D:\jmeter_2024\report
性能优化-注意事项
Apache JMeter - User's Manual: Best Practices
- 使用非GUI模式:jmeter -n -t test.jmx -l result.jtl
- 少使用Listener, 如果使用-l参数,可以被删除或禁用。
- 在加载测试期间不要使用“察看结果树”或“用表格察看结果”表监听器,只能在脚本阶段使用它们来调试脚本。
- 不要使用大量的相似samplers,而是循环使用一个sampler,使用参数化来达到不同sample的效果
- 不要使用函数模式
- 使用CSV输出而不是XML
- 只保存你需要的数据,尽可能少地使用断言
- 尽量使用脚本语言
- 如果测试需要大量数据,可以提前准备好测试数据放到数据文件中,以CSV Read方式读取。
- 用内网压测,减少其他带宽影响压测结果
- 如果压测大流量,尽量用多几个节点以非GUI模式向服务器施压
测试报告解析
Jmeter压测生成图形化HTML测试报告解析
- APDEX(Application performance Index)
- Apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
- T(Toleration threshold):可接受(容忍或满意)阈值,即用户可接受的响应时间
- F(Frustration threshold):不可接受(失败)阈值,即用户不可接受响应时间
1)Over Time(随着时间的变化)
- Response Times Over Time:响应时间变化趋势
- Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分布
- Active Threads Over Time:并发用户数趋势
- Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
- Latencies Over Time:平均响应延时趋势
- Connect Time Over Time :连接耗时趋势
2)Throughput
- Hits Per Second (excluding embedded resources):每秒点击次数
- Codes Per Second (excluding embedded resources):每秒状态码数量
- Transactions Per Second:即TPS,每秒事务数 Response Time Vs Request:响应时间和请求数对比
- Latency Vs Request:延迟时间和请求数对比
3)Response Times
- Response Time Percentiles:响应时间百分比
- Response Time Overview:响应时间概述
- Time Vs Threads:活跃线程数和响应时间
- Response Time Distribution:响应时间分布图