1、非GUI模式运行jmeter
- 切换到jmeter安装的bin目录下,执行命令 jmeter -n -t testscripts/splStressTestDemo.jmx -l testreports/splStressTestDemo.jtl
- 参数说明:-n(none GUI),-t(指定.jmx文件路径),-l(指定生成报告.jtl文件路径)
2、分布式执行jmeter脚本
分布式执行步骤:
- 在执行节点上启动jmeter-server ,在bin目录下执行命令 ./jmeter-server
- 将执行节点的地址,配置到控制节点中 jmeter.properties 文件的 remote_host 字段值中
remote_hosts=127.0.0.1,172.19.6.236,172.19.6.235,172.19.6.234,172.19.73.18 #remote_hosts=localhost:1099,localhost:2010
- 通过控制节点,远程控制执行节点执行jmeter脚本,并搜集结果
./jmeter -n -t testscripts/splStressTestDemo.jmx -l testreports/splStressTestDemo.jtl -R 172.19.6.235,172.19.6.236 -X -R: 指定远程负载机的地址 -r: 启用remote_host中配置的所有负载机 -X: 远程负载机执行完成后,自动退出server模式
分布式执行注意事项:
- jmeter 4.0之后的版本,client之间进行通信默认使用ssl协议,如果使用ssl协议,则需要在控制节点和各执行节点中,配置key/cert对,如果不想使用ssl协议,则可以在jmeter.properties文件中配置关闭,具体如2、3
- 使用ssl协议:通过如下命令,生成 bin/rmi_keystore.jks 文件,将.jks文件copy到每个执行节点,文件有效期为7天
$ cd jmeter/bin $ ./create-rmi-keystore.sh What is your first and last name? [Unknown]: rmi What is the name of your organizational unit? [Unknown]: My unit name What is the name of your organization? [Unknown]: My organisation name What is the name of your City or Locality? [Unknown]: Your City What is the name of your State or Province? [Unknown]: Your State What is the two-letter country code for this unit? [Unknown]: XY Is CN=rmi, OU=My unit name, O=My organisation name, L=Your City, ST=Your State, C=XY correct? [no]: yes Copy the generated rmi_keystore.jks to jmeter/bin folder or reference it in property 'server.rmi.ssl.keystore.file'
- 关闭ssl协议:修改 jmeter.properties 文件中 server.rmi.ssl.disable 的值为true
# Set this if you don't want to use SSL for RMI server.rmi.ssl.disable=true
- 控制节点和执行节点的jmeter 版本、运行环境,以及脚本路径等配置要保持一致
- 控制节点和执行节点之间要可以通信,通过ping命令验证
3、脚本执行过程中,如何定位报错原因
待补充