0

我不清楚使用以下方法运行量角器测试有什么区别:

directConnect: true/false,
seleniumAddress: 'http://localhost:4444/wd/hub',

而且,为什么这有效?我用什么来运行我的测试?

我没有在我的配置文件中声明上述任何选项,并且我的所有测试都在运行。

这是我运行测试时的输出:

[16:26:42] I/launcher - Running 1 instances of WebDriver
[16:26:42] I/local - Starting selenium standalone server...
[16:26:46] I/local - Selenium standalone server started at http://193.167.1.94:57674/wd/hub

I/local 表示我在本地运行?直接连接是默认选项吗?

我看到我/托管在一些堆栈溢出帖子中。这意味着他们正在使用外部网格?

4

2 回答 2

2

seleniumAddress是 selenium 服务器运行的位置。如果未指定,则在执行框架时将创建一个新的 selenium 服务器实例(通常在默认的 selenium 端口 4444 上)。

directConnect不同的是,它允许您直接向浏览器驱动程序发送命令,完全跳过 seleniumServer。根据下面链接的conf,它的定义是:

如果为 true,Protractor 将直接连接到 chromeDriver 和 firefoxPath 指定位置的浏览器驱动程序。直接连接仅支持 Chrome 和 Firefox。

是一个指向示例 conf.ts 文件的链接,其中列出了默认设置中的所有选项和说明。我觉得它是一个非常有用的参考。

另请参阅此相关的先前线程以获取更多信息。

于 2020-01-08T09:55:16.397 回答
2

硒地址

您可以将 selenium 服务器或 selenium 网格 url 提供给seleniumAddress.

您可以在测试的相同或不同机器上启动 selenium 服务器或网格

脚本驻留

1.1) 本地硒服务器

 . Selenium server run on same machine where test scripts reside

 . When running test, browser opened on the machine where selenium server running

 . Communicate Path:  ( in same machine where test script reside)

    test script -> selenium server -> webdriver binary -> browser

1.2) 远程硒服务器

. Selenium server run on remote machine where test scripts **NOT** reside

. When running test, browser opened on the remote machine where selenium server running  

. Communicate Path: ( cross two machines )

   test script -> test script machine 
               -> selenium server  (on remote machine)
               -> webdriver binary (on remote machine)
               -> browser          (on remote machine)

1.3)硒网格

. Grid use Master/Slave 

. Multiple Slave machines register to One Master machine

. Each Slave can install couple kinds of browsers

. Slave tell Master it can provide the kinds of browser and 
  max browser instances running in parallel when register to Master

. Master will determine each test open browser on which Slave 
  by test required browser type and not exceed the max browser instances on slave

. Communicate Path: ( cross three machines )

    test script -> test script machine 
                -> master machine
                -> selenium server  (on choosen slave machine)
                -> webdriver binary (on choosen slave machine)
                -> browser          (on choosen slave machine)

直接联系

. When directConnect: true, seleniumAddress will be ignored (if both configured)

. Only chrome and firefox support directConnect so far

. Communicate Path: ( in same machine where test script reside) 

    test script -> webdriver binary -> browser

使用 seleniumAddress,您可以在启动 selenium 服务器/网格的终止窗口中看到测试脚本与 webdriver 通信的日志。

从日志中,您可以获得如下信息:

  • 测试脚本使用哪个定位器来查找元素
  • 查找/操作元素的步骤完成或失败
  • 当测试用例失败时,它无法传达哪个元素。

这些信息对于调试测试脚本非常有用

默认情况下使用 directConnect量角器不会在单独的终止窗口中启动 webdriver 二进制文件,也不会将通信日志定向到文件中。

所以它不适合调试测试脚本。

于 2020-01-08T00:48:36.743 回答