jmeter throughput图表_JMeter快速入门

3463c1f6baba6a13bfff43fb4a3458bd.png

作者:Yunga

简介

Apache JMeter是一款纯Java的开发测试工具,它可以用于服务器压力测试,可以方便的获取来自不同压力下的性能指标。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证返回结果是否符合期望。总而言之就是很强大。

环境搭建

当前JMeter最新版为5.2.1,官网描述需要Java8以上,所以我们直接到官网下载最新版JDK即可,JDK下载地址:

https://www.oracle.com/java/technologies/javase-downloads.html

JMeter下载地址:

https://jmeter.apache.org/download_jmeter.cgi

下载完成安装好JDK后,直接解压JMeter目录,如图所示:

fccf1d23128dfd4a2b086f0823649f20.png

这里提前将插件管理器装上,方便之后扩展更多的功能,下载地址:

https://jmeter-plugins.org/install/Install/

下载完成后将plugins-manager放到JMeter目录下的lib/ext/下即可。

完成上述步骤环境搭建就算完成了,接下来就可以运行JMeter了。

使用教程

1. 启动JMeter

终端执行jmeter.sh脚本即可,启动后界面如下:

2ff79b7ab7a4b2b169c54fdde8d1b1d3.png

同时可以在终端看到一段如下提示:

75aebf8f7c29042881791577302221aa.png

这里提到,在测试的时候不要用GUI模式,需要通过执行命令来进行测试,GUI界面是配置测试用例的时候用的,同时说到可以增加Java的堆内存来满足我们的测试需求,在进行并发很大的测试的时候,需要开更多的Java线程则需要修改此项。

2. 测试计划

017a85e4ffb92d893828c60feb850b06.png

点击这个图标,填写测试计划名称和一些描述信息来创建一个测试计划。

在这里可以定义一些全局变量,在计划中的其他位置可以直接通过${name}的使用这些变量:

baf8ebbbc473f93b7849c3f62c91dc79.png

3. 线程组

JMeter的线程组分为3种类型:

3.1 setUp Thread Group

前置线程组,主要用于完成测试前置的一些功能,比如用户登录之类的,当执行计划开启时,首先会执行这个线程组内的计划任务。

3.2 Thread Group

常规线程组,大多数测试用例都是配置在这里的,一个线程组我们可以看作是一组虚拟用户,线程组中的每个线程可以当作是一个虚拟用户,可以在线程组中配置多个线程来模拟大量用户。

3.3 tearDown Thread Group

后置线程组,在这里主要是完成一些测试完成之后的收尾工作,比如用户登出,数据库连接断开等等。

3.4 线程组设置

5b0912d1b2a68b7af870a70a26d855a4.png

在这里可以配置当用例发生错误之后的线程组的行为:

  • Number of Threads(要并发的用户数量)
  • Ramp-up period( 要在多长时间内启动这么多个用户)
  • Loop Count (任务的循环次数)

3.5 线程组总结

所有的线程组都可以创建多个,并且都是相互独立的,可以勾选执行计划配置中的Run Thread Groups consecutively(i.e.one at time),来控制是否需要顺序执行线程组。

4. 测试用例

4.1 创建用例

有很多种用例,这里创建的是Http Request,ThreadGroup->Add->Simpler->Http Request。

9408f83a5db8e62168b30ef2e9487ac9.png

如图所示,可以对Http请求的各种参数进行设置。

4.2 结果断言

JMeter内置很多种断言工具,可以通过点击测试用例,Add->Assertions来创建,下面以Json Assertion为例,如图:

4fe4cf4f06da296ba050a7f24659558c.png

可以设置需要断言的Json路径,已经期望得到的结果,支持正则表达式,勾选Invert assertion后请求如果返回的不是期望结果,本次请求将视为失败,在请求结果中会显示为红色,并在聚合报告中统计为失败。 (结果查询和聚合报告会在后文中讲到)

4.3 前后置处理器

顾名思义就是在请求发起前和请求发起后执行。在后置处理器中,常通过View Results Tree来观察请求的结果,通过结果查询可以方便的配置断言逻辑以及断言方式。 View Results Tree界面如下:

9ee2d789cfcefae3f3f6cc30e88a1828.png

当请求的结果断言不通过或http请求失败时,结果会显示为红色。

4.4 聚合报告

通过Add->Listener->Summary Report可以创建聚合报告监听器,示例如图:

742253b6ef4a21466f3d086387e4f410.png

聚合报告中反应了很多测试数据,这些正是我们所关心的数据:

    • Label:即用例的名字。
    • Samples:取样次数,即我们的用例执行了多少次,也就是我们设置的线程数以及循环次数 。
    • Average:平均响应时间,即单个Request的平均响应时间。
    • Median:中位数,也就是50%用户的响应时间。
    • 90%Line:90%用户的响应时间。
    • Min:最小响应时间。
    • Max:最大响应时间。
    • Error%:错误率——错误请求数/请求总数。
    • Throughput:吞吐量,默认情况下表示每秒完成的请求数(Request per Second)。
    • KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec。

这里需要注意,每次测试数据在报告之中是累加的,在完成一组测试之后要记得清理结果。

测试报告

JMeter是自带测试报告生成机制的,在我们通过上述方式创建好测试用例之后,保存会生成一个 .jmx文件,在之后的测试中只需要导入这个脚本即可再次进行之前的测试,同时可以复制到任何地方使用,非常方便。

以命令行执行脚本: shell script jmeter -n -t ./xxx/name.jmx -l ./xxx/name.jtl -e -o ./xxx/name/reports 通过执行以上命令启动测试计划,将结果存入.jtl文件,并且同时输出测试报告。

JMeter的测试报告数据非常丰富,它以采集数据生成了各种图表可以更加直观的观察我们的测试数据。除了聚合报告中提到的数据,它还包含了各用例响应时间随时间的走势图等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值