0

我正在为亚马逊网络中运行的几项服务进行性能测试。

我们的架构是:

  • 在我们的设施中运行的持续集成服务器(Bamboo);
  • 与要测试的服务在同一网络中的 Jmeter 服务器实例;
  • 连接到我们设施中的 JMeter 服务器(ssh 隧道)的 Jmeter 客户端。

我想从竹子开始执行测试,并在上面看到不同的结果。

Bamboo with    <--------->   Jmeter server <-------->  WebService
Jmeter client                  on Amazon                on Amazon

有没有人尝试过这样的事情?

4

1 回答 1

2

通常,将 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 工具查看结果。这完全取决于您需要什么级别的报告。

于 2012-09-30T01:29:08.437 回答