在开始Sauce测试后如何检测网格请求的网络超时?

时间:2013-10-08 17:52:05

标签: selenium selenium-webdriver selenium-grid saucelabs

如何在使用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

1 个答案:

答案 0 :(得分:0)

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

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

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