通过持续集成服务器进行自动负载/压力测试

通过持续集成服务器进行自动负载/压力测试

我公司目前有通过 JMeter 手动运行的压力测试。我们还使用 TeamCity 实现 JUnit 测试的自动化。

很明显,我们还需要自动化压力测试,以便为整个 Web 应用程序提供更通用的测试。我一直在寻找可以在 TeamCity 中使用 JMeter 的解决方案,但还没有找到。有人成功做到了吗?有人有其他我应该考虑的建议吗?

谢谢,

凯西

5 月 15 日更新

经过进一步的研究,我发现了一些有趣的脚本,特别是jmeter-ec2。ec2 API 有点复杂,但我可以看到 TeamCity 内部的以下工作:

  1. 创建带有我们软件最新版本的 ec2 AMI。
  2. 将 AMI 作为虚拟实例启动
  3. 等待服务器上线
  4. 使用 jmeter 测试集针对服务器运行 jmeter-ec2
  5. 使用jmeter-ec2检索测试结果
  6. 解析测试结果并报告给 TeamCity

这似乎达到了预期的结果,但也似乎相当复杂。有人做过这个或类似的事情吗,谁能评论一下最佳实践?

答案1

我不知道云解决方案是否适合您,但有一家公司提供 Jmeter 即服务 - 即基本上是 SaaS 解决方案。他们声称他们拥有丰富的脚本编写功能,因此这可能是您的选择之一。

http://aws.amazon.com/customerapps/3299

http://blazemeter.com/

虽然我自己从未使用过他们的服务,但我知道这是一个可能的解决方案。此外,最多 10 次测试都是免费的。

[更新] BlazeMeter 现在有一个 TeamCity 插件: http://community.blazemeter.com/knowledgebase/articles/155889-blazemeter-plugin-for-teamcity-jetbrains-

答案2

博客向某人展示:

  • 使用 Ant 运行 Jmeter
  • 绘制结果图表
  • 在 TeamCity 中显示图形图像(好吧,只是建议你可以这样做)

http://samueladesoga.wordpress.com/2012/02/01/performance-testing-experience-using-ant-and-jmeter-part-2/

更多信息

我还没有尝试过但它可能会有帮助。

答案3

这是一个老问题,正在寻找一种解决方案来应对众所周知的将性能测试与持续集成流程/服务器集成的挑战。有一个新的开源项目,它试图解决 JMeter 和 CI 服务器之间的集成问题:

https://github.com/automatictester/lightning

查看 wiki 以了解此工具如何与 CI 服务器(尤其是 TeamCity)集成。其中还包含一些使用示例。欢迎提出功能请求。

相关内容