2013-10-08 40 views
0

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

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

我知道我可以指定启动网格时的超时时间,但类似的选项似乎不在客户端?

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 

回答

0

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

这所要求的功能(默认情况下以90秒为单位)超时如果从你的硒脚本没有收到任何命令。 尽管它无法直接检测到网络问题,但这可能会阻止您的分钟被阻止的响应消耗。

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