【问题标题】:directConnect:true vs starting seleniumServer at some port in ProtractordirectConnect:true vs 在量角器的某个端口启动 seleniumServer
【发布时间】:2019-02-07 13:32:40
【问题描述】:

我正在使用 Protractor 进行非角度应用程序的端到端测试。
所以一旦我写在 protractor.conf.js 文件中-

exports.config = {
      directConnect: true,

      // Capabilities to be passed to the webdriver instance.
      capabilities: {
        'browserName': 'chrome'
      },

      // Framework to use. Jasmine is recommended.
      framework: 'jasmine',

      // Spec patterns are relative to the current working directory when
      // protractor is called.
      specs: ['example_spec.js'],

      // Options to be passed to Jasmine.
      jasmineNodeOpts: {
        defaultTimeoutInterval: 30000
      }
    };

然后它对我来说很好。
之后我做了一些改变,比如-

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',

      // Capabilities to be passed to the webdriver instance.
      capabilities: {
        'browserName': 'chrome'
      },

      // Framework to use. Jasmine is recommended.
      framework: 'jasmine',

      // Spec patterns are relative to the current working directory when
      // protractor is called.
      specs: ['example_spec.js'],

      // Options to be passed to Jasmine.
      jasmineNodeOpts: {
        defaultTimeoutInterval: 30000
      }
    };

然后它从带有端口的 selenium 服务器开始,测试用例运行成功。

所以我的问题是—— 两种方式有什么区别?我知道当我们使用directConnect:true时,它不会启动selenium server,然后直接使用chrome驱动,测试用例运行速度比其他方式快吗?

当 protractor 可以在没有 selenium 服务器的情况下进行测试时,为什么我们需要它? selenium 服务器在量角器测试中做了什么?

【问题讨论】:

    标签: protractor


    【解决方案1】:

    正如你所说的directConnect:true Protractor 直接与 Chrome 和 Firefox 的驱动程序通信(任何其他浏览器都会返回错误)。

    directConnect:true 的主要优势在于速度。测试启动和运行速度更快。

    另一方面Protractor mentions for the Selenium Server这个:

    服务器可以处理不同语言的多个脚本。服务器可以启动和管理不同版本和实现的多个浏览器。

    Protractor 肯定不希望为 directConnect:true 持续保持这些可能性,因为这不是 Protractor 的主要目的,而且他们只能比 SeleniumServer 做得更糟。

    用于跨浏览器测试的服务,例如 BrowserStack 和 SauceLabs,提供了自己的 SeleniumServer,应该连接到使用他们的服务。说服他们提供单独的 Protractor 解决方案似乎也有点毫无意义,尤其是在 SeleniumServer 已经很普遍的情况下。

    总的来说,我认为它是 Protractor 的一项服务,它们提供了 directConnect 可能性,以简化从 Protractor 开始。使用 SeleniumServer 将是更合乎逻辑的解决方案,并提供更广泛的可能性,例如跨浏览器测试。

    我没有看到(也从未听说过)比这背后更多的魔法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      相关资源
      最近更新 更多