Jmeter:如何在分布式测试运行时动态修改属性?

Jmeter:如何在分布式测试运行时动态修改属性?,jmeter,load-testing,jmeter-plugins,beanshell,jmeter-3.2,Jmeter,Load Testing,Jmeter Plugins,Beanshell,Jmeter 3.2,我拥有的: 庞大的Jmeter代理网络,1个主服务器+多个从服务器。 主服务器向从服务器发送任务,从服务器开始执行测试并向主服务器报告数据 我想要什么: 能够在执行测试时动态修改输入(作为全局属性传递给Master,-G),而无需停止/重新启动测试 我所知道的: 我可以在运行测试时使用BeanShell服务器修改Jmeter属性。它很好用。但BeanShell服务器只在主服务器上启动,而不是从服务器上启动 在测试执行之前,主服务器只向从属服务器发送一次-G属性。即使更新了主属性,在重新启动测试之

我拥有的

庞大的Jmeter代理网络,1个主服务器+多个从服务器。 主服务器向从服务器发送任务,从服务器开始执行测试并向主服务器报告数据

我想要什么

能够在执行测试时动态修改输入(作为全局属性传递给Master,-G),而无需停止/重新启动测试

我所知道的

  • 我可以在运行测试时使用BeanShell服务器修改Jmeter属性。它很好用。但BeanShell服务器只在主服务器上启动,而不是从服务器上启动
  • 在测试执行之前,主服务器只向从属服务器发送一次-G属性。即使更新了主属性,在重新启动测试之前,从机也不会获得此信息
  • 问题

    如何修改从属服务器上的属性?有什么合适的解决办法吗

    我的想法

  • 我也可以对每个从节点使用BeanShell服务器。但是这个解决方案对我来说并不理想,因为我有很多代理,并且必须更新所有代理。这需要时间
  • 我可以更改测试逻辑,定期更新文件的属性,然后动态修改从属文件。看起来比#1更容易,因为通过ssh远程修改文件比在每个节点上启动单独的服务器更便宜
  • 实际上,我所需要的只是为BeanShell服务器编写一个适当的方法/函数,它不仅可以在本地更改属性,还可以通知从属服务器。我还不太熟悉Jmeter源代码(刚刚开始),但知道它已经作为远程启动过程的一部分在代码中实现了。所以,如果你能给我指出正确的课程,让我看一看,它可以帮我很多

  • 任何想法都值得赞赏。提前感谢。

    您可以添加到您的测试计划中,该计划将读取和更新从属中的属性,您可以使用Beanshell/JSR233元素在主运行时添加属性。

    感谢您的回复。实际上,这就是我目前正在做的:通过定期读取文件,在每个节点上手动更新它们。然而,我并不认为这是一个理想的解决方案:Jmeter在从机和主机之间内置了通信机制,我只需要找到一种合适的方法来使用它。