1 .前言压力测试是所有web APP应用程序都必须在联机之前进行的测试。 他可以帮助我们发现系统瓶颈,减少发布到生产环境后出现问题的概率。 可以评估系统的承载能力,并在此基础上采取一些应对措施。 压力测试是非常重要的一步。 介绍压力测试工具JMeter。
对于JMeter Apache JMeter,这是由Apache开发的基于Java的压力测试工具。 用于对软件的压力测试,最初设计用于web APP应用程序的测试,后来扩展到其他测试领域。 它可用于测试静态和动态资源,包括静态文件、Java applet、CGI脚本、Java对象、数据库和FTP服务器。 JMeter可用于对服务器、网络或对象进行繁重的负载模拟,从不同的压力类别测试强度,并分析整体性能。 JMeter还可以对APP应用程序进行功能/回归测试,并通过编写带断言的脚本来验证程序是否返回了预期的结果。 在JMeter中,为了最大限度地提高灵活性,可以使用正则表达式创建断言。
Apache jmeter可用于测试静态和动态资源(如文件、servlet、Perl脚本、java对象、数据库和查询以及FTP服务器)的性能。 它可以用于模拟服务、网络或对象上的负载,以测试强度,并分析各种压力类型下的总体性能。 您可以使用它来提供性能的图形分析,并在大规模并发负载下测试服务器/脚本/对象。
官网: http://jmeter.Apache.org/download _ jmeter.CGI
三. JMeter安装一、安装配置JDK
1 .下载并安装jdk。 地址: http://www.Oracle.com/tech network/Java/Java se/downloads/index.html
2 .设置JDK环境变量:右键单击计算机属性-高级系统设置-系统属性-高级-环境变量-添加以下系统变量
变量名:“JAVA_HOME”
变量值:“d :program filesJavaJDK1.8.0_ 92”【JDK安装路径】
变量名:【path】
变量值【; %JAVA_HOME%bldxy; 】
变量名:【CLASSPATH】
变量值【…; %JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar; 【.不能泄露】
3.JDK验证:如果显示运行cmd的java -version-的输入java版本,表示JDK安装成功
二.安装配置jmeter
下载并解压缩Jmeter安装包。 官方网站地址: http://jmeter.Apache.org/download _ jmeter.CGI
2 .配置jmeter环境变量:使用以下变量名称和变量值配置jmeter系统环境变量
变量名:“JMETER_HOME”
变量值: " d :program filesjmeterApache-jmeter-3.0 " (根据实际的jmeter解压缩路径填写) ) ) ) ) ) ) ) )
变量名:【CLASSPATH】
变量值: % jmeter _ homelibextApache jmeter _ core.jar; %JMETER_HOME%libjorphan.jar; % jmeter _ home %liblogkit-2.0.jar;
3 .启动jmeter :双击jmeter解压缩路径(Apache-jmeter-3.0(bldxy )中bldxy下的jmeter.bat
启动jmeter.bat执行错误unabletoaccessjarfileapachejmeter.jarerrorvalue=15
原因:官方网站下载的apache-jmeter-3.2_src.zip导致运行错误。
解决方案:需要下载的是apache-jmeter-3.2.zip
启动后,有两个窗口: cmd窗口和jmeter GUI。 上一个不要忽略CMD窗口中的提示信息:
JMeter:
CMD窗口提示信息===================================onlyfortestcreationandtestdebugging.forloadtesting, usenonguimode : jmeter-n-t [ JMX文件]-l [结果文件]-e-o [ pathtowebreportfolder ] increasejavaheaptometyourter
aceSize=256m" in the jmeter batch fileCheck : 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】变更为简体中文
四.创建测试 1.创建线程组在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。
设置线程数和循环次数。我这里设置线程数为500,循环一次。
2.配置元件在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。
配置我们需要进行测试的程序协议、地址和端口
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。
3.构造HTTP请求在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json
4.添加HTTP请求头在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。
因为我要传输的数据为json,所以设置一个 Content-Type:application/json
5.添加断言在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。
根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
6.添加察看结果树在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。
直接添加,然后点击运行按钮就可以看到结果了。
7.添加Summary Report在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。
直接添加,然后点击运行按钮就可以看到结果了。
为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。
8.测试计划创建完成记得点保存。
五.执行测试计划前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。
我这里执行的命令为:
jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport说明:
testplan/RedisLock.jmx 为测试计划文件路径
testplan/result/result.txt 为测试结果文件路径
testplan/webreport 为web报告保存路径。
Web报告如下:
转自:https://www.cnblogs.com/stulzq/p/8971531.html