是否可以对通过@dataprovider中的完整数据集的完整数据集运行测试并报告整体结果?

时间:2016-07-07 09:27:23

标签: java testng testng-dataprovider

我有一个testNg类,我必须在一组完整的数据上运行相同的测试。我可以在@dataprovider中提供每个数据行,但是,每个数据行的结果都将显示在报告文件中。就我而言,我必须测试数百万的数据。这会导致报告非常混乱。以下是一个例子。

TESTDATA: 我的测试数据是一个包含多个JSON行的文件,其中每个JSON对象都应该有一个名称和职业。

{"name":"Jim", "occupation":"racing"} 
{"name":,} 

我的测试NG课程看起来像:

public class TestJSon {
    @DataProvider("lineProvider")
    public Object[][] lineProvider() {
        // return JSON lines
    }

    @Test (dataProvider = "lineProvider")
    public void testJsonLines(String name, String occupation) {
        // Test name and occupation
    }
}

现在输出报告将包含:

  

testJsonLines传递了名为Jim的行   对于行{“name”:,},testJsonLines失败   第{}行的testJsonLines失败   对于行{“name”:“Jack”,“占用”:“}

,testJsonLines失败

我想要一份简单打印的报告:

  对于第2,3和4行中的输入,

testJSON输入失败

总结一下,我试图让我的报告组在所有数据ra上运行结果,而不是打印每个数据。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我们测试了数以百万计的数据 - 数据提供者方法要么导致内存错误,要么报告不容易看到。

我最终拥有自己的IReporter实现,它将结果写入excel表,允许我有过滤器或做我想要的任何定制。当然,这必须与其他侦听器(ITestListener / IInvokedMethodListener)一起以您希望的方式捕获结果。

在我的情况下,我也使用自己的并行机制来解决这么多数据的内存错误 - 我通常习惯于90000 testdata命中它。