Как включить бенчмарк Google в непрерывную интеграцию

Я люблю включать тест Google тесты в нашей среде непрерывной интеграции.

Как я могу проверить, не стал ли тестируемый код медленнее, чем был раньше?
Нужно ли вручную обрабатывать вывод json теста?

Есть ли элегантный способ учета разных машин?

Есть ли элегантный способ проверить производительность каждой сборки на одной машине? Есть ли лучший способ, чем написание сценария bash и сравнение выходных данных фактической производительности с эталонной производительностью?

Там было похожее вопрос, но нет хорошего ответа на это.

Есть ли способ интегрировать его в Дженкинс.

Спасибо за вашу помощь.
С наилучшими пожеланиями, Георг

6

Решение

Чтобы интегрировать Google Benchmark в Jenkins, я использовал этот аккуратный плагин:

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" }
}
}
}
}
}

Я не могу отобразить все выходные данные в плагине, хотя. Например, я не понял, как отображать единицу времени вместе с реальным временем и временем процессора, только с одним из них в то время.

1

Другие решения

С этот инструмент Python можно автоматизировать оценку тестов Google бенчмарк и таким образом интегрировать их в инструмент непрерывной интеграции

Спасибо вам @MikeVanDyke за подсказку.

0