【问题标题】:Modify Thread Group of an external JMeter Test Plan (JMX File)修改外部 JMeter 测试计划的线程组(JMX 文件)
【发布时间】:2020-08-18 12:39:29
【问题描述】:
我的应用程序将从用户那里获取 jmx 文件作为测试计划并执行它。我在我的应用程序(1 个 JMeter 客户端和多个 JMeter 服务器)的后端进行了 JMeter 分布式设置。
我面临的挑战是执行测试计划所需的#threads。
- 如果我从用户那里明确获取#instances(执行测试的JMeter 服务器)和#threads,如何在执行前使用此线程组配置用户提供的测试计划?这将允许我事先使用我的集群和机器容量验证这些值。
我已经阅读了有关 Include Controller 的内容,但这必然要求用户测试计划具有测试片段。
- 如果不明确,如何验证用户测试计划中的线程组配置?假设用户在测试计划中放置了较大的#threads,这可能会使我的 JMeter 服务器机器过载,我如何验证这个值并可能警告用户限制 #threads?
【问题讨论】:
标签:
jmeter
jmeter-plugins
jmeter-5.0
jmeter-4.0
【解决方案1】:
-
JMeter 世界中没有“#threads_per_instance”之类的东西,如果你在distributed mode 中运行 JMeter,每个服务器(或从属服务器或负载生成器)按原样执行客户端提供的 .jmx 测试计划 因此,如果用户在一个线程组中上传具有 100 个线程的文件并且您有 1 个从属 - 您将拥有 100 个用户。如果你有 2 个奴隶 - 你将有 200 个用户,等等。
另一件事是,您无法事先确定可以从单个 JMeter 从站模拟多少线程,因为这主要取决于测试的性质:请求/响应大小、前/后处理器的数量、断言、监听器等使用JMeter PerfMon Plugin可以轻松实现
-
我们不知道“您的应用程序”中使用了哪些技术,所以这个问题太宽泛了。 JMeter .jmx scripts 只是 XML 文件,因此您应该能够使用 XML parser 提取所有线程组中的线程数并以某种方式“验证”它。
【讨论】:
-
嗨@Dmitri,XML 解析是获取用户测试计划中线程组的唯一方法吗?我正在使用一个使用 JMeter API 加载用户测试计划文件的 Java 应用程序。需要注意的是,用户测试计划可能包含 Ultimate Thread Group 等插件。在这种情况下,如何确定测试计划中用于验证或操作的最大并发用户数?