我想知道一段时间后,最好的方法是在投掷预测或测试用例结束后进行适当的清理。
提醒一下: 根据实现的.exe进程驱动程序进程,conhost.exe,浏览器和Java应用程序都会启动。
使用driver.quit()
,我们可以在完成测试用例后终止驱动程序进程,conhost和浏览器。
WebDriver driver = new SomethingDriver();
// do stuff
driver.quit(); // Proper cleaning
但是,如果可能抛出异常,我们需要这样做:
try{
WebDriver driver = new SomethingDriver();
// do stuff
}
catch(Exception e){
e.printStackTrace();
}
finally{
driver.quit(); // Proper cleaning
}
关闭驱动程序进程和conhost,但让浏览器保持活动状态怎么样?执行shell脚本很糟糕,因为它会使用这些名称杀死所有进程(因此会阻止并发使用),而且它只是Windows(我认为):
TASKKILL /F /IM chromedriver.exe
TASKKILL /F /IM conhost.exe
让我们说我们随机杀死Java进程(在Eclipse或任务管理器中)。我们如何确保进行上述清洁工作?
是否有一个能很好地涵盖所有这些问题的代码解决方案?
答案 0 :(得分:0)
使用JUnit可以提供帮助
public class JunitTest1 {
private WebDriver driver;
@BeforeClass
public static void oneTimeSetUp() {
// one-time initialization code
System.out.println("@BeforeClass - oneTimeSetUp");
}
@AfterClass
public static void oneTimeTearDown() {
// one-time cleanup code
System.out.println("@AfterClass - oneTimeTearDown");
}
@Before
public void setUp() {
// before every test
driver = new FirefoxDriver();
System.out.println("@Before - setUp");
}
@After
public void tearDown() {
// after every test
driver.quit();
System.out.println("@After - tearDown");
}
@Test
public void testSmthOne() {
// the test itself
System.out.println("@Test - testSmth");
}
@Test
public void testSmthTwo() {
// the test itself
System.out.println("@Test - testSmth");
}
}