一、MAC GUI模式使用jmeter
1.1 下载工具安装包
官网地址:https://jmeter.apache.org/download_jmeter.cgi
1.2 解压安装包
unzip apache-jmeter-5.4.1.zip
1.3 启动jmeter工具
cd Users/XXXXXX/Downloads/work/安装包/apache-jmeter-5.4.1/bin
sh jmeter
1.4 GUI模式下使用介绍
1.4.1 切换语言
1.4.2 创建压测脚本
1、新建文件,设置线程组。测试计划右键->添加->线程->线程组
2、创建HTTP请求,线程组右键-> 添加-> 取样器-> HTTP请求 3、添加监听器,线程组右键-> 添加-> 监听器-> 选择其中1种或多种结果显示方式
1.4.3 打印请求的响应数据到jmeter.log
通过添加beanshell后置脚本,可以将响应输出到log中,便于排除问题
String resData = prev.getResponseDataAsString();
log.info("请求的响应数据:" + resData)
二、Linux 非GUI模式使用jmeter
前提:Linux机器上已经有了jmeter工具包
2.1 使用方式
执行压测的命令如下:
./bin/jmeter -n -t presstestscript.jmx -l withdrawcashqps-1-result.jtml -e -o report_output
参数介绍:
- -n:非GUI模式执行jmeter
- -t:测试脚本jmx的路径
- -l:指定生成测试结果的保存文件,jtml文件格式
- -e:测试结束后,生成测试报告
- -o:html测试报告路径
- -h:帮助 -> 打印出有用的信息并退出
- -r: 远程执行 -> 启动远程服务
- -H: 代理主机 -> 设置JMeter使用的代理主机
- -P:代理端口 -> 设置JMeter使用的代理主机的端口号
??注意:
- 踩过的坑:压测脚本必须自己执行结束,report_output(测试报告目录)中才会有相应的测试报告;人为手动停止压测不会在report_output中产生测试报告
- report_output(html测试报告路径)目录要为空,不然报错
- 压测时需要注意,非8000~9000的端口不能在本地访问,因此要在开发机上运行
2.2 测试报告解析
2.2.1 Dashboard界面
1)Test and Report informations Source file:jtl文件名 Start Time :压测开始时间 End Time :压测结束时间 Filter for display:过滤器 Lable:sampler采样器名称 2)APDEX(Application performance Index) apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意 T(Toleration threshold):可接受阀值 F(Frustration threshold):失败阀值 3)Requests Summary OK:成功率 KO:失败率 4)Statistics 统计数据 lable:sampler采样器名称 samples:请求总数,并发数*循环次数 KO:失败次数 Error%:失败率 Average:平均响应时间 Min:最小响应时间 Max:最大响应时间 90th pct: 90%的用户响应时间不会超过这个值(关注这个就可以了)2ms,3ms,4,5,2,6,8,3,9 95th pct: 95%的用户响应时间不会超过这个值 99th pct: 99%的用户响应时间不会超过这个值 (存在极端值) throughtput:Request per Second吞吐量 qps received:每秒从服务器接收的数据量 send:每秒发送的数据量
2.2.2 Charts
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 :连接耗时趋势 1)Throughput Hits Per Second (excluding embedded resources):每秒点击次数 Codes Per Second (excluding embedded resources):每秒状态码数量 Transactions Per Second:即TPS,每秒事务数 Response Time Vs Request:响应时间和请求数对比 Latency Vs Request:延迟时间和请求数对比 1)Response Times Response Time Percentiles:响应时间百分比 Response Time Overview:响应时间概述 Time Vs Threads:活跃线程数和响应时间 Response Time Distribution:响应时间分布图
|