2012-09-28 31 views
0

我正在为亚马逊网络中运行的多个服务进行性能测试。通过分布式jmeter实例和竹子进行性能测试

我们的架构是:

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

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

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

有没有人试过类似的东西?

回答

2

通常,将JMeter客户端和服务器保持在同一个子网中并且不使用隧道更好也更容易。更好,因为在传输结果数据时不会引入延迟问题,而且因为隧道RMI并不好玩,所以更容易。

我想象最简单的解决方案是告诉Bamboo执行一个shell脚本,然后使用这个脚本来控制开始测试和管理结果。如果你有安装了JMeter的ec2主机,那么你可以使用ssh执行测试。喜欢的东西(简化为简洁起见):

ssh -i /mykey.pem [email protected] ./path/to/jmeter -n -t /path/to/mytest.jmx -l /my/results.jtl 

我采取了一种类似的要求,我有一段时间回来,并成长为this。可能过度满足您的需求,但如果有任何用途,可随时将其拉开。

就在竹子中看到结果而言,这将是一个自定义过程。 JMeter会为您提供一个csv或xml文件,用于您可以使用它的GUI读取和可视化的每个单独测试,但对于CI,您将从可通过多次测试运行(即代码的多次构建)趋势结果的解决方案中受益。为此,您需要将结果以某种形式存储,可能是数据库,然后查询它们以获取最有用的表示形式。

如果你只对简单的平均值感兴趣,那么这实际上可以很容易。当测试完成时,只需使用shell脚本来awk数据,以获取一些汇总值并将它们传送到表中。或者,这可能会更容易,请参阅Bamboo API提供的内容。您可能会发现可以直接导入每个构建的结果,然后使用Bamboo工具查看结果。这一切都取决于你需要什么级别的报告。