Jmeter测试结果分析这一篇主要讲述如何使用jmeter中Assertion对结果进行简单的分类,以及当我们拿到测试结果后,我们应该如何去看待这些测试结果。
用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析。例如可以做到判断返回的结
果是否正确;判断request的response
time是否大于x秒之类的。相比起LoadRunner,Jmeter在这方面没有那么强大,但是个人认为,对于一些编程基础不是太好的测试人员来
说,Jmeter比LoadRunner易用性上面做得更出色。
Assertion--断言,通常是用于对每一个request sampler进行额外验证的工具。下面通过一个例子来介绍一下常用的几个Assertions。
假设现在要进行一个登陆的压力测试,下面是对pass的几个定义:
1.正确login后,必须收到返回的身份验证和用户个人信息下载的完成信息;
2.响应时间不能超过150毫秒
3.返回的结果大小不能小于750bytes
根据以上的要求,我们在对应的request sampler下面添加了以下的Assertions。
A.Response Assertion
Response Field to Test -- 标示被检查对象是什么?
Pattern Matching Rules -- 标明被检查对象与验证内容之间的关系,Contains(包含关系);Matches(匹配关系);Equals(相等关系);Not(非关系)
Pattern to Test -- 需要验证的内容列表
B.Duration Assertion
Duration to Assert -- 允许的响应时间的最大值
C.Size Assertion
Size to Assert -- 对于返回结果文件大小的标准定义
二、结果分析
添加了以上的Assertions后,我运行了一次脚本。以下是存放结果的.jtl文件的内容:
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,Latency
11/04/08 13:22:03,172,Do Login,200,OK,Thread Group 1-1,text,false,The operation lasted too long: It took 172 milliseconds, but should not have lasted longer than 150 milliseconds.,835,172
11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-2,text,false,Test failed: text expected to contain /loginMsg="OK"/,633,156
11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-3,text,false,The
operation lasted too long: It took 156 milliseconds, but should not
have lasted longer than 150 milliseconds.,839,156
11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-4,text,false,The
operation lasted too long: It took 156 milliseconds, but should not
have lasted longer than 150 milliseconds.,836,156
11/04/08 13:22:03,78,Do Login,200,OK,Thread Group 1-5,text,true,,779,78
11/04/08 13:22:03,63,Do Login,200,OK,Thread Group 1-7,text,false,Test failed: text expected to contain /loginMsg="OK"/,570,63
11/04/08 13:22:03,141,Do Login,200,OK,Thread Group 1-6,text,false,The result was the wrong size: It was 721 bytes, but should have been greater than 750 bytes.,721,141
11/04/08 13:22:03,78,Do Login,200,OK,Thread Group 1-9,text,false,The
result was the wrong size: It was 724 bytes, but should have been
greater than 750 bytes.,724,78
11/04/08 13:22:03,204,Do Login,200,OK,Thread Group 1-10,text,false,The
operation lasted too long: It took 204 milliseconds, but should not
have lasted longer than 150 milliseconds.,1137,204
11/04/08 13:22:03,2985,Do Login,200,OK,Thread Group 1-8,text,false,Test
failed: text expected to contain /loginMsg="OK"/,570,2985
我们可以看到,每一个Sampler都会经过Assertions的判断,只要有一个不符合条件的都会标示为False。
其实除了以上讲到Assertion,jmeter还提供了其他一些比较实用的Assertion,而我在这也不一一介绍了。
有兴趣的可以看一下jmeter的user manual,然后再自己动手试验一下。
前文再续,续接上一回。上一篇讲了如何利用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文件中原始数据的整理,我是使用一些小脚本进行相关的分析的,不知道你打算怎么做呢?
反正实践后,你总能找到一条属于自己的数据分析之路。
相关推荐
【JMeter测试实验报告】 Apache JMeter是一款强大的性能测试工具,尤其在互联网应用的压力测试方面表现卓越。在本次实验中,我们深入理解了如何利用JMeter进行简单的Web测试,包括了JMeter的主要测试组件和它们的...
一个JMeter测试计划通常由以下几个部分组成: 1. **线程组**:模拟并发用户。线程组中定义了并发用户数量(线程数)和测试循环次数,以控制测试的并发程度和持续时间。 2. **采样器**:执行具体的测试任务,如HTTP...
本文将深入探讨JMeter的使用方法、重要功能以及如何进行超细粒度的压力测试报告分析。 首先,JMeter是一款由Apache软件基金会开发的负载和性能测试工具,适用于Web应用、FTP服务器、数据库和其他协议的服务。它支持...
"JMeter性能测试-day06-all"可能讲解了结果分析和报告的生成,JMeter的监听器如聚合报告、响应时间图等可以帮助分析测试结果,找出性能问题。同时,可能也会介绍如何自定义报告格式,以便于分析和分享。 最后,...
使用JMeter测试Web应用 JMeter是一个功能强大的测试工具,专门用于测试Web应用的性能和可靠性。以下是使用JMeter测试Web应用的知识点: 一、安装和启动JMeter * 下载JMeter的release版本,并将其解压缩到指定目录...
标题“使用Jmeter测试Java请求”表明我们要关注的是在JMeter中模拟对Java服务端的HTTP请求,并分析其响应时间和资源消耗。以下将详细介绍这个过程: 1. **JMeter简介** JMeter是Apache软件基金会的一个项目,它是...
【JMeter 优化测试报告模板】是一份专为性能测试设计的报告模版,它针对JMeter工具进行了定制,旨在帮助测试人员系统性地记录、分析和展示JMeter测试的结果,以便于理解应用的性能瓶颈并进行优化。JMeter是一款开源...
总的来说,JMeter性能测试报告提供了全面的性能测试分析,包括测试目标、测试环境、执行的测试类型以及详细的测试结果,为优化和提升系统性能提供了依据。通过这样的报告,测试工程师能够深入理解系统的性能瓶颈,...
《JMeter测试结果分析——shanhe-me项目更新详解》 JMeter是一款强大的性能测试工具,广泛应用于Web应用、API接口以及各种服务的负载和压力测试。在“jmeter-results-shanhe-me.rar”这个压缩包中,我们看到的是一...
【JMeter测试教程文档PDF】概述 Apache JMeter是一款强大的开源测试工具,...JMeter教程文档PDF将深入讲解如何利用这款工具进行有效的性能测试,包括设置参数、构建测试计划和分析结果,为测试人员提供宝贵的指导。
首先,我们要知道JMeter本身并不直接支持将测试结果导出为Excel格式,但可以通过第三方库或自定义插件来实现这一功能。在这个场景中,我们使用了两个特定的jar包:`jxl.jar`和`JmeterResult.jar`。`jxl.jar`是Java ...
本报告详细阐述了使用JMeter对ActiveMQ进行性能测试的过程和结果,旨在评估ActiveMQ在JMS(Java消息服务)环境下的性能表现。JMeter作为一个强大的负载和性能测试工具,被广泛用于测试各种应用程序,包括消息中间件...
- 添加监听器,如View Result Tree和Summary Report,以便分析测试结果。 2.2 测试环境 - 客户端:LZD-20180612EYJ,Win 7系统,配备酷睿 i5-7400处理器和16GB内存。 - 服务端:iZnpj215qhovuZ,Windows Server ...
《JMeter测试之混合场景测试详解》 在软件性能测试领域,JMeter是一款广泛应用的开源工具,它能够对各种协议和服务进行压力和负载测试。在实际应用中,我们经常需要模拟用户的真实行为,这就涉及到了混合场景测试。...
7. **执行测试**:运行JMeter测试计划,观察性能指标。 8. **分析结果**:根据测试结果,分析系统在高负载下的表现,找出可能的性能瓶颈。 总之,JMeter作为一款强大的性能测试工具,提供了全面的功能来模拟多种...
【JMeter测试Web服务接口】 Apache JMeter是一款强大的性能测试工具,主要被用来对Web应用程序进行负载和压力测试。在本资源中,你将获得关于如何使用JMeter 3.0来测试Web服务接口的详细文档,这将帮助你评估接口的...
BadBoy是一款免费的Web录制工具,它简化了创建复杂的JMeter测试脚本的过程。首先,你需要访问BadBoy的官方网站或第三方软件库下载并安装该软件。 **b. 启动BadBoy软件** 安装完成后,双击BadBoy图标启动软件。界面...