如何在持续集成中包含谷歌基准

Posted

技术标签:

【中文标题】如何在持续集成中包含谷歌基准【英文标题】:How to include google benchmark in continuous integration 【发布时间】:2017-10-15 07:38:06 【问题描述】:

我喜欢在持续集成环境中包含google benchmark 测试。

如何检查被测代码是否比以前慢? 我必须手动处理基准的 json 输出吗?

有没有一种优雅的方法来计算不同的机器?

有没有一种优雅的方法来检查同一台机器上的每个构建的性能?有没有比编写 bash 脚本并将实际性能的输出与参考性能进行比较更好的方法?

有一个类似的question,但没有很好的答案。

有没有办法将它集成到 Jenkins 中。

【问题讨论】:

万一你还在找方法:你试过compare_bench.py tool 【参考方案1】:

为了在 Jenkins 中集成 Google Benchmark,我使用了这个简洁的插件:

https://plugins.jenkins.io/benchmark

我有测试输出 .json 文件

benchmarks.exe --benchmark_out=benchmarktest_output.json

并为插件编写了一个自定义 JSON 模式以理解输出:


  "description": "Google Benchmark JSON schema",
  "failure":  "value": true ,
  "type": "object",
  "properties": 
    "benchmarks": 
      "type": "array",
      "items": 
        "type": "object",
        "properties": 
          "name":  "type": "name" ,
          "real_time":  "type": "result" ,
          "cpu_time":  "type": "result" ,
          "iterations":  "type": "parameter" 
        
      
    
  

但我无法在插件中显示所有输出。例如,我还没有弄清楚如何将时间单位与实际时间和 cpu 时间一起显示,当时只有其中一个。

【讨论】:

【参考方案2】:

使用this python 工具可以自动评估谷歌基准测试,从而将它们集成到一个持续集成工具中

感谢@MikeVanDyke 的提示。

【讨论】:

您能详细说明一下吗?特别是当一个新的 git 提交导致性能下降时,我希望 CI 触发一个警告,甚至阻止新的提交被合并。这可能吗? 我想知道如何使用compare.py 来比较基本提交版本和您的提交版本之间的性能?

以上是关于如何在持续集成中包含谷歌基准的主要内容,如果未能解决你的问题,请参考以下文章

如何在CentOS下安装部署Jenkins持续集成环境

小型.NET开源项目的持续集成[关闭]

如何理解持续集成持续交付持续部署?

持续集成篇SonarQube 代码质量管理平台的安装

持续集成与持续部署宝典Part 2:创建持续集成流水线

持续集成与持续部署宝典Part 3:创建集成环境