Jenkins 验收测试
这是用于 Jenkins 自动化服务器及其插件的端到端测试套件。
测试场景以测试的形式描述,通过 UI / REST API 控制被测试的 Jenkins(JUT)。为了隔离测试,每个测试都会启动一个干净的实例。该框架提供了方便的 Docker 支持,使得编写集成测试变得容易。
贡献验收测试
如果您想为该项目提出新的测试,请遵循贡献指南。
入门
启动框架最简单的方法是调用 BROWSER=firefox JENKINS_VERSION=2.73 mvn test
。由于涵盖的组件/用例数量、Jenkins 设置成本以及 Selenium 交互,完整的测试套件需要数小时才能运行完毕。可以通过选择要运行的测试子集(例如冒烟测试)来避免这种情况。
这里有一个演练,介绍如何对本地 Jenkins 版本的更改运行 ATH 测试。
运行测试
该框架提供了多种配置执行的方法,包括:
- 选择 Web 浏览器
- 指定要运行的测试
- 管理 Jenkins 和插件的版本
- 使用 HTTP 代理
- 预启动 Jenkins
- 选择如何启动 Jenkins
- 获取已执行插件的报告
- 在容器中运行测试
- 在容器中调试测试
- 捕获支持包
- 根据测试覆盖的插件选择测试(待完成)
创建测试
鉴于测试套件运行需要很长时间,建议测试作者关注最流行的插件和用例,以最大化测试套件的价值。应避免已经或可以作为核心/插件测试一部分编写的测试,以及不太可能捕获未来回归的测试(个别 bug 的复现测试、边界条件测试等)。各个维护者应根据核心/插件的变化更新他们的测试,并确保测试不会产生误报。如果发现测试违反了这些准则,为了保证套件的可靠性,可能会在不通知作者的情况下删除这些测试。
- 插件存储库中的 Selenium 测试
- Docker 固定装置
- 页面对象
- Guice 是我们的粘合剂
- 编写测试
- Kohsuke 关于如何编写测试的视频教程
- 编写 JUnit 测试
- 测试代理
- Hamcrest 匹配器
- EC2 提供程序配置
- 调查
acceptance-tests-harness 比 jenkins-test-harness 更适合的领域有:
- 安装插件进行跨插件集成
- 在真实的类加载器环境中运行测试
- 在实际的 Web 浏览器中验证 UI 行为