压测工具Jmeter介绍及使用
一、压测工具选型
1.1、前言
压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,关于java应用的压力测试,业界常用工具为Apache Jmeter。(http://jmeter.apache.org)。
1.2、工具概述
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
二、压测工具安装
2.1、软件版本
本次测试,选择Jmeter官方最新版本进行。由于只有windows操作系统具备Jmeter的可视化界面,因此本次选择windows版本进行安装,以方便进行压测配置。
2.2、安装步骤
- 下载Jmeter:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz
- 解压到指定文件夹:D:\software\Dev-Env\Jmeter\apache-jmeter-5.5
- 配置到环境变量:主要配置JMETER_HOME=D:\software\Dev-Env\Jmeter\apache-jmeter-5.5\bin以及CLASSPATH配置%JMETER_HOME%\bin;
- 运行Jmeter:在安装目录下bin文件夹,找到jmeter.bat,双击运行即可。成功后显示如下:
注意该窗口的提示信息,意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
三、应用平台压测(登录接口)
3.1、配置线程池
考虑到目前的用户量,配置500个线程,循环1次。
3.2、配置请求头
在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。配置我们需要进行测试的程序协议、地址和端口。
当所有接口测试访问域名和端口都一样时,可使用该元件,一旦服务器地址变更,只需要修改请求默认值。
3.3、配置接口HTTP请求
在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。Taier登录接口用的form-data,需要在请求头进行设置。
3.4、添加请求头
上一步骤中涉及到的数据请求方式等,都可以在此配置。
3.5、添加断言
在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
3.6、添加查看结果树
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。直接添加,然后点击运行按钮就可以看到结果了。
3.7、添加汇总报告
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。直接添加,然后点击运行按钮就可以看到结果了。
3.8、保存执行计划
3.9、执行测试计划
前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。
jmeter -n -t Taier平台压力测试.jmx -l result.txt -e -o taierLoginWebReport
在命令行执行以上命令
结束之后会在当前目录下生成压测报告、压测结果和压测日志
3.10、获取压测报告
进入压测报告文件夹,双击打开index.html即可获取压测报告详情。
总体报告:
- 响应报告