通常,将 JMeter 客户端和服务器保持在同一子网中而不使用隧道会更好、更容易。更好,因为您在传输结果数据时不会引入延迟问题,并且更容易,因为隧道 RMI 并不好玩。
我想最简单的解决方案是告诉 Bamboo 执行一个 shell 脚本,然后使用这个脚本来控制开始测试和管理结果。如果您有一个安装了 JMeter 的 ec2 主机,那么您可以使用 ssh 执行测试。类似的东西(为简洁起见):
ssh -i /mykey.pem root@myec2host.com ./path/to/jmeter -n -t /path/to/mytest.jmx -l /my/results.jtl
对于不久前的一个需求,我采用了类似的方法,它发展成为这个. 可能超出您的需求,但如果有任何用处,请随时将其拆开。
就在竹子中看到结果而言,这将是一个定制过程。JMeter 将为每个单独的测试提供一个 csv 或 xml 文件,您可以使用它的 GUI 阅读和可视化这些文件,但对于 CI,您将受益于一个解决方案,该解决方案可以在多个测试运行(即代码的多个构建)中趋势结果。为此,您需要将结果放在某种形式的存储中,可能是数据库,然后查询它们以获得最有用的表示。
如果您只对简单的平均值感兴趣,那么这实际上很容易。只需在测试完成时使用 shell 脚本来 awk 数据,以获取一些汇总值并将它们通过管道传输到表中。或者,这可能更容易,看看 Bamboo API 提供了什么。您可能会发现可以直接导入每个构建的结果,然后使用 Bamboo 工具查看结果。这完全取决于您需要什么级别的报告。