數(shù)據(jù)提供者本身可以接受兩個(gè)類型的參數(shù):Method和ITestContext 在創(chuàng)建@DataProvider方法是可以有四種格式如圖: 第一種在上一篇中有學(xué)到
1-Methode參數(shù)使用 @DataProvider 使用 java.lang.reflect.Method 作為第一個(gè)參數(shù),,TestNG 會把當(dāng)前的測試方法當(dāng)成參數(shù)傳給第一個(gè)參數(shù)。 這樣不同測@test測試方法可以調(diào)用不同的測試數(shù)據(jù)
package com.lc.testChuanCan02; import java.lang.reflect.Method; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class testNG10 { @DataProvider(name = "data1") public Object[][] testNG10_01(Method method) { Object[][] data01 = null; //method.getName()的值是@test測試方法的名稱 if(method.getName().equals("testNG10_02")) { data01 = new Object[][] {{"我是測試方法a","我是測試方法a"}}; }else if(method.getName().equals("testNG10_03")) { data01 = new Object[][] {{"我是測試方法b","我是測試方法b"}}; } return data01; } @Test(dataProvider = "data1") public void testNG10_03(String name1,String name2) { System.out.println("name1:"+name1+";name2:"+name2); } } 給數(shù)據(jù)提供者提供ITestContext參數(shù)像是吧@test方的所在組提供給他,;要配合txtng.xml文件使用,。 下面是 @DataProvider 數(shù)據(jù)提供者如果 組名是functional-test( group.equals("functional-test")) 則隨機(jī)生成10隨機(jī)數(shù)給他測試方法,,如果不是就提供2個(gè)隨機(jī)數(shù) package com.lc.testChuanCan02; import java.util.List; import java.util.Random; import org.testng.ITestContext; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class testNG11 { @DataProvider public Object[][] randomIntegers(ITestContext context){ String[] groups = context.getIncludedGroups(); int size = 2 ; for(String group : groups) { System.out.println("group=="+group); if(group.equals("functional-test")) { size = 10 ; break; } } Object[][] result = new Object[size][]; Random r = new Random(); for(int i = 0 ; i < size ; i++) { result[i] = new Object[] {new Integer(r.nextInt())}; } return result; } @Test(dataProvider = "randomIntegers",groups = {"unit-test","functional-test"}) public void random(Integer n) { System.out.println("n="+n); } } <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http:///testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test">
<groups>
<run>
<include name="functional-test"></include>
</run>
</groups>
<classes>
<class name="com.lc.testChuanCan02.testNG11"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
|
|