2012-04-04 72 views
1

我有多个类似的网站(相同的布局,只是不同的数据),并且每个鼠标都有下拉菜单(并在鼠标上消失)。同时在一台机器上运行硒测试的可能问题

我使用Selenium 2和webdriver的,我有一个硒测试用例基本上做的是鼠标,并确保每个在下拉菜单中的作品的链接。

我使用硒网格,所以我有一个集线器和很少的测试机器。

因为我有很多的网站(几百个)进行测试,所以我想使每一台机器对并行多个站点运行测试用例的。

我担心的是,因为在同一时间只能有一个活动的浏览器,它会造成问题,如果网络驱动程序尝试在多个浏览器执行Action.moveToElement()在大致相同的时间?只有主动浏览器能够正确执行Action.moveToElement()并且其他浏览器失败吗?如果有问题,是否有任何解决方法?

+1

尝试过,在机器上运行三次测试时,将通过的测试从100%降低到约67%。不好= /。 – 2012-04-05 21:27:48

+0

@Slanec,你应该把它作为答案! – Alvin 2012-04-06 01:18:18

+0

我曾希望有人出现一个很好的解决方法,:) – 2012-04-06 02:30:02

回答

1

我试过使用JUnitCore.runClasses(ParallelComputer.classes(), SomeClass1.class, SomeClass2.class, SomeClass3.class);,它在机器上运行三个测试时将通过的测试百分比从100%降低到约67%。不好= /。

好的部分 - firefox实际上可以并行执行。如果FF实例相互之间延迟,所以它们不会同时做同样的事情,它会更好。在Firefox启动过程中发生了一些故障 - 所以如果您可以最小化关闭和打开窗口,请执行此操作。但是,有时候它只是失败,没有理由。

如果你真的会用节省的时间,然后去了,记录所有失败的测试和第一轮后再次运行它们 - 这一次是在一个时间。

0

根据您的测试最终目标,您也可以解决此问题,方法是不使用带有鼠标移动点击的Action类,而是使用WebDriver findBy-click方法或Javascript执行程序方法。在同一时间运行多个窗口时,这可能不那么有争议。如果Action类在定义鼠标移动时完全使用本地调用,例如“移动到Point”,然后一个浏览器位于另一个之上,那么我猜测移动点可能会被另一个窗口遮挡。我真的不确定这一点,只是给你另一个想法尝试。

相关问题