运行 多个浏览器的 Jenkins 作业
Running Jenkins job with multiple browsers
我正在使用 Jenkins、python、unittest、nosetests 和 运行 测试套件的组合。我使用 Junit 插件将 nosetests.xml 中的结果发布到 Jenkins。
我的问题:我如何 运行 使用不同浏览器(Chrome、FF、IE 等)的相同测试套件并在同一个 Jenkins 作业中发布所有结果并且仍然能够根据所使用的浏览器区分每个测试结果吗?
我在考虑 运行多次使用测试套件,每次使用不同的浏览器并在每个 nosetest 报告中重命名测试,nosetests.xml,然后再发布到 Jenkins,但我不认为这是一个优雅的解决方案。
感谢您的帮助
这就是 multi-configuration jobs(或矩阵作业)在 Jenkins 中的设计目的。
您指定了一次作业配置,但添加了一个或多个每次都应该更改的变量,构建了一个组合矩阵(在您的例子中,矩阵只有一个维度:浏览器)。
Jenkins 然后 运行 有一个主构建和多个子构建——一个对应矩阵中的每个组合。然后您可以清楚地看到每个组合的结果。
这要求您的测试作业可以参数化,即您可以在 运行 时选择哪个浏览器应该 运行,而不是 运行 将所有测试集中在一个单一的工作。
Jenkins wiki 关于此功能的文档很少,但有一些关于如何设置它的好 blog posts(和 Stack Overflow 问题)。
我正在使用 Jenkins、python、unittest、nosetests 和 运行 测试套件的组合。我使用 Junit 插件将 nosetests.xml 中的结果发布到 Jenkins。
我的问题:我如何 运行 使用不同浏览器(Chrome、FF、IE 等)的相同测试套件并在同一个 Jenkins 作业中发布所有结果并且仍然能够根据所使用的浏览器区分每个测试结果吗?
我在考虑 运行多次使用测试套件,每次使用不同的浏览器并在每个 nosetest 报告中重命名测试,nosetests.xml,然后再发布到 Jenkins,但我不认为这是一个优雅的解决方案。
感谢您的帮助
这就是 multi-configuration jobs(或矩阵作业)在 Jenkins 中的设计目的。
您指定了一次作业配置,但添加了一个或多个每次都应该更改的变量,构建了一个组合矩阵(在您的例子中,矩阵只有一个维度:浏览器)。
Jenkins 然后 运行 有一个主构建和多个子构建——一个对应矩阵中的每个组合。然后您可以清楚地看到每个组合的结果。
这要求您的测试作业可以参数化,即您可以在 运行 时选择哪个浏览器应该 运行,而不是 运行 将所有测试集中在一个单一的工作。
Jenkins wiki 关于此功能的文档很少,但有一些关于如何设置它的好 blog posts(和 Stack Overflow 问题)。