我不知道这是否是设计使然,只是注意到我像这样设置了testNG:
<suite name="Suite" parallel="classes" thread-count="4">
<test name="Test">
<classes>
<class name="Test2"/>
<class name="Test1"/>
<class name="Test3"/>
<class name="Test4"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
然后在我的测试中,
public class BaseTest {
@AfterTest
public void afterAll() {
System.out.println("tear down webdriver here ");
this.webDriver.quit();
}
}
Test1到Test 4都扩展了此基础测试。
但是我注意到在启动具有两个节点的selenium hub的刷新后,前几次运行都很好,但是从控制台看,可用资源越来越少,运行几次后,就没有可用资源,所有测试都在等待。实际上,每次调用webdriver.quit()时,它仅关闭一个会话,而其他所有会话仍处于打开状态。
这使Selenium Grid解决方案一点都不优雅,我们不得不借用很多额外的解决方案,例如,每当我们开始新的测试工作时就重新启动Selenium Grid等。
因此,为什么driver.quit()无法关闭所有网格会话,而只能关闭一个会话?该驱动程序已经是singlton,并且已经在所有测试用例之间共享。
希望听到您对此的建议。
谢谢
https://github.com/frostyaxe/Talongrid/tree/master