Jmeter测试结果分析(下)

前文再续,续接上一回。上一篇讲了如何利用Assertion将测试结果进行初步的筛选。那么,当我们拿到了测试结果之后,我们应该如何去看待它们呢?它们又是怎么来的呢?

一、Listener的使用

用过LoadRunner的人应该都知道,LoadRunner会为我们提供一大堆图标和曲线。但是在Jmeter里,我们只能找到几个可怜的Listener来方便我们查看测试结果。但是,对于初学者来说,一些简单的结果分析工具可以使我们更容易理解性能测试结果的分析原理。所以,千万别小看这几个简单的Listener啊。

A.Aggregate Report 聚合报告

我们可以看到,通过这份报告我们就可以得到通常意义上性能测试所最关心的几个结果了。

Samples -- 本次场景中一共完成了多少个Transaction

Average -- 平均响应时间

Median -- 统计意义上面的响应时间的中值

90% Line -- 所有transaction中90%的transaction的响应时间都小于xx

Min -- 最小响应时间

Max -- 最大响应时间

PS: 以上时间的单位均为ms

Error -- 出错率

Troughput -- 吞吐量,单位:transaction/sec

KB/sec -- 以流量做衡量的吞吐量

B.View Results Tree 查看结果树

通过这个Listener,我们可以看到很详细的每个transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。

如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。

二、.jtl文件的分析

在性能测试过程中,我们往往需要将测试结果保存在一个文件当中,这样既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材。

Jmeter中,结果都存放在.jtl文件。这个.jtl文件可以提供多种格式的编写,而一般我们都是将其以csv文件格式记录,这样做是因为csv文件格式看起来比较方便,更重要的是这样做可以为二次分析提供很多便利。

我这里所说的二次分析是指除了使用Listener之外,我们还可以对.jtl文件进行再次分析。

a.设置jtl文件格式

我们从jmeter官方网站中下载下来的Jmeter解压后是可以直接使用的。但是,使用默认配置生成的jtl文件内容并不能满足我们的需要。于是我们必须进行必要的设置。在2.2版本中,如果要修改jtl设置必须要到jmeter.properties文件中设置;但是在2.3版本中,我们只需要在界面上设置就可以了。你只需要选择某个Listener,点击页面中的configure按钮。此时,一个设置界面就会弹出来,建议多勾选如下项:Save Field Name,Save Assertion Failure Message。

b.jtl文件中的各项

经过了以上设置,此时保存下来的jtl文件会有如下项:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,Latency

请求发出的绝对时间,响应时间,请求的标签,返回码,返回消息,请求所属的线程,数据类型,是否成功,失败信息,字节,响应时间

其中聚合报告中的,吞吐量=完成的transaction数/完成这些transaction数所需要的时间;平均响应时间=所有响应时间的总和/完成的transaction数;失败率=失败的个数/transaction数

温馨提示:在jmeter2.2和2.3版本中,都存在的一个问题是当我们重新打开jmeter,使用某个Listener来查看jtl文件时,jmeter是会报错的。因此当你使用命令行方式完成了一个场景的测试后,你得到的只是一堆保存在jtl文件中的原始数据。所以知道聚合报告中的各项的来源是可以方便大家摆脱测试工具来进行结果的分析。

总的来说,对于jmeter的结果分析,主要就是对jtl文件中原始数据的整理,我是使用一些小脚本进行相关的分析的,不知道你打算怎么做呢?

反正实践后,你总能找到一条属于自己的数据分析之路。


参考文档:http://www.cnblogs.com/Carrie_Liang/archive/2008/11/10/1330997.html

Jmeter学习——11相关推荐

  1. JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

    前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...

  2. 深度学习11个实用技巧

    深度学习11个实用技巧 深度学习工程师George Seif发表了一篇博文,总结了7个深度学习的技巧,本文增加了几个技巧,总结了11个深度学习的技巧,主要从提高深度学习模型的准确性和速度两个角度来分析 ...

  3. JMeter学习-017-java.net.SocketException: Permission denied: connect 解决方案

    JMeter学习-017-java.net.SocketException: Permission denied: connect 解决方案 参考文章: (1)JMeter学习-017-java.ne ...

  4. JMeter学习(十)内存溢出解决方法

    JMeter学习(十)内存溢出解决方法 参考文章: (1)JMeter学习(十)内存溢出解决方法 (2)https://www.cnblogs.com/yang-hao/p/5319720.html ...

  5. RxJava学习 - 11. Switching, Throttling, Windowing, and Buffering

    RxJava学习 - 11. Switching, Throttling, Windowing, and Buffering Buffering Fixed-size buffering Time-b ...

  6. 深度学习-11:神经元、神经网络、人脑和卷积神网络

    深度学习-11:神经元.神经网络.人脑和卷积神网络 深度学习原理与实践(开源图书)-总目录 在生物神经网络中,学习源自于大脑中无数神经元之间的连接.大脑接触到新的刺激后,这些神经元之间的连接改变了配置 ...

  7. Jmeter学习-BeanShell 内置变量vars、props、prev

    参考:Jmeter BeanShell 内置变量vars.props.prev的使用详解_java_脚本之家 1.介绍 在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用 ...

  8. 蓝桥杯单片机学习11——PCF8591A/DD/A转换芯片

    上期我们学习了DS1302实时时钟的基本使用,现在我们来学习PCF8591A/D&D/A转换芯片的相关内容 蓝桥杯单片机学习11--PCF8591A/D&D/A转换芯片 PCF8591 ...

  9. STM32单片机学习(11) DS18B20温度传感器实验

    STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口, ...

最新文章

  1. hellowolrd 的系统调用
  2. 在Visual Studio 2010中实现数据驱动Coded UI Tests
  3. linux shell之数组
  4. create react app 在start后不清空terminal
  5. Jar/War/Ear等包的作用与区别详解
  6. Alibaba Nacos:搭建Nacos平台
  7. 事务(ACID)、并发一致性问题(丢失修改、读脏数据、不可重复读、幻影读)、封锁(封锁粒度、类型、协议、MySQL 隐式与显示锁定)
  8. 中间介(MiddleWare)
  9. Django中static media的简单配置及图片上传实践
  10. EfficientDet 目标检测开源实现
  11. 超级终端软件哪个好_同城配送软件哪个好?如何选择配送软件?
  12. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出
  13. 云服务售后服务调研,参与问卷送福利!
  14. 验证码Kaptcha的使用
  15. word中使用通配符替换【持续更新系列】
  16. 如何用c语言程序预测身高,测身高的C语言程序.doc
  17. c语言win32api勾取,第一次用C语言+win32api写窗体应用程序,晕死了
  18. STM32基础11--模数转换(ADC)
  19. 对比Windows Phone与iOS、Android开发的不同[转]
  20. 分享| 三款在线临时文件分享工具,无需注册

热门文章

  1. Struts2中导入外部xml文件出现Included file cannot be found错误!
  2. java中String new和直接赋值的区别
  3. win10系统中VMware与Hyper-v不兼容
  4. 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
  5. iOS开发之多媒体播放
  6. Zabbix监控之graphs(图形或数据图)
  7. Servlet3.0之二:异步特性
  8. iOS 隐藏导航栏整个视图上移闪屏问题
  9. Oracle 10g 应用补丁PSU 10.2.0.5.180717
  10. Java中比较对象的两个接口Comparable接口和Comparator接口