Java 如何使用数据提供程序获取步骤并编写json文件?
这是我的runner类,我希望得到我的场景步骤,并将它们写入一个json文件,在我将json发送到elasticsearch之后,将添加该json文件的场景结果。 我连接到弹性搜索,并在每个场景后发送结果,但现在我希望在完成所有测试场景后发送结果Java 如何使用数据提供程序获取步骤并编写json文件?,java,selenium,cucumber,testng,Java,Selenium,Cucumber,Testng,这是我的runner类,我希望得到我的场景步骤,并将它们写入一个json文件,在我将json发送到elasticsearch之后,将添加该json文件的场景结果。 我连接到弹性搜索,并在每个场景后发送结果,但现在我希望在完成所有测试场景后发送结果 如何做到这一点,你能帮我吗?你可以试试哪一款提供了即用功能。您也可以自定义实现。提供每个步骤和检查点的详细信息。此外,它还为行为驱动测试提供了纯TestNG实现。因此,代码正在运行,您只需要知道如何创建json?是的,它正在运行,但我无法在@test
如何做到这一点,你能帮我吗?你可以试试哪一款提供了即用功能。您也可以自定义实现。提供每个步骤和检查点的详细信息。此外,它还为行为驱动测试提供了纯TestNG实现。因此,代码正在运行,您只需要知道如何创建json?是的,它正在运行,但我无法在@test annotation方法中获得场景步骤并创建了json文件。我想在json文件中添加一些步骤。也许这里有一些帮助:如果没有。。您可以将Json对象传递到要添加步骤的位置,并在每个步骤中从cumber(Given/When等)添加名称there@Razvan谢谢你们,我并没有错,他们在方法之前有场景变量,但我并没有从数据提供者那个里得到场景。你对数据提供者有什么想法吗?@Razvan我试着这样做,但行'Field f=scenario.getClass().getDeclaredField(“testCase”);`它是给空的你知道吗?
@Test(dataProvider = "scenarios")
public void runScenario(PickleWrapper pickleWrapper, FeatureWrapper featureWrapper, ITestContext iTestContext)
throws Throwable {
System.out.println(pickleWrapper.getPickle().getName());
System.out.println(pickleWrapper.getPickle().getLine());
String browser = iTestContext.getCurrentXmlTest().getLocalParameters().get("browser");
System.out.println("Running Test on Browser:" + browser + " Thread ID:" + Thread.currentThread().getId());
if (ExtentReportManager.getFeature(featureWrapper.toString()) == null) {
ExtentReportManager.startFeature(featureWrapper.toString());
ExtentReportManager.startScenario(featureWrapper.toString(), pickleWrapper.getPickle().getName());
ExtentReportManager.getScenario().assignCategory(browser);
} else {
ExtentReportManager.startScenario(featureWrapper.toString(), pickleWrapper.getPickle().getName());
ExtentReportManager.getScenario().assignCategory(browser);
}
DriverManager.setScenarioName(pickleWrapper.getPickle().getName());
DriverManager.setFeatureName(featureWrapper.toString());
testNGCucumberRunner.runScenario(pickleWrapper.getPickle());
}
@DataProvider(parallel = true)
public Object[][] scenarios() {
return testNGCucumberRunner.provideScenarios();
}