【问题标题】:Integrating JMeter performance tests with Jenkins CI将 JMeter 性能测试与 Jenkins CI 集成
【发布时间】:2015-08-03 13:52:26
【问题描述】:

我正致力于将性能测试与 CI/CD 基础架构集成。我的性能测试工具是 JMeter,CI 服务器是 Jenkins。两者都可以完成他们的工作,但在 CI/CD 管道中集成性能测试时,事情就不再那么琐碎了。

要拥有正确的部署管道,CI 服务器需要知道何时应将性能测试构建视为通过或失败。验证平均响应时间不是一个好的选择 - 完全不同的 SLA 可以应用于作为同一 JMX 文件的一部分执行的不同类型的事务。断言特定事务类型的平均响应时间是一个更好的选择,但它仍然远非完美的解决方案。这不会告诉我们,例如如果相同类型事务的响应时间增加(这可能与内存泄漏有关)或减少(这可能是服务器端缓存的一个好处)。因此,仅依赖平均平均响应时间会造成对软件质量的错误信心。

我分析了几个工具,包括 JMeter Maven Analysis Plugin 和 Jenkins Performance Plugin。他们似乎都没有提供我正在寻找的东西。

在 CI 之前的时代,性能测试是在开发生命周期的后期执行的,并由人工进行分析。我想知道是否有人遇到过任何足够先进的工具,它可以让 CI 服务器可靠地确定性能测试构建是否应该标记为通过或失败,而无需人工验证结果?

【问题讨论】:

  • 但是您手动决定测试是否失败的标准是什么?

标签: performance testing jenkins continuous-integration jmeter


【解决方案1】:

在没有工具提供我正在寻找的东西的情况下,我决定开始一个开源项目,在我的空闲时间自己创建一个:

https://github.com/automatictester/lightning

它仍处于早期阶段,但核心功能已经存在。现在用额外的东西来扩展它只是时间问题。

【讨论】:

  • 为什么 jenkins 性能插件不够用?我已经设置了 jenkins 作业,其中 maven 或 gradle 运行 jmeter 测试,性能插件根据解析的 jmeter 结果显示趋势并标记构建通过失败或不稳定。
  • 在评估 Jenkins 性能插件时,我遇到了几个问题。我没有得到我正在寻找的图表,而是得到了堆栈跟踪,包括这两个:issues.jenkins-ci.org/browse/JENKINS-27526issues.jenkins-ci.org/browse/JENKINS-27547 长话短说:性能插件没有给我它所承诺的,所以我什至没有得到当我可以评估我是否可以使用它来通过或失败构建时。
  • 但是,我认为它不能提供我想要的东西。根据其文档,它可以根据错误百分比通过/失败构建。这是非常基本的检查,几乎是健康检查,我对更详细的结果验证感兴趣 - 包括例如每个事务类型的平均响应时间。
【解决方案2】:

我是 Jenkins 专家,但对 JMeter 的熟练程度不高。是否可以通过脚本处理您的 JMeter 结果,以便判断事务类型 Z 何时超过了可接受的运行时间限制?

看起来像用一些额外的逻辑解析 jmeter 结果是你需要能够冒出一个退出(1)(或任何非零)值。

【讨论】:

  • 这就是我目前的结果。我用 awk 解析 JMeter 输出以获取基本统计数据并稍后使用它。但这比一个干净的解决方案更临时。我想知道其他人是否也得出了类似的结论,并且可能遇到了可以为他们做到这一点(以及更多)的工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多