TestNG安装与使用(2)

来源:互联网 发布:淘宝申请开网店要钱吗 编辑:程序博客网 时间:2024/05/08 03:37

使用注解配置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.这个一致包括了个数和顺序以及类型,否则如果类型不匹配或无法自动转换时就会抛出类型转换异常,而参数个数不匹配也会抛出参数缺失异常。








0 0
原创粉丝点击