在linux上使用Jmeter进行压力测试
将之前下载的zip包上传到linux服务器并配置环境变量
vi /etc/profile
在文件最后添加以下内容
export JMETER=/usr/local/jmeter
export PATH=${JMETER}/bin/😒{PATH}
使环境变量生效
source /etc/profile
使用jmeter -v查看是否生效。
将在GUI下写好的请求保存为测试脚本
在我们之前的Http请求中加入聚合报告,保存并将test.jmx文件上传至要测试的服务器,我是将文件传到/usr/local/apache-jmeter-5.4.1/mytest下
运行以下命令开始测试
jmeter -n -t test.jmx -l test.jtl
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错
执行完成之后会生成test.jtl文件,可以将该jtl文件下载本地,查看运行结果
上面遗留有一个问题,下载下来的jtl文件导入结果树中,我们并不能看到请求数据和响应数据
jmeter为了减轻客户机负担,没有默认把这些信息保存,如果想要保存,也可以,需要做出如下配置:
修改bin目录下的user.properties文件,追加配置:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
性能测试建议还是不要开这些配置,会增加报告的大小
non-gui运行结果GUI查看,中文乱码:
JMeter结果树响应数据中文乱码解决办法:
修改bin目录下的user.properties文件,追加配置:
jmeter.save.saveservice.encoding=true
另外修改encoding编码,修改bin目录下的jmeter.properties文件,搜索“sampleresult.default.encoding”关键字,找到如下配置:
The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=ISO-8859-1
将sampleresult.default.encoding注释删掉,并改成utf-8编码,即:
sampleresult.default.encoding=utf-8