本文已同步到公众号,欢迎关注:
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
环境:windows 10 JDK:1.8 Jmter: 5.3
由于Jmeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)
官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
选择Java SE 8u151/ 8u152,点击JDK下载
安装下载的JDK
配置系统环境变量
apache-jmeter-5.3.zip
下载完成后解压zip包
启动JMeter
双击JMeter解压路径(apache-jmeter-5.3\bin)bin下面的jmeter.bat即可
启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:
JMeter:
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
并且修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文
在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。
设置线程数和循环次数。我这里设置线程数为10,循环一次。
线程组参数详解:
因为接口调试需要,我们暂时均使用默认设置,待后面真正执行性能测试时再回来配置。
在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。
配置我们需要进行测试的程序协议、地址和端口
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。
Http请求主要参数详解:
在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json
在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。
因为我要传输的数据为json,所以设置一个 Content-Type:application/json
在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。
根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。
直接添加,然后点击运行
按钮就可以看到结果了。
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。
直接添加,然后点击运行
按钮就可以看到结果了。
聚合报告参数详解:
一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。
记得点保存。
前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。
我这里执行的命令为:
前提是要先把
jmeter
配置为环境变量,在环境变量Path
中加入Jmter解压目录中的bin文件夹位置---D:\javatools\apache-jmeter-5.3\apache-jmeter-5.3\bin
,并且配置好以后可以直接在CMD
中输入jmeter
就可以启动jmter
jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
jmeter -n -t .\HTTP请求.jmx -l result.txt -e -o webrepoter
说明:
testplan/RedisLock.jmx
为测试计划文件路径
testplan/result/result.txt
为测试结果文件路径
testplan/webreport
为web报告保存路径。
Web报告如下:
快捷键CTRL+E,会清除之前的信息,或者点击如下图中的两个图标
线程数量和循环次数将会影响最终的测试报告,请大家多多测试。
相关链接:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章