我正在尝试升级Cucumber以与TestNg一起使用并行执行。但是,我在退出浏览器时遇到了问题。
我将pom.xml中的浏览器实例设置为3,如下所示:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<properties>
<property>
<name>dataproviderthreadcount</name>
<value>3</value>
</property>
</properties>
</configuration>
1)执行后,有时我看到1或2个浏览器没有退出。尽管它在钩子中执行quit方法(如下面的代码所示)。
2)其他问题是针对3种情况,我在开始时就打印了线程ID
System.out.println("Start Thread ID:" + Thread.currentThread().getId());
尽管我看到线程ID仅在2个实例上打印,但是它在3种不同的浏览器中执行所有3种情况。 但是对于挂钩中的退出浏览器代码,我看到为所有3个浏览器都打印了线程ID。
挂钩具有以下代码:
@After(order = 2)
public void takeScreenShot(Scenario scenario) {
byte[] screenshot = ((TakesScreenshot) util.driver).getScreenshotAs(OutputType.BYTES);
scenario.embed(screenshot, "image/png");
}
@After(order = 1)
public void createTestRun(Scenario scenario) {
<Some piece of code>
}
@After(order = 0)
public void validate(Scenario scenario) {
if (!scenario.isFailed()) {
LOGGER.info("Log something");
} else {
LOGGER.error("Test Failed");
if (world.orderType != null) {
SupportMethods.printErrors();
}
}
System.out.println("QUIT Thread ID:" + Thread.currentThread().getId()); // I see this ID is being called every time
util.driver.quit();
}
util类具有以下代码:
public class util {
public static WebDriver driver;
<some piece of code>
}
在网络驱动程序代码中,我正在将chrome实例分配给该util类驱动程序
util.driver = new ChromeDriver(options);