当前位置:   article > 正文

jmeter性能测试-分布式_jmeter分布式测试

jmeter分布式测试

一、为什么要做分布式

jmeter工具设置时,并没有限制并发用户数,但是由于测试用的机器问题,不可能做到无限量的并发用户数。当要用几千的并发用户数:就需要使用到并发用户数

由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

二、什么是分布式测试

使用多台机器,一起产生更多的并发用户数,向被测服务器发起更大的请求。

三、分布式执行原理

1、jmeter做分布式时:选择其中一台作为控制器(主控机器),其他机器作为代理机(执行机、肉机、奴隶机器、压力器、助攻机器)

2、执行时,控制器会把脚本发送到每一个代理机器上。代理机器拿到脚本开始执行。代理机器不需要打开jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

3、执行后,代理机器会把结果回传给控制器,控制器会汇总所有的代理机的信息

四、分布式配置

代理机器要求:

1、必须能运行起jmeter

2、必须要有jdk,所有的助攻机器上的jdk的大版本要求一致(查看java版本java -version)

3、虽然没有对操作系统类型做限制,但是一般情况下,所有助攻机器的操作系统类型和版本要一致。

代理机器配置

在Jmeter的%JMETER_HOME%\bin目录下,使用文本编辑工具打开jmeter.properties配置文件,配置以下参数

  • server_port端口,服务端口,默认是1099,可以不改,也可以自定义
  • server.rmi.port端口,可改可不改,改的要要改成与server_port相同的端口

  • server.rmi.ssl.disable改为true。控制器与代理机器进行数据传输的时候,是否需要启用加密传输,默认是fales启用。默认时还需要证书和配置,一般情况下,代理器与控制器之间的网络一般不会很复杂,所有不建议用加密认责,这个值改改为true.

  • 启动助攻机器。jmeter-server.bat -Djava.rmi.server.hostname=助攻机器的ip这个ip,肯定是与主控机器能连通的ip地址。

主控机器配置

jmeter.properties文件配置

  • remote_hosts助攻机器的ip和端口,多个的话用,分隔

  • server.rmi.ssl.disable设置为true

  • mode=Standard去掉注释,在图形界面的时候可以看到助攻机器的执行结果

配置完成后重新启动jmeter,启动jmeter就可以看到运行->远程启动机器,可以看到配置的助攻机器。

五、连接机器

有数据通信,而且助攻机器的数据可能会比较多,所以主控和助攻机器之间,请不要使用无线网络,要使用有限连接。--建议助攻和主控机器在一个局域网。

1、启动助攻机器

window机器:jmeter-server.bat -Djava.rmi.server.hostname=助攻机器的ip。

linux机器:sh jmeter-server.sh -Djava.rmi.server.hostname=助攻机器的ip.

这个ip,肯定是与主控机器能够连通的ip地址。

2、查看能否连通:

telnet ip端口的命令验证是否接通。

连通后就可以做分布式测试

六、执行测试

开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。

2、添加HTTP请求,

3、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。

4、这里以点击远程全部启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为200,这里一共是两台电脑,所以是200*2=400个线程数。

六、使用分布式需要注意的地方

1、什么时候使用分布式:我们的机器,不管硬件配置有多高,一台机器也就只能产生2000多的并发用户数(理论上的最大值)。当期望的并发用户数超过1000以上,就要考虑分布式

2、分布式就是为了产生并发用户数的。代理机器只是产生并发用户数,代理机器可以完全没有脚本。

3、代理机器上的产生的并发用户数,都是按照主控机器上的性能场景来产生的,所有机器上的并发数都相等。

4、代理器上执行。总的并发用户数可以累加,但是响应时间、tps等指标不能累加。

6、jmeter服务器上运行

jmeter -n -t xxx.jmx -l xxx.jtl -e -o xxx

jmeter -n -t xxx.jmx -R 192.168.1.128:2088,192.168.1.114:2099 -l xxx.jtl -e -o xxx

  •  -n 无图形界面运行
  • -t 后面跟测试计划脚本
  • -l 测试结果输出到文件,这个文件必须是不存在的文件,没有覆盖的能力。格式默认是csv格式以逗号分隔的文本文件
  • -e进行转换
  • -o输入结果到空文件,文件必须为空或者不存在,结果是一份html报告
  • -r使用所有的分布式机器执行性能测试
  • -R使用执行的机器执行性能测试

数据量较大的情况下,不建议-0输出到文件,会占用资源

7、使用无图形界面CLI命令执行性能测试过程中,没有停止运行按钮,也不能通过快捷键停止运行。所以需要监听一定端口,通过端口发送停止的命令,才能中途停止测试。

在jmeter的bin文件夹中有shutdown|stoptest停止

七、分布式,文件读取问题

csv文件读取,默认是从第一行按照顺序读取,那分布式执行,同一行数据会被重复使用。

解决方法1:文件读取顺序打乱

2、下载插件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/256177
推荐阅读
  

闽ICP备14008679号