运行带有/不带Selenium的量角器?

时间:2015-06-02 15:48:28

标签: javascript angularjs selenium selenium-webdriver protractor

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

使用selenium服务器和没有selenium服务器运行量角器测试之间的区别是什么,而后者仅支持Chrome,Firefox?

2 个答案:

答案 0 :(得分:49)

首先,目前,您有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应用程序二进制位置。
  6. 前4个选项基本上通过"代理",一个selenium服务器:

      

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

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

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

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

    但是,如果您在本地运行测试并需要针对IE,Safari或其他浏览器进行测试,那么您可以使用选项1-4(通常为1),因为这些浏览器无法在"直接连接"模式。

    另见相关主题:

答案 1 :(得分:4)

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

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