步骤:
1.准备压测脚本+压测数据
现在测试环境调试通过,最后再上正式环境,试1条并发(保证脚本和数据没问题);
2.准备压测环境
压测机:路径正确,jmeter可用,dstat可用,网络通(可能会修改host)
3.进行压测
*流量监控:./dstat -lcmdntrp
*执行指令:jmeter -n -t /home/dmadmin/1.jmx -l /home/dmadmin/result/1.jtl
*观测数据:查看是否正常、合理、指标是否达到预期、如果有不合理的现象,定位问题并解决;
4.分析压测数据
*生成报告:在jmeter/bin目录下执行:
sh jmeter.sh -e -o /home/dmadmin/web/performance/result/report -g /home/dmadmin/web/performance/result/xx.jtl
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
分别代表:
时间戳、响应时间(ms)、请求的标签、响应码、响应信息、所属线程、数据类型、是否成功、失败信息、字节、发送的字节、组线程、所有线程、延迟(接收到相应的第一个字节的时间点-请求开始发送的时间点)、闲置时间、连接
每一行代表一个请求,有时使用jtl文件生成报告会报错 (原因:缺少某个字段,办法:使用Python脚本批量处理,去掉一行或者补全数据);
*报告分析
**Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性
**Samples:这次测试中一共发出的请求数
**Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 **Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
**Min:最小响应时间
**Max:最大响应时间
**Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示 Transaction per Second 数
**KB/Sec:每秒从服务器端接收到的数据量