Jmeter分布式压力测试

目录

1、场景

2、原理

3、注意事项

4、slave配置

5、master配置

6、脚本执行

注意:


1、场景

在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。
例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发数会更低。

当单台机器不能支持更大的并发时需要考虑分布式压力测试。 

2、原理

原理图如下:

Jmeter分布式压力测试_第1张图片

  • Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)

  • master通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave

  • slave启动jmeter-server,获得脚本后开始执行

  • slave执行完成后将结果传回给master,master收集整合显示 

3、注意事项

  • 关闭防火墙和杀毒软件,开放端口

    $ service firewalld stop
    $ service iptables stop
  • 2.所有机器最好在同一个子网上

    可以使用ping命令进行检查

  • 所有机器中最好使用相同版本的jdk和jmeter

  • 禁用SSL

 如果在启动jmeter-server.bat 时出现如下错误,则SSL没有禁用

Jmeter分布式压力测试_第2张图片

   禁用方法,jmeter.properties 文件下查找 server.rmi.ssl.disable,取消注释,并将其值修改为 true:server.rmi.ssl.disable=true     

Jmeter分布式压力测试_第3张图片

4、slave配置

在slave机器中,启动bin目录下的 jmeter-server.bat,如下图:

启动后的ip和port为:192.168.10.131:50043

当然启动时端口也是可以自定义的。
在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。比如修改为1000:

server_port=4444
server.rmi.localport=4444

启动后的ip和port为:192.168.10.131:4444 

5、master配置

在master机器的 Jmeter的bin目录下,修改jmeter.properties文件下的remote_hosts项,添加IP和port,多台slave的情况下,使用逗号(,)进行分割。

Jmeter分布式压力测试_第4张图片

完成配置后启动master机器上的 jmeter。
在Run>>Remote Start下可以查看配置的remote_hosts项。

Jmeter分布式压力测试_第5张图片

注意:如果jmeter已经启动,修改jmeter.properties文件后需要重启jmeter配置项才可以生效。

6、脚本执行

新建一个线程组,线程组下添加一个debug sampler调试采样器和一个树结构监听器
将debug sampler重新命名为:${__machineIP()} ,该函数的意思是获取执行机器的ip

Jmeter分布式压力测试_第6张图片

通过菜单栏的开始按钮运行脚本

Jmeter分布式压力测试_第7张图片

通过 Run>>Remote Start>>192.168.10.131:4444运行脚本

Jmeter分布式压力测试_第8张图片

如果要同时在所有的 slave 机器上运行,则通过 Run>>Remote Start All 执行脚本 

Jmeter分布式压力测试_第9张图片

注意:

在分布式执行中,master 向 slave 发送测试计划时不会将外部文件一起发送。所以在测试中如果使用 csv 等外部文件进行参数化,则需要把参数文件在每台 slave 上拷贝一份,最好都放置在 bin 目录下,因为 Jmeter 会直接从 bin 目录下查找。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=8hUKwUHn9HhVpR8qWhqfT2u-kU-3hpsF&authKey=47BBG1nwHVOka38EQeJevQFCP%2BeVEf%2Bpd8QqotS1%2FqyJdrGAo1A6%2BfS9ef3wJij2&noverify=0&group_code=574737577

Jmeter分布式压力测试_第10张图片

 

 

你可能感兴趣的:(性能测试,自动化测试,自动化测试工具,jmeter,分布式,压力测试,java,测试用例)