51Testing软件测试论坛

标题: 一文2000字从0到1手把手教你jmeter分布式压测 [打印本页]

作者: 海上孤帆    时间: 2023-11-28 10:19
标题: 一文2000字从0到1手把手教你jmeter分布式压测
一、jmeter为什么要做分布式压测jmeter本身的局限性JVM 堆内存的局限性
Java 应用的 jvm 堆内存 heap 受压力机硬件限制,虽然我们可以调整堆内存大小
cmd 启用 Jmeter GUI 时,也会有提示
  1. <font size="3"><font size="3">increase Java Heap to meet your test requirements: Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file</font></font>
复制代码
翻译:增加 Java 堆内存来满足测试的要求
但是单机无法支撑数以万计大并发,此时,需要多个压力机进行分布式压力测试,这样性能瓶颈就不会是我们的压力机了
联想场景分布式压测
Jmeter 支持分布式压测,将需要模拟的大量并发用户数分发到多台压力机,使 Jmeter 拥有更大的负载量,满足真实业务场景(高并发场景)
分布式的最终目的二、分布式原理
把上面的动图完整看完,就懂了,原理如下:
注意
三、分布式压测的前提条件已经配置
  1. <font size="3">注意事项

  2. 1、保持Contorller和Slave机器的JDK、jmeter以及插件等配置版本一致;
  3. 2、如果测试数据有用到CSV或者其他方式进行参数化,需要将data在每台Slave上复制一份,且读取路径必须保持一致;
  4. 3、确保Contorller和Salve机器在同一个子网里面;
  5. 4、检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致Slave机报错);
  6. 5、分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;
  7. 6、如果并发较高,建议将Contorller机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉Contorller机的IP;
  8. </font>
复制代码
1、修改Contorller配置
打开Contorller机下jmeter安装文件下的bin目录:jmeter.properties文件,搜索remote_hosts=127.0.0.1,将Slave机的IP和端口写在后面,比如:
  1. <font size="3">remote_hosts=127.0.0.1:1099,172.16.6.90:1099,172.16.6.91:1099</font>
复制代码
其中172.16.6.90和172.16.6.90为Slave机的IP,每个Agent机之间用英文半角逗号隔开,修改保存。注意默认端口都为1099
切记不论从主机器都要修改:server.rmi.ssl.disable=true,并且去掉#,否则会报错误
2、负载机
  1. <font size="3"># Password of Trust store
  2. #server.rmi.ssl.truststore.password=changeit
  3. #
  4. # Set this if you don't want to use SSL for RMI
  5. server.rmi.ssl.disable=true      # 改成true</font>
复制代码

3、启动jemter
启动jmeter后,设置线程组、配置元件、取样器、监听器等原件,点击“运行-远程启动”:
可以选择远程启动一个Slave机,或者选择远程全部启动,即可进行分布式测试了。





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2