我正致力于将性能测试与CI / CD基础架构集成。我的性能测试工具是JMeter,CI服务器是Jenkins。两者都可以完成他们的工作,但是当在CI / CD管道中集成性能测试时,事情就不再那么微不足道了。
要使适当的部署管道,CI服务器需要知道何时应将性能测试构建视为通过或失败。验证响应时间的平均值并不是一个好选择 - 完全不同的SLA可以应用于作为同一JMX文件的一部分执行的不同类型的事务。断言特定交易类型的响应时间的平均值是一个更好的选择,但它仍然远非完美的解决方案。这不会告诉我们,例如如果相同类型的事务的响应时间正在增加(这可能与内存泄漏有关)或减少(这可能是服务器端缓存的祝福)。因此,仅依靠平均平均响应时间会对软件质量产生错误的信心。
我分析了几个工具,包括JMeter Maven Analysis Plugin和Jenkins Performance Plugin。他们似乎都没有提供我正在寻找的东西。
在CI之前的时代,性能测试在开发生命周期的后期执行,并由人进行分析。我想知道是否有人遇到任何足够先进的工具,这可以使CI服务器可以可靠地确定perf测试版本是否应该被标记为通过或失败,而不需要人类验证结果?
答案 0 :(得分:1)
由于没有提供我正在寻找的工具,我决定在我的空闲时间开始自己创建一个开源项目:
https://github.com/automatictester/lightning
它还处于早期阶段,但其核心功能仍然存在。现在用额外的东西扩展它是时间问题。
答案 1 :(得分:0)
我是詹金斯专家,但对JMeter只有熟练的技巧。您的JMeter结果是否可以由脚本处理,以便判断事务类型Z何时超出运行的可接受时间限制?
看起来像使用一些额外的逻辑解析jmeter结果是你需要能够冒出一个exit(1)(或任何非零)值。