文章部分参考了网络上的内容,作者介意可以联系删除哦~
为什么要做分布式压测:
因为jmeter本身存在局限性,一台压力机的 Jmeter 支持的线程数受限于 Jmeter 其本身的机制和硬件配置(内存、CPU等)是有限的。由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现 JAVA 内存溢出的错误,导致测试脚本本身就有瓶颈。
目的:
确保压力机不会出现性能瓶颈,在后面进行性能分析时,不需要考虑压力机是否是导致性能瓶颈的主要原因之一。
1.执行分布式压测的前提条件:
- 运行相同版本的JMeter
- 使用相同的java版本
- 有基于SSL的RMI的有效密钥库,或者禁用SSL。(本文举例中是采用的禁用SSL)
- 都在一个网络
- 关闭防火墙
- 分布式压测,首先我们需要确定一台调度机(Master),其他的机器作为执行机(slave)。
- 执行时,master会把脚本发送到每台slave上,这表示只有master上会有.jmx脚本。其他的slave上无需在下载该脚本。但是在主master跑脚本时,slave需要双击打开jmeter-server.bat。
- 执行完成后,slave会把结果传给master。
- 首选打开 -->jmeter.properties文件,编辑以下内容:
- 配置完成后,双击打开jmeter-server.bat,测试过程中保持打开状态。
-
在调度机执行脚本之前,我们同样需要先设置 jmeter.properties 文件,需要设置远程控制的IP和端口。在第一步设置salve的时候我们选择的端口是1099,slave的ip可以在salve的cmd输入命令— ipconfig 进行查看。
-
打开JMeter,第一步:选择需要远程启动的slave(执行机)
-
第二步:运行本地的脚本。通过聚合报告可以看到请求了10次,线程数设置的是5。所以远程的slave机上成功运行了。
-
slave上看到的结果:
-
打开master(执行机)的 jmeter.properties 配置文件,将需要连接的IP进行配置。
-
打开JMeter,选择需要远程启动的IP,也可以远程启动所有:我这里是选择启动所有的。所有可以看到聚合报告中的请求数是15。因为线程数是5 我请求了三次,5*3=15。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)