Java 如何使用数据提供程序获取步骤并编写json文件?

Java 如何使用数据提供程序获取步骤并编写json文件?,java,selenium,cucumber,testng,Java,Selenium,Cucumber,Testng,这是我的runner类,我希望得到我的场景步骤,并将它们写入一个json文件,在我将json发送到elasticsearch之后,将添加该json文件的场景结果。 我连接到弹性搜索,并在每个场景后发送结果,但现在我希望在完成所有测试场景后发送结果 如何做到这一点,你能帮我吗?你可以试试哪一款提供了即用功能。您也可以自定义实现。提供每个步骤和检查点的详细信息。此外,它还为行为驱动测试提供了纯TestNG实现。因此,代码正在运行,您只需要知道如何创建json?是的,它正在运行,但我无法在@test

这是我的runner类,我希望得到我的场景步骤,并将它们写入一个json文件,在我将json发送到elasticsearch之后,将添加该json文件的场景结果。 我连接到弹性搜索,并在每个场景后发送结果,但现在我希望在完成所有测试场景后发送结果


如何做到这一点,你能帮我吗?

你可以试试哪一款提供了即用功能。您也可以自定义实现。提供每个步骤和检查点的详细信息。此外,它还为行为驱动测试提供了纯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();
    }