我有什么:
巨大的Jmeter代理网络,1个主人+多个奴隶。
Master将任务发送给Slaves,他们开始测试执行并向Master报告数据。
我想要什么:
能够在执行测试时动态修改输入(作为全局属性传递给Master,-G),而无需停止/重新启动测试。
我知道什么:
- 我可以使用BeanShell服务器在运行测试时修改Jmeter属性。它工作正常。但BeanShell服务器仅在Master上启动,而不是在Slaves上启动。
- 在测试执行之前,Master只将-G属性发送给Slaves一次。即使Master属性已更新,从站也不会在重新启动测试之前获取此信息。
醇>
问题:
如何修改Slaves上的属性?有没有合适的解决方案?
我的想法:
- 好吧,我也可以为每个Slave节点使用BeanShell服务器做同样的技巧。但是这个解决方案看起来并不适合我,因为我有很多代理并且必须更新所有代理。这需要时间。
- 我可以更改测试逻辑以定期更新文件中的属性,然后即时修改Slaves上的文件。看起来比#1更容易,因为通过ssh远程修改文件然后在每个节点上启动单独的服务器会更便宜。
- 实际上,我所需要的只是为BeanShell服务器编写一个合适的方法/函数,它不仅可以在本地更改属性,还可以向Slaves通知它。我还不熟悉Jmeter源代码(刚刚开始)但知道它已经在代码中实现,作为远程启动过程的一部分。所以,如果你能指出我正确的课程来研究它 - 它可以帮助我很多。
醇>
任何想法都赞赏。提前谢谢。