我想在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分钟)。 那么是否有任何注释或方法可以通过循环测试来实现类似的条件(直到列表中有项目),以便我可以获得测试的每个执行时间?
答案 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以获取有关这些参数及其工作原理的更多信息