作为我 Google 编程夏令营的一部分,我一直致力于改进角色策略插件(Role Strategy Plugin)的性能。
由于没有现有的方法来度量性能以及在 Jenkins 插件上做基准测试,
我在项目第一阶段的工作是创建一个框架在一个 Jenkins 实例中运行 Jenkins 插件中的基准测试。
为了让我们的工作更容易些,我们选择了 Java微基准测试工具来运行这些基准。
这使我们能够可靠地度量对时间要求严格的功能的性能,将有助于让 Jenkins 为每个人更快的运转。
最近在 Jenkins 单元测试工具2.50中发布了微基准测试框架。
下面的博客文章展示了如何在插件中运行基准测试。
介绍
该框架通过为 JMH 基准的每个 fork 启动一个临时的 Jenkins 实例来运行,
就像 Jenkins 测试工具中的 JenkinsRule。
基准测试是直接从 JUnit 测试运行的,它允许在运行过程中失败构建,并且很容易从 IDE 中运行基准测试,就像单元测试一样。
你可以很容易地通过使用 Java 方法或使用 Jenkins 配置即代码插件来配置基准并将路径传递到 YAML 文件。
要从您的插件运行基准测试,您需要做以下工作:
将所需的最低 Jenkins 版本升级到2.60.3或更高版本
将 Plugin-POM 升级到 ≥ 3.46 的版本或手动更新 Jenkins 测试工具到 ≥ 2.51 的版本
现在,要运行基准测试,您需要有一个包含 @Test 的基准测试运行程序,以便它可以像 JUnit 测试一样运行。
从测试方法内部,可以使用 JMH 提供的 OptionsBuilder 来配置基准。
例如:
public class BenchmarkRunner {
@Test
...