说明:
分布式测试角色类型:1. 控制机;2.负载机
我是使用windows作为控制机,jdk1.8,jmeter5.3环境
虚拟机使用centos7环境,jdk1.8,jmeter5.3环境
首先,linux需要开放端口:1099 (操作端口)
然后ping两个机器能ping通
配置
一. 控制机需要做的操作
1. 打开控制机的bin目录下的create-rmi-keystore.bat,输入对应信息生成文件rmi_keystore.jks将生成的文件放到负载机的bin目录下面
2. 找到控制机中bin目录下的jmeter.properties,打开jmeter.properties
3. 将remote_host修改为:127.0.0.1,负载机ip:1099
4. server_port=1099(取消注释)
5. server.rmi.ssl.disable=true(改为true)
二. 负载机需要做的操作
1. 负载机需要将jmeter.properties文件中的部分配置修改,具体信息如下
2. 找到控制机中bin目录下的jmeter.properties,打开jmeter.properties
3. 将remote_host修改为:负载机ip:1099
4. server_port=1099(取消注释)
5. server.rmi.ssl.disable=true(改为true)
6. server.rmi.port=1099
7. server.rmi.localport =1099
8. 执行bin目录下的一个jmeter-server文件
./jmeter-server -Djava.rmi.server.hostname=负载机ip
9 成功
三. 执行操作
1. 进入控制机的jmeter,点击运行菜单里面的远程启动,选择控制机ip运行
2.负载机显示starting和finished则成功了
注意:
1. 运行的结果可以将linux下载下来在windows下的jmeter图形界面中查看
2. 在安装好jmeter之后可以先使用一套最简单的jmx代码在linux执行,在user.properties文件配置输出结果为xml,可以看到请求和响应结果
jmeter -n -t file_name.jmx -l reslut.xml
3. 如果遇到脚本在windows中能运行,就检查下这个ip是否需要在hosts文件里面配置,linux的hosts文件在/etc/hosts下面,配置好和windows一致的信息;如果查看结果发现使用的一些函数不存在则将window最新的jmeter包重新覆盖到linux上面(将windows的jmeter打包上传到linux解压,文件目录名称一致,此操作的意义在于你可能在windows上面配置了一些拓展包,而linux上面没有,需要将这个东西覆盖上去)如果还有问题可以留言
三. 命令行远程操作
1. 远程启动脚本并生成报告
- R 后面接IP地址多个IP用英文逗号隔开
jmeter -n -t E:\代码\jmeter\登录.jmx -J -R 192.168.127.128:1099 -l result.csv -e -o ./report
2. 运行结束之后这个summary代表循环次数,如果有线程数的话ed代表总线程数
ed: 3
summary = 30 in 00:00:01 = 26.4/s Avg: 22 Min: 10 Max: 94 Err: 27 (90.00%)
四. 配置csv数据文件
1. 在本地用简单的数据将脚本调试好之后将csv文件的文件名称改为文件名称(远程运行的脚本文件不可以设置路径,只需要文件名称)
示例: data.txt 则csv配置里面的文件名就填写这个,window图形界面运行时将这个文件放在和脚本同一目录下即可运行
2. 配置好csv文件之后本地运行成功,然后将数据调整好,然后将完整的数据文件复制到linux下面的jmeter\bin目录下,即和你负载机提前启动的jmeter-server在同一目录下
3. 运行即可