0

使用 RemoteWebDriver 客户端对象启动 Sauce 测试后,如何检测网格请求的网络超时?我有一个我希望我的框架能够捕捉到的场景,那就是当向外连接到 SauceLabs 时正常工作但返回连接失败。换句话说,这是一个网络场景,我的 Selenium 测试发送一个浏览器 .get() 并在 SauceLabs 中打开一个带有新 URL 的新浏览器,但是由于网络问题,随后的 JSON 数据包失败并且测试似乎挂起. 我知道问题出在哪里,但我只想让我的单元测试框架报告网络问题。现在,当这种情况发生时,RemoteWebDriver 将无限期超时,这是不可接受的。

我知道要解决这个问题,需要了解 RemoteWebDriver 客户端最初尝试将 JSON 命令发送到 Grid Hub 时客户端超时的工作原理。

我知道我可以在启动 Grid 时指定超时,但客户端似乎没有类似的选项?

Hub start :- java -jar /tools/grid/selenium-server-standalone-2.35.0.jar 
 -role hub -maxSession 20 -browserTimeout 240 
 -remoteControlPollingIntervalInSeconds 180 -sessionMaxIdleTimeInSeconds 240 
 -newSessionMaxWaitTimeInSeconds 250 -timeout 30
4

1 回答 1

0

在 Sauce 端设置空闲超时可能对此有所帮助:http ://saucelabs.com/docs/additional-config#idle-timeout

如果没有从您的 Selenium 脚本接收到命令,则此所需功能(默认设置为 90 秒)超时。虽然它无法直接检测网络问题,但这可以防止您的分钟数被阻止的响应占用。

您还可以从 Sauce Connect ( https://saucelabs.com/docs/connect ) 中受益,这是一个免费的独立 Java 实用程序,可让您针对防火墙资源进行测试。Connect 还会检查丢弃的数据包,并会自动重新发送它们(直到某个点)以尝试重新建立连接。

于 2013-10-09T20:26:13.467 回答