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

met*_*eor 27 javascript selenium angularjs selenium-webdriver protractor

检查量角器文档,我看到有一个选项可以运行量角器而不使用Selenium服务器使用directConnect: true标志.

使用selenium服务器和没有selenium服务器运行量角器测试之间的区别是什么,除了后者只支持Chrome,Firefox这一事实?

ale*_*cxe 49

首先,目前,您有5种不同的内置选项/方式来连接浏览器驱动程序:

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

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

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

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

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

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

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

另见相关主题: