循环一个testng测试用例并记录每个循环时间

时间:2015-11-10 06:26:13

标签: testng

我想在testng中循环测试,以便在测试结果中记录每个循环执行时间。我使用Do-While循环测试但是testng记录了循环完成测试用例的整个时间。我的代码的简单视图就在这里。

class BackEndController{
@Test
public void fwdProcess(){
do{
//pick a pending request from a list
//perform some actions on it
//forward the request
}while(items are in the list)
}
}

尽管循环完成一个循环需要将近一秒钟。但是Testng记录了fwdProcess所用的整个时间(结果显示3-4分钟)。 那么是否有任何注释或方法可以通过循环测试来实现类似的条件(直到列表中有项目),以便我可以获得测试的每个执行时间?

2 个答案:

答案 0 :(得分:0)

您需要的是data provider

class BackEndController {

    @DataProvider
    public Object[][] requests() {
        // construct the array (or iterable) from a list
    }

    @Test(dataProvider = "requests")
    public void fwdProcess(request) {
        // perform some actions on the request
        // forward the request
    }
}

答案 1 :(得分:0)

如果循环将使用相同的数据我认为你需要的是使用invocationcount

@Test(invocationCount = 10)
public void testServer() {
}

这将调用相同的测试10次,在报告中您将获得单独的时间。您也可以设置其他参数,如timeout,successPercentage等。请阅读this以获取有关这些参数及其工作原理的更多信息