8.7. Jmeter在linux上基于Jenkins持续集成参数化配置

8.7.1. 在本地完成Jmeter脚本

8.7.2. 编写线程组时,将线程数与执行时间时进行参数化处理,从shell脚本中获取字段值

../_images/jmeter_jenkins_1.png

线程组修改为:${__P(ThreadNumber,400)} 执行时间修改为:${__P(Diration,300)}

通过shell命令传递 -JThreadNumber=$ThreadNumber -JDiration=$Diration

备注:若在shell未传递,则对应参数:线程数默认取400,执行时间默认300秒

8.7.3. 保存后将生成的jmx文件上传到Linux服务器对应的路径上,配置任务

../_images/jmeter_jenkins_3.png
../_images/jmeter_jenkins_2.png
../_images/jmeter_jenkins_5.png

8.7.4. 点击构建,配置线程数等

../_images/jmeter_jenkins_4.png

点击【立即构建】,开始自动执行性能测试(建议先2个线程,10秒执行测试一下)

8.7.5. 执行完成后,自动生成测试报告,点击【HTML Report】查看测试报告

../_images/jmeter_jenkins_6.png

若报告中数据无法正常显示,原因可能为Jenkins中html安全问题导致,

进入系统管理——>脚本命令行——>输入:

System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)

点击运行,再重新构建脚本即可。

8.7.6. 分布式压测(或者将本地机器作为调度机,其他服务器作为负载机)

在较大并发量时推荐使用分布式压测,修改Jenkins是中的shell脚本即可

方法流程:

1、修改控制机中jmeter.properties 文件remote_host参数,remote_host=127.0.0.1,xxx.xxx.xxx.xxx:1099 (xxx.xxx.xxx.xxx为负载机ip,可配置多个,逗号隔开)

2、启动负载机中jmeter-server

3、在shell命令中增加-r,修改【-JThreadNumber=$ThreadNumber -JDiration=$Diration】为【-GThreadNumber=$ThreadNumber -GDiration=$Diration】 (-J为局部变量配置,如果需要分布式压测,需要将命令行参数带到负载机中,需要用-G全部变量配置)

4、开始压测

5、Windows下本地机器作为负载机时,修改本地jmeter文件bin目录下jmeter.properties以下参数中:

remote_hosts=xxx.xxx.xxx.xxx:1099

server.rmi.ssl.disable=true

启动时点击【运行】——>【远程启动】