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 个浏览器没有退出。虽然它正在钩子中执行退出方法(如下代码所示)。
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>
}
在 webdriver 代码中,我将 chrome 实例分配给这个 util 类驱动程序
util.driver = new ChromeDriver(options);
解决方案
推荐阅读
- javascript - Literallycanvas 按钮不可点击。能够加载 UI,但默认情况下只有铅笔在工作,并且在现有的 Angular 9 应用程序中没有其他图标
- javascript - 导航到另一个页面后来自 Testcafe 的奇怪行为
- linux - /etc/nginx/sites-available/wordpress 中的 Linux 脚本
- mysql - 在 Prisma 中创建或更新一对多关系
- c - 为什么这个循环遍历二维数组不起作用
- android - 如何防止特定视图在 Android 布局更改时被动画化?
- react-native - 从 'react-navigation-stack' 导入 { CardStyleInterpolators } 不起作用
- azure-devops - Azure DevOps Server 2020 - FilePath 工件并不总是从 fileShare 中删除
- angular - 模块模板编译时出错。无法解析相对于 [object Object] 的组件
- excel - 在 Excel 2016 中将逗号添加到字符串