【问题标题】:Difference running Protractor with/without Selenium?有/没有硒的差异运行量角器?
【发布时间】:2015-08-16 12:29:32
【问题描述】:

检查量角器documentation,我看到有一个选项可以使用directConnect: true 标志在不使用Selenium 服务器的情况下运行量角器。

使用 selenium 服务器和不使用 selenium 服务器运行量角器测试有什么区别,除了后者仅支持 Chrome、Firefox 之外?

【问题讨论】:

    标签: javascript angularjs selenium selenium-webdriver protractor


    【解决方案1】:

    首先,目前你有5 different built-in options/ways to connect to browser drivers

    1. 指定 seleniumServerJar 以在本地启动 selenium 独立服务器
    2. 指定 seleniumAddress 以连接到正在运行的 selenium 服务器(本地或远程)
    3. 设置 sauceUsersauceKey 连接到 Sauce Labs 远程 selenium 服务器
    4. 设置 browserstackUserbrowserstackKey 以通过 BrowserStack 使用远程 Selenium 服务器
    5. 使用directConnect 直接连接到Chrome 或Firefox。还有其他 chromeDriverfirefoxPath 设置可用于定义自定义 Chrome 驱动程序和 Firefox 应用程序二进制位置。

    前 4 个选项基本上通过“代理”,即 selenium 服务器工作:

    服务器充当测试脚本之间的代理(使用 WebDriver API)和浏览器驱动程序(由 WebDriver 控制 协议)。服务器将命令从您的脚本转发到 驱动程序并将驱动程序的响应返回到您的脚本。

    通过中间 selenium 服务器而不是直接 webdriver 连接来自动化浏览器的主要原因是,如果 selenium 服务器充当Selenium Grid,则允许您跨多个浏览器、多个系统上的多个浏览器扩展/扩展您的测试,例如,参见Sauce Labs Selenium Grid。仅供参考,还有 BrowserStack service,除了其他功能外,它还充当 selenium 服务器,与 Sauce Labs 类似,具有大量不同的功能/配置 - 浏览器和系统。

    启动 selenium 服务器(谈到选项 2)而不使用 directConnect 的另一个用例是,您可能具有希望运行测试的特定配置。假设您有一台装有 IE 11 的 Windows 机器和装有 Firefox 35 的 Ubuntu。在这种情况下,您可以将这些机器配置为 selenium 节点,这些节点将连接到 selenium server/hub

    如果您在本地运行测试并且目标浏览器是 Chrome 或/和 Firefox,请使用 directConnect,您的测试会运行得更快。

    但是,如果您在本地运行测试并且需要针对 IE、Safari 或其他浏览器进行测试,您会使用选项 1-4(通常为 1),因为这些浏览器无法在“直接连接”模式下工作。

    另请参阅相关主题:

    【讨论】:

      【解决方案2】:

      简单来说,如果directConnect 为真,那么它将在不使用 selenium 服务器的情况下运行测试。其中 selenium 服务器意味着类似于Selenium Grid(集线器和节点)的设置。通过 Selenium Server 运行测试允许您在远程机器或本地机器上运行测试,并提供在不同节点之间分配执行负载的选项。也可以使用 selenium 服务器同时在多个浏览器上运行测试。

      directConnect false 将仅在您本地安装的 FireFox 和 Chrome 上运行测试。它将在存在测试代码库的同一台机器上运行测试。

      【讨论】:

      • directConnect 是配置中的布尔值吗?可以展示一下吗?
      • @AlexanderMills,这里有一个例子: let chromeDriverLocation = process.env.chromedriver; export.config = { chromeDriver: chromeDriverLocation, directConnect: true, specs: ['spec.js'] };
      猜你喜欢
      • 2017-08-26
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多