首页 > 解决方案 > 本地系统(一个主 - 零从)和主从系统 - jmeter中的脚本执行有什么区别?有何不同

问题描述

有人可以帮我理解使用本地系统运行负载测试和设置主从系统的区别吗?它有什么不同?在服务器上进行负载测试的最佳做法是什么。

如果我们要设置主从,两者都应该在同一个子网中吗?并且我们可以在运行脚本后在 Master 系统中生成 HTML 报告吗?

标签: jmeterperformance-testingload-testing

解决方案


您可以在一台机器上模拟的虚拟用户数量从数百到数千不等(查看您可以在 JMeter 上测试的最大用户数是多少?文章了解更多详细信息),但无论如何它是有限的。

每个线程(虚拟用户)在 CPU、RAM、网络和磁盘使用方面都有一些“足迹”。因此,您需要确保运行 JMeter 的机器有足够的容量并且不会过载,因为如果 JMeter 无法足够快地发送请求 - 您将得到错误的否定结果,因为吞吐量会很低,而不是由于应用程序测试问题,但由于 JMeter 的问题。

因此,请确保在运行负载测试时监控基本的操作系统健康指标,例如 CPU、RAM、网络、磁盘、交换使用情况。您可以使用即JMeter PerfMon 插件来做到这一点

如果您能够仅使用单个 JMeter 机器执行所需的负载 - 在分布式模式下运行测试没有多大意义,因为您不会得到任何新结果。

但是,如果一台机器不能产生所需的负载 - 您将不得不进行分布式测试。主要思想是让多个 JMeter 实例执行相同的Test Plan

例如,如果您确定您只能在一台机器上运行 1000 个虚拟用户,而您需要模拟 3000 个虚拟用户,那么您将需要 4 台机器。

  1. 主机编排从机并收集结果
  2. 3 台从机,每台运行 1000 个虚拟用户。

一旦你在每台从机上启动 JMeter Serve,你将能够在命令行非 GUI 模式下运行你的测试,如下所示:

jmeter -n -t your_test_plan.jmx -R IP.of.1st.slave, IP.of.2nd.slave, IP.of.3rd.slave -l result.jtl

如果您想在测试运行后生成 HTML Reporting Dashboard,您可以执行以下操作:

jmeter -n -t your_test_plan.jmx -R IP.of.1st.slave, IP.of.2nd.slave, IP.of.3rd.slave -l result.jtl -e -o /path/to/output/folder

推荐阅读