天天看点

Jmeter五步实现性能测试

Jmeter除了是一款常用的接口测试工具,它其实更强大的功能是实现性能测试,今天用jmeter实现一个简单的性能测试案例,本次只涉及性能测试的执行,前期的测试需求分析,测试数据准备,以及测试结果的分析调优后续会更新相关文章。

首先,基本环境如下:

jdk:java环境

Jmeter:直接解压使用,本文使用apache-jmeter-5.1.1

运行:进入 <code>apache-jmeter-5.1.1\bin</code>目录,双击 <code>jmeter.bat</code>

需求:为了便于大家理解实践,采用访问百度首页的一个HTTP请求,并发20个用户,运行1分钟,查看TPS和响应时间变化。

启动软件之后,右击“测试计划”——“添加”——线程——线程组”,这样就建好了一个线程组了。

Jmeter五步实现性能测试

这是常规的添加线程组,缺点是线程数不能分批执行,怎么样可以实现像roadrunner那样梯度加压呢。

幸好Jmeter有着丰富的开源插件,百度搜索下载JMeterPlugins-Standard.jar,放入目录apache-jmeter-5.1.1\lib\ext下,就可以实现如下的梯度加压。

Jmeter五步实现性能测试

启动参数说明:

This group will start 20 threads:设置线程组启动的线程总数为20个;

First,wait for N seconds:启动第一个线程之前,需要等待N秒;(此次案例中可设置为0秒)

Then start N threads:设置最开始时启动2个线程;

Next,add 2 threads every 2 seconds, using ramp-up 0 seconds:每隔2秒,启动2个线程;

Then hold load for 60 seconds:启动的线程总数达到最大值之后,再持续运行60秒;

Finally,stop 5 threads every 1 seconds:每秒停止5个线程;

按照如下顺序添加HTTP请求,线程组——添加——取样器Sampler——HTTP请求。

填写百度访问请求协议、URL、请求方法GET。

Jmeter五步实现性能测试
Jmeter五步实现性能测试

还可以对请求的响应进行断言,添加断言-响应断言,响应文本。

Jmeter五步实现性能测试

常规使用的监听器有察看结果树和聚合报告

添加顺序如下:

选择“添加”→“监听器”→察看结果树

选择“添加”→“监听器”→聚合报告

我们的目标是观察TPS和响应时间的变化,有没有什么图形化的工具呢。

开源插件很丰富,将插件jmeter-plugins-manager-1.3.jar放入目录apache-jmeter-5.1.1\lib\ext下。

添加如下两个监听器。

Jmeter五步实现性能测试

点击工具栏运行按钮,开始执行测试,同时观察察看结果树是否有错误请求。

Jmeter五步实现性能测试

运行前需要保存脚本,并且需要将聚合报告的结果保存在一个.jtl文件中,如下:

Jmeter五步实现性能测试

运行完成:

聚合报告

Jmeter五步实现性能测试

TPS曲线

Jmeter五步实现性能测试

响应时间曲线

Jmeter五步实现性能测试

JMeter3.0以后提供一个用于生成HTML页面格式图形化报告的扩展模块。该模块支持通过两种方式生成多维度图形化测试报告。

基本命令格式: <code>jmeter-g&lt;log file&gt;-o&lt;Pathto output folder&gt;</code>

如:<code>jmeter-g C:\Users\Administrator\Desktop\访问百度.jtl-o D:\JmeterReport</code>

-g :specifies the existing result file 指定已存在的结果文件

-o:保存html报告的路径, 此文件夹必须为空或者不存在

<code>`cmd`</code>

<code>`d:`</code>

<code>`cd:D:\jmeter\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin`</code>

<code>`jmeter -g C:\Users\Administrator\Desktop\访问百度.jtl -o  D:\JmeterReport</code>

生成如下测试报告:

Jmeter五步实现性能测试

使用浏览器打开html文件:

Jmeter五步实现性能测试

报告中有丰富的图表数据,便于直观分析测试结果,大家可以自行探索下这个报告都有哪些功能吧。