7.3 Jenkins 和 Selenium 的协作

    使用 Selenium 进行测试,测试用例的制作会大大加快。但是随着测试用例的增加,把握测试是否被正确执行、测试是否通过,也将变得非常麻烦。

    对于这样的问题,第 5 章中所介绍的 Jenkins 这样的 CI 工具就非常有用。CI 工具可以实现测试的实施以及结果的品质状况可视化,并帮助团队间共享信息。

    7.3.1 关联 Jenkins 和 Selenium 的步骤

    下面将介绍由 Jenkins 执行 Selenium 测试用例的方法。

    用 Selenium IDE 制作 Selenium 的测试用例并保存为 HTML 格式的话,通过使用 Jenkins 的“Seleniumhq Plugin”,从 Jenkins 执行 HTML 测试用例时的任务设置、测试结果报告的设置都将变得非常简单。

    我们一起来看一下使用“Seleniumhq Plugin”的配置方法、测试执行以及测试结果的确 认。这里以在运行有 Jenkins 的机器上执行 Selenium 测试为前提进行讲解。

    ❶ 在执行测试的机器上,从版本管理系统下载测试套件和测试用例 23

    23 请参考 5.4 节中“下载代码”部分的内容。

    ❷ 在执行测试的机器上下载 Selenium Server 24

    24 Selenium Server 的下载用 Chef 来实现,请参考第 6 章。

    ❸ 从 Jenkins 的“系统管理”→“管理插件”安装“Seleniumhq Plugin” 25

    25 https://wiki.jenkins-ci.org/display/JENKINS/Seleniumhq+Plugin

    ❹ 在 Jenkins 的“系统管理”→“系统设置”中设置“Selenium Remote Control”下的“htmlSuite Runner”(图 7.10)

    7.3 Jenkins 和 Selenium 的协作 - 图1

    图 7.10 Selenium Server 的设置画面

    设置为步骤 ❷ 中下载的 Selenium Server 的路径

    ❺ 新建测试用的 Jenkins 任务,任务的“配置”如下

    ❺-1 在“构建”下的“增加构建步骤”中选择“SeleniumHQ htmlSuite Run”,按照表 7.1 进行设置(图 7.11)

    表 7.1 SeleniumHQ htmlSuite Run 的设置


    项目

    说明

    browser

    设置执行测试的浏览器(Firefox的话是*firefox)

    startURL

    浏览器启动时打开的URL

    suiteFile

    设置步骤❶中准备的测试套件

    resultFile

    设置测试结果的输出文件名(ex.results.html)

    7.3 Jenkins 和 Selenium 的协作 - 图2

    图 7.11 Selenium 测试任务的配置画面

    ❺-2 选择“构建后操作”下“增加构建后操作步骤”中的“Publish Selenium Report”,按照表 7.2 进行设置(图 7.12)

    表 7.2 构建后的处理


    项目

    说明

    Test report HTMLs

    指定报告的保存格式(ex.*.html)

    7.3 Jenkins 和 Selenium 的协作 - 图3

    图 7.12 Selenium 测试结果的设定画面

    ❺-3 选择“构建后操作”下“增加构建后操作步骤”中的“Archive the artifacts”,按照表 7.3 进行设置(图 7.13)

    表 7.3 构建后的处理


    项目

    说明

    用于存盘的文件

    指定保存文件的格式(ex.*.html)

    7.3 Jenkins 和 Selenium 的协作 - 图4

    图 7.13 Selenium 测试结果的保存画面

    配置完成后,试着执行 Jenkins 的任务下的“立即构建”。配置正确的话会启动 Firefox 并开始测试,Selenium 测试最后会输出测试结果报告(图 7.14)。

    7.3 Jenkins 和 Selenium 的协作 - 图5

    图 7.14 Selenium 测试执行过程中的画面

    当然也可以通过 Jenkins 确认测试的结果,试着从 Jenkins 任务画面左侧的 Build History 打开本次执行的链接。构建 #8 前面的○的颜色是蓝色的话表示构建成功,若是红色则表示构建失败(图 7.15)。

    7.3 Jenkins 和 Selenium 的协作 - 图6

    图 7.15 Jenkins 的构建结果画面

    可以从“构建结果”来确认 Selenium 的执行结果(图 7.16)。测试失败时可以从这个 Selenium 的执行结果或“Console Output”查看失败的原因。

    7.3 Jenkins 和 Selenium 的协作 - 图7

    图 7.16 Jenkins 的 Selenium 测试结果画面