1

我有多个类似的站点(相同的布局,只是不同的数据),并且每个站点都有鼠标悬停的下拉菜单(鼠标移出时消失)。

我正在使用 Selenium 2 和 WebDriver,并且我有一个 selenium 测试用例,基本上可以将鼠标悬停并确保下拉菜单中的每个链接都有效。

我正在使用硒网格,所以我有一个集线器和几台测试机器。

因为我有很多站点(几百个)要测试,所以我正在考虑让每台机器对多个站点并行运行测试用例。

我担心的是因为一次只能有一个活动浏览器,如果网络驱动程序尝试大致同时在多个浏览器上执行 Action.moveToElement() 会导致问题吗?只有活动浏览器会正确执行 Action.moveToElement() 而其他浏览器会失败吗?如果出现问题,是否有任何解决方法?

4

2 回答 2

1

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

好的部分 - Firefox 实际上可以并行执行。如果 FF 实例彼此之间存在延迟,因此它们不会同时执行相同的操作,则效果会更好。一些故障发生在 Firefox 启动过程中 - 所以如果你可以最小化关闭和打开窗口,那就去做吧。但是,有时它会无缘无故地失败。

如果您真的会使用节省的时间,那就去吧,记录所有失败的测试并在第一轮之后再次运行它们 - 这次一次一个。

于 2012-04-06T02:29:22.887 回答
0

您也可以根据您的最终测试目标来解决这个问题,方法是不使用带有鼠标移动单击的 Action 类,而是使用 WebDriver findBy-click 方法或 Javascript 执行器方法。当同时运行多个窗口时,它可能不会那么有争议。如果 Action 类在定义鼠标移动时完全使用本机调用,例如“移动到点”,然后一个浏览器在另一个浏览器的顶部,那么我猜移动点可能会被另一个窗口掩盖. 我真的不确定这一点,只是给你另一个想法尝试。

于 2013-02-20T17:34:55.360 回答