CaptureNetworkTraffic()导致Selenium内部服务器错误?

时间:2011-01-18 20:27:33

标签: java selenium

基本上,我正在产生大量连接到一个selenium服务器的selenium客户端实例。

一次跑20个左右在我的盒子上完全正常。

然后我添加了一个使用captureNetworkTraffic()方法将网络流量读取为JSON的功能,以便我可以将统计信息记录到每个实例的相应运行日志中。

现在,突然之间,如果我一次运行的时间超过3或4,那么他们几乎都会因为“内部Selenium服务器错误”而失败!

我已经做了几次不同的尝试(使用不同的浏览器),无论是否记录了网络统计信息,他们都指出了相同的结论:我不能使用此功能运行超过3或4。

有谁知道为什么会这样?我知道这也是失败的原因,因为我已经将失败归咎于这一行代码。

谢谢

2 个答案:

答案 0 :(得分:0)

我找到了罪魁祸首:java.util.ConcurrentModificationException

根据this support post,处理网络流量统计信息的内部ArrayList未同步,并且有时尝试同时修改,即当您尝试运行40个不同的时候客户一次!

答案 1 :(得分:0)

我在我的工作中运行了一个相当大的selenium脚本设置,我前段时间做了更改所有脚本,所以每个脚本都会在单独的端口上动态启动自己的Selenium Server。

首先,我确实遇到了与您发生随机错误的类似问题(在某些负载下,Selenium Server并不总能很好地处理)。但最大的好处是不必确保selenium服务器正在运行等,只是为了启动脚本。

当然,它确实使用了更多的内存,但我宁愿对我们自己的产品进行故障排除而不是Selenium Server :)