利用Jmeter进行分布式的性能测试

前言

在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持3500并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

Jmeter分布式执行原理

  1. Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
  2. 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,它是通过命令行模式执行的。
  3. 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

执行机(slave)配置

  1. slave机上需要安装Jmeter,请自行搜索安装方法
  2. 添加环境变量:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此处为你Jmeter的路径
  3. 启动bin目录下的:jmeter-server.bat,启动成功如下图:
    利用Jmeter进行分布式的性能测试_第1张图片
  4. 这里在尝试时,控制台会没有Using local port:1099这句话,这是里因为没有配置固定端口,没有配置固定端口在远程执行时可能会报错,后面会讲怎么配置端口
  5. 多台slave的话,重复1~4步骤即可

调度机(master)配置

  1. 找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(这里端口自定义为100,后面会讲如何自定义)
    remote_hosts=10.13.223.202:1000,192.168.200.153:1099

多台slave之前用,隔开,这里配置了2台,可以看到标红的这个就是上面截图slave的IP和Port.
2. 打开Jmeter,选择运行,有运程启动、运程全部启动两个选项:
利用Jmeter进行分布式的性能测试_第2张图片

自定义端口

上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slave端口:

  1. slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如这里修改为1099
server_port=1099
server.rmi.localport=1099
  1. 启动slave机上的jmeter-server.bat,如下图,端口已经修改为 1099
    利用Jmeter进行分布式的性能测试_第3张图片
  2. master:修改master机器的jmeter.properties文件
remote_hosts=10.13.223.202:1000,1192.168.200.153:1099

常见问题

  1. 在调度机中远程启动时,提示“Exception creating connection to : xx.xx.xx.xx,nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件。)”
    利用Jmeter进行分布式的性能测试_第4张图片
    解决方法:取消调度机jmeter.properties文件中的server.rmi.ssl.disable=false的中注释并将false改为ture,重新启动即可。
  2. 提示“Error initialising remote server:xx.xx.xx.xx connection refused to host:xx.xx.xx.xx;nested exception is java.net Connection refused:connect”
    利用Jmeter进行分布式的性能测试_第5张图片
    解决方法:进入执行机执行命令./jmeter-server 启动服务即可。
  3. 提示“no such object in table”
    利用Jmeter进行分布式的性能测试_第6张图片
    解决方法:修改执行机中jmeter.properties的server_port=1099即可。

上一篇 Debounce,Throttle概念及应用
下一篇 利用Jmeter对WebSocket进行压力测试

EduSoho官网 https://www.edusoho.com/
EduSoho开源地址 https://github.com/edusoho/edusoho
我们正在寻找开发者

你可能感兴趣的:(利用Jmeter进行分布式的性能测试)