利用Jmeter进行压力测试(基础版)
安装Jmeter
下载地址
下载完成后直接解压即可:
环境变量
-
新增JMETER_HOME环境变量,变量值为JMeter解压的路径
-
打开电脑的系统高级设置-点击环境变量-CLASSPATH变量,加上
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
-
完成以上操作后,进入JMeter的bin目录,双击jmeter.bat文件即可打开JMeter。
-
记得修改jmeter安装路径bin文件夹下的jmeter.bat文件,找到以下文字:
if not defined HEAP (
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms1g –Xmx1g -XX:MaxMetaspaceSize=256m
)
将其修改为:set HEAP=-Xms1g –Xmx2g -XX:MaxMetaspaceSize=512m
或set HEAP=-Xms1024m –Xmx1024m -XX:MaxMetaspaceSize=512m
该修改目的是为了防止内存溢出,视情况而定。
修改后启动Jmeter,进行以下配置进行压力测试。
压力测试
一、新建测试计划(Test Plan)
Jmeter启动后会显示Test Plan,也就是测试计划,可以根据自己的测试计划名进行修改,中文英文都可以,我这里命名为reportartist,如下图:
二、新增线程组(Threads Group)
- Number of Threads(users):线程数量,即为虚拟用户数,一个虚拟用户占用一个进程或线程。
- Ramp-up period(seconds):启动时间/准备时长,以秒为单位,即虚拟用户数在多少时间内全部启动。
- Loop Count:循环次数,每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
右击测试计划(reportartist)——Add——Threads(Users)——Threads Group,命名为API Test,
三、添加Http请求(Http Request)
右击线程组(API Test)——Add——Sampler——Http Request,命名为Login API
四、添加Http信息头管理器(HTTP Header Manager)
由于我的是post请求,请求头是json格式,所以需要添加Http信息头管理器(HTTP Header Manager)并设置以下参数:
五、添加CSV数据文件设置(CSV Data Set Config)
该元件是从文件中读取变量值,用于变量的参数化,可设置多种读取方式。
我这里就是username,password两个参数需要批量传参,所以新建一个文本文档:
这里的逗号是英文格式
将文本文档格式改成csv:
上传刚才创建并编辑过的文档,填写参数,其他项根据我的截图更改
六、添加响应断言(Response Assertion)
我测试时只需要判断返回状态码是否为200即可,只要不是200就提示test error,设置如下:
七、添加响应断言结果(Assertion Results)
如果500个请求中有状态码返回不为200的即在响应断言结果中显示test error,为200则显示接口请求名称
八、添加察看结果树(View Results Tree)
添加察看结果树点击执行就能查看请求状态和返回结果状态(绿色则代表返回正常):
返回结果有中文的可能显示乱码,需要更改Jmeter的配置文件,找到sampleresult.default.encoding处去掉注释符#并将默认ISO-8859-1更改为utf-8:
九、利用命令执行压力测试
由于Jmeter启动时,会显示两个窗口,一个是cmd窗口,一个是GUI窗口,cmd窗口如下提示:
中文翻译就是:
所以进入Jmeter安装路径的bin目录下输入cmd执行以下格式命令:
jmeter -n -t <测试计划的文件路径> -l <测试结果文件的保存路径> -e -o <测试结果的web报告保存路径>
在任意文件夹新建result.jtl用于存放请求的结果,新建一个空目录webreport用于存放压力测试的报告,不新建也没关系,会自动生成的。
出现…end of run代表成功生成报告
点击webreport文件夹下的index.html即可查看压力测试报告
注意:每次执行压力测试的命令时都要保持result.txt文件和webreport文件夹为空