繁体   English   中英

在使用TestNG进行硒测试期间,如何关闭打开的驱动程序

[英]How can I close opened drivers during Selenium tests with TestNG

我有一个Selenium项目,该项目在我的本地计算机上运行良好,但是在由Hudson运行时遇到了问题。 问题在于它在每次测试结束时都不会关闭打开的驱动程序。

先决条件:该项目由Hudson在Selenium网格服务器上运行。 (我也已经在Selenium网格服务器上的本地计算机上运行了它,并且不会出现问题)

因此,我有一个由每个测试类实现的BeforeAndAfter类。

在BeforeAndAfter内部,我有一个@BeforeClass方法,它启动一个新驱动程序:driver = new RemoteWebDriver(new URL(url),capability); 和一个@AfterClass方法,它执行driver.quit();

每次我在远程Selenium Grid服务器上运行testNG.xml文件时,它都会为每个测试类打开一个驱动程序,但在关闭所有驱动程序(所有浏览器窗口)时,它将一直保持打开状态直到最后一次测试结束

我的testNG文件如下所示:

<parameter name="browser" value="firefox"/>
<parameter name="url" value="http://10.32.999.99:999/wd/hub"/>


<test name="Regression on test grid">
    <classes>          
        <class name="tests.PageTests.ArticlesPageTest"/>
         <class name="tests.PageTests.CuratorsPageTest"/>
         <class name="tests.FlowTests.NavigateThroughFindings"/>
        <class name="tests.PageTests.DiffToolTest"/>
        <class name="tests.PageTests.ReportsAdminTest"/>           
    </classes>
</test>

对这个问题有什么想法吗?

PS:实际上,问题在于每个测试类释放内存后,@ AfterClass方法没有关闭驱动程序。

如果是testNG,则可以使用@AfterClass(alwaysRun = true)。

另外,在我们的项目中,我们创建了批处理文件以在任何测试类完成后终止进程。 就像正在运行任何IEdriver.exe或firefox.exe一样,请使用Windows commads强制将其杀死。请确保在下一个测试类开始之前通过在Setup Fixture方法中调用batch进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM