一、非界面下,执行测试文件、生成测试结果文件、生成最终的测试报告:
1、一般情况下,使用图形界面编写、调试好脚本;
2、然后在非界面下:执行测试文件、生成测试结果文件、生成最终的测试报告;
命令如下:
jmeter -n -t renbao_300.jmx -l result.jtl -e -o ./result_eport
参数说明:
-n: 非GUI模式运行JMeter
-t: 测试文件(路径)
-l: 保存生成的测试结果文件,jtl文件格式
-e: 测试结束后,生成测试报告
-o: 指定测试报告的存放位置(目录)
注意一: -l -o 指定的文件及文件夹,不需要事先创建。
注意二:需要生成测试报告的,必须在jmeter的配置文件(jmeter.properties)中把(jmeter.save.saveservice.output_format=xml 改为 :jmeter.save.saveservice.output_format=csv)。
二、使用已经生成的测试结果,生成测试报告:
命令如下:
jmeter -g result.jtl -o ./result_eport
参数说明:
-g: 已存在的测试结果文件
三、报告简介
1、APDEX(Application Performance Index):
应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意。是由APDEX公司推出的。
2、Over Time
Response Times Over Time: 响应时间
Bytes Throughput Over Time: 字节接收/发送的数量
Latencies Over Time:延迟时间
3、Throughput
Hits Per Second: 每秒点击率
Codes Per Second: 每秒状态码数量
Transactions Per Second: 每秒事务量
Response Time Vs Request: 响应时间点请求的成功/失败数
Latency Vs Request: 延迟时间点请求的成功/失败数
4、Response Times
Response Time Percentiles: 响应时间百分比
Active Threads Over Time: 激活线程数
Time Vs Threads: 测试过程中的线程数时续图
Response Time Distribution: 响应时间分布
四、区分服务器时间和网络时间
用过 LR的知道有一个“网页细分图”的,通过这个图,可以区分哪些请求的响应时间长,请求时间是消耗在server处理,还是消耗在网络传输过程中,也即是 Server time 和 Network time。
目前没有发现jmeter有提供这样的功能,但在测试结果中有些数值可以用于参考。下面说明方法:
要设置保存测试结果为xml格式:
在配置文件: jmeter.properties 中找到 jmeter.save.saveservice.output_format=csv 改为:
jmeter.save.saveservice.output_format=xml。
重启jmeter,并执行测试文件。
注意:需要在非界面模式下执行。
得到测试结果文件:result2_renbao_300.jtl,是xml格式的,打开:
注意画红线部分。
lt :不够严格的解释为:latency time (ms)。
执行测试文件,一次请求,大概的过程如下:
Start timer
Send Request
Wait for data
Initial (first) response packet occurs - this is latency
more data
......
end of response
Stop timer - this is the response time
所以 lt 是接收到响应的第一个包的时间。
而上面的 XML 文件中,t 这一项表示的是 elapsed time。也就是一个请求从发出到收到完整的响应的时间。
那么 lt 就相当于 LR 中的 Server time,而 t-lt 就相当于 LR 中的 Netwrok time。
其实,应该明白,这只是一个很粗鲁的分析,并不准确的,因为网络时间还包含:发送数据到服务器的时间,第一个相应包传回来所用的时间等,虽然这很粗鲁,却也可以作为一个参考,大致可以知道网络对这个请求有多大影响。而且太较真这个时间也没有任何意义,因为每一次请求这个时间也是不可重现的,受到可变的环境影响太大。
各个属性含义:
t:表示从请求开始到响应结束的时间
lt:表示整个的空闲时间
ts:表示访问的时刻
s:表示返回的结果true表示成功,false表示失败
lb:表示标题
rc:表示返回的响应码
rm:表示响应信息
tn:表示线程的名字“1-138”表示第1个线程组的第138个线程。
dt:表示响应的文件类型
by:表示请求和响应的字节数
responseData:表示返回数据
cookies:表示cookie
method:表示请求方式
queryString:表示查询类型
完毕。
网友评论