自动化管道  

Watir 是一种以用户为中心的网站测试方法。它主要使用 Selenium 进行浏览器自动化,但它提供了更多高级功能,使编写稳定、可维护的测试变得容易。

典型的信息流如下所示

测试运行器 ->
      测试代码 ->
           页面对象代码 ->
                Watir 库 ->
                   Selenium 库 ->
                      Selenium 服务器(可选) ->
                         浏览器驱动程序 ->
                               浏览器

  1. 测试运行器。 在 Ruby 中,它可以是 MiniTest、RSpec 或 Cucumber。大多数 Watir 用户默认使用 RSpec,但 Cucumber 在行为驱动开发环境中工作的团队中很受欢迎。

  2. 测试代码。 无论是 Cucumber 步骤还是 RSpec 的“it”块,这里的代码都应该专注于简洁地表示测试的业务需求。这是引用其他对象(如页面对象)以进行实际实现的更高级别的“什么”代码。Ruby 比大多数语言更具可读性,因此可以很好地命名页面对象和方法,快速浏览将允许轻松理解测试的目的。

  3. 页面对象。 这是实现代码(“如何”)所在的位置。页面对象可以表示整个页面、模态或页面的子集(如侧边栏或页脚)。页面对象通常由两部分组成,带有其适用定位器的元素,以及表示用户可以在页面上执行的操作的方法。大多数此代码将是 Watir 对象的引用。

  4. Watir 代码。 Watir 专为“测试自动化”而设计。它将页面对象中的代码转换为一系列适用的 Selenium 和 JavaScript 调用,以实现所需的功能。Watir 试图理解测试套件中代码的意图,并尝试遵循“按我的意思做”的理念来完成它。继续阅读文档以了解 Watir 如何使编写测试变得有趣且轻松。

  5. **Selenium 代码。** Selenium 旨在用于“浏览器自动化”。它更关注可以对浏览器执行的特定低级别操作。它实现了少量定位器,并采用“照我说的做”的方法。它将惯用的 Ruby 代码转换为序列化 JSON 块,以发送进行进一步处理。

  6. **Selenium 服务器。** 当在与代码相同的计算机上驱动浏览器时,这并非必需。但是,要驱动远程计算机上的浏览器,命令需要发送到一个或多个中间服务器。Selenium 服务器可以设置为独立模式,也可以设置为网格,其中一个服务器在一台计算机上充当“中心”,另一个服务器在另一台计算机上充当“节点”。

  7. **浏览器驱动程序。** 由于 W3C WebDriver 规范 的进展,每个主要的浏览器供应商(Google、Microsoft、Apple 和 Mozilla)都承诺为其各自的浏览器实现自己的驱动程序。驱动程序是一个可执行文件,它与正在自动化的浏览器位于同一台计算机上。阅读 驱动程序文档,了解如何下载和存储驱动程序,以便 Selenium 可以找到并使用它。驱动程序接受来自 Selenium 代码的标准化信息,并将其转换为特定浏览器执行指定操作所需的代码。

  8. **浏览器。** 您选择的浏览器执行驱动程序发送的每个命令,并将结果或错误通过此路径发送回测试代码。

最后更新时间:2017 年 10 月 17 日