在linux上使用Jmeter进行压力测试

我们不可能在本地连接远程的服务数据库,等来测试服务的抗压能力,包括网络等一些问题,测试时不准确的,所以要在服务所在的linux服务器测试压力

将之前下载的zip包上传到linux服务器并配置环境变量

vi /etc/profile
在文件最后添加以下内容
export JMETER=/usr/local/jmeter
export PATH=${JMETER}/bin/:${PATH}
使环境变量生效
source /etc/profile
使用jmeter -v查看是否生效。

将在GUI下写好的请求保存为测试脚本

在我们之前的Http请求中加入聚合报告,保存并将test.jmx文件上传至要测试的服务器,我是将文件传到/home/test下

运行以下命令开始测试
jmeter -n -t test.jmx -l test.jtl
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错


运行时报如下异常:

Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class!
解决办法:

具体原因参考该博客:http://www.jianshu.com/p/e12066ea13b1 然后重新保存测试计划,并执行!


执行完成之后会生成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


  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值