使用注解配置TestNG线程池,执行次数,超时
使用注解配置TestNG线程池,执行次数,超时
invocationCount----表示执行的次数
threadPoolSize-----表示线程池的内线程的个数
timeOut-------超时时间-毫秒
<pre name="code" class="html">public class TestngInvocationCount {
private static int sum = 0;
@Test(threadPoolSize = 2, invocationCount = 10, timeOut = 1000)
public void testServer() throws InterruptedException {
// 检测启动的线程数,当启动的个数超过CPU核数时,其实是重新在调度
// Thread.sleep(2000);
sum++;
System.out.println("........." + sum);
}
}
使用注解方式提供数据源,从而进行自动循环测试
@DataProvider(name = "DP1")
public Object[][] createData() {
Object[][] retObjArr = { { "001", "Jack", "London" },
{ "002", "John", "New York" }, { "003", "Mary", "Miami" },
{ "004", "George", "california" } };
return (retObjArr);
}
@Test(dataProvider = "DP1")
public void testEmployeeData(String empid, String empName, String city) {
System.err.println(empid);
System.err.println(empName);
System.err.println(city);
}
@DataProvider(name = "iterator")
public Iterator<Object[]> getData() {
Set<Object[]> set = new HashSet<Object[]>();
set.add(new String[] { "hello" });
Iterator<Object[]> iterator = set.iterator();
return iterator;
}
@Test(dataProvider = "iterator")
public void testIteraorData(String iterator) {
System.err.println("iterator .. " + iterator);
}
DP1数组内的每一组数据都会作为一个测试用例执行
注意要点:
1.我们的@DataProvider方法可以通过读取Excel、数据库、properties文件等方式进行获取,这个取决于实际测试用例的设计和项目的需要,
2.其返回值是返回一个二维数组,数组内的二维元素个数必须和调用方法的参数一致,
3.这个一致包括了个数和顺序以及类型,否则如果类型不匹配或无法自动转换时就会抛出类型转换异常,而参数个数不匹配也会抛出参数缺失异常。