目录
前言
压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具
JMeter
。
一、关于Jmeter
JMeter
是
Apache
组织开发的基于Java的压力测试工具,用于对软件做压力测试,所以在使用之前需要先安装Java环境。
官网下载:http://jmeter.apache.org/download_jmeter.cgi
二、Java环境
JDK8下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows
安装下载好的JDK,第一次会安装jdk,第二次会安装jre,所以我们提前创建好文件夹:
2.1 环境变量
JAVA_HOME
E:\jmeter\jdk
==========================
Path → %JAVA_HOME%\bin
Path → %JAVA_HOME%\jre\bin
此时可以
CMD
中输入
java -version
来检验是否安装成功。
三、准备工作
解压下载的二进制包,进入bin目录,使用
jmeter.bat
启动程序,或者可以添加到环境变量,直接使用
CMD
启动
JMeter
。
3.1 CMD窗口的提示信息
这里额外提一下,启动之后会有两个窗口,一个
CMD
窗口,一个JMeter的 GUI。不要忽略
CMD
窗口的提示信息:
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
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]
这里是考虑到在测试时响应GUI会造成一定的延迟,所以在重要测试时一定要使用
CMD
执行测试。
3.2 更改语言为中文
官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文
不过有个问题,这个中文设置只是在此次使用生效,关闭了再次打开又会变回英文。
解决方法:打开
JMeter
所在文件夹,在
bin
目录中找到
jmeter.properties
,用
notepad++
打开,找到这一行:
将
en
改为
zh-CH
并且去掉注释符
#
即可。
四、创建测试
4.1 创建线程组
在“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】。
设置线程数和循环次数。我这里设置线程数为300,循环10次。
4.2 配置元件
在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP请求默认值】。
配置我们需要进行测试的程序协议、地址和端口。
此处配置之后,在当前组内host都一样时,HTTP请求中host即可留空,当host变更时,只需要更改该元件即可。
4.3 构造HTTP请求
在“线程组”右键 【添加-】->【取样器】–>【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的
json
4.4 添加HTTP请求头
在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP信息头管理器】。
因为我要传输的数据为
json
,所以设置一个
Content-Type:application/json
拓展:后续我们用到token时也可以在此添加,可以用到JSON提取来进行方便快捷的提取登录成功的token。如下图所示:
4.5 添加断言
在我们刚刚创建的线程组上右键 【添加】–>【断言】–>【响应断言】。
根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
4.6 添加查看结果树
在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】。
直接添加,然后点击运行按钮就可以看到结果了。
除了查看结果树,更多的结果查看可以在【添加】–>【监听器】中添加
4.7 保存测试计划
要记得及时保存测试计划,以免丢失。
总结
总的来说,JMeter是一款功能强大的压测软件,合理利用它可以为我们省去更多时间,提高工作效率。
版权归原作者 MingkXr 所有, 如有侵权,请联系我们删除。