gpt4 book ai didi

java - TestNG 并行执行行为与预期不符

转载 作者:行者123 更新时间:2023-12-01 10:02:35 25 4
gpt4 key购买 nike

我目前遇到一个无法识别的问题。

我正在尝试使用 testNG 并行运行测试。我并行运行不同的测试没有问题,但是当我尝试在不同的线程中多次运行单个测试时,我有一个奇怪的行为。

因此,我尝试调试以找出问题所在。当我尝试从 TestNG XML 配置文件获取值时发生错误:

public class LocalWebDriverListener implements IInvokedMethodListener {

static Logger log = Logger.getLogger(LocalWebDriverListener.class);

public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
log.debug("BEGINNING: LocalWebDriverListener.beforeInvocation");
if (method.isTestMethod()) {
//Error on this line
String browserName = method.getTestMethod().getXmlTest().getLocalParameters().get("browserName");
//getXmlTest() returns null
WebDriver driver = LocalDriverFactory.createInstance(browserName);
DriverManager.setWebDriver(driver);
} else {
log.warn("Not a TestNG test");
}
log.debug("END: LocalWebDriverListener.beforeInvocation");
}
}

我不明白为什么 getXmlTest() 仅当 @Test 参数中的 threadPoolSize > 1 时才返回 null。

public class TestClass {

static Logger log = Logger.getLogger(TestClass.class);

@Test(invocationCount = 5, threadPoolSize = 5)
public void testMethod1() {
invokeBrowser("http://www.google.com/");
}
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test executed using WebDriver" parallel="tests" thread-count="5">
<listeners>
<listener class-name="my.organization.WebDriverListener" />
</listeners>
<test name="Tests run in Chrome">
<parameter name="browserName" value="chrome" />
<packages>
<package name="my.organization.tests" />
</packages>
</test>
</suite>

你能帮我解决这个问题吗?

谢谢

最佳答案

问题是 IInvokedMethod 不知道 testng.xml代替 String browserName = method.getTestMethod().getXmlTest().getLocalParameters().get("browserName");String browserName = testResult.getTestContext().getCurrentXmlTest().getLocalParameters().get("browserName");

关于java - TestNG 并行执行行为与预期不符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com