DataProvider
@DataProvider 注解帮助我们编写数据驱动的测试用例。@DataProvider 注解使我们能够通过传递不同的数据集多次运行测试方法。
以下是@DataProvider 注解支持的属性列表:
属性 | 描述 |
---|---|
name | 此数据提供者的名称。如果未提供,则此数据提供程序的名称将自动设置为方法的名称。带注解的方法必须返回一个 Object[][],其中每个 Object[] 都可以分配测试方法的参数列表。 |
parallel | 如果设置为true,则使用此数据提供程序生成的测试将并行运行。默认值为false。 |
dataProvider作为数据提供者只能返回Object[][]和Iterator<Object[]>类型的数据。
Iterator<Object[]>类型
package com.testng.example.testngdemoone;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestngDemoOneApplicationTest {
@DataProvider(name="dataProvider-testcase")
public Iterator<Object[]> dataProvider() {
List<Object> testCasePaths = new ArrayList<Object>();
testCasePaths.add("test1");
testCasePaths.add("test2");
testCasePaths.add("test3");
testCasePaths.add("test4");
List<Object[]> path = new ArrayList<>();
for(Object obj:testCasePaths){
path.add(new Object[]{obj});
}
return path.iterator();
}
@Test(dataProvider = "dataProvider-testcase")
public void testDataProviderIterator(String path) {
System.out.println(path);
}
}
测试执行结果
test1
test2
test3
test4===============================================文章来源地址https://www.toymoban.com/news/detail-775957.html
Default Suite
Total tests run: 4, Passes: 4, Failures: 0, Skips: 0
===============================================
Object[][]类型
package com.testng.example.testngdemoone;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestngDemoOneApplicationTest {
@Test
void contextLoads() {
System.out.println("this is the first surccess test");
}
@Test
void errorTests() {
System.out.println("this is the first error test");
assert false;
}
@DataProvider(name="dataProvider-testcase")
public Iterator<Object[]> dataProvider() {
List<Object> testCasePaths = new ArrayList<Object>();
testCasePaths.add("test1");
testCasePaths.add("test2");
testCasePaths.add("test3");
testCasePaths.add("test4");
List<Object[]> path = new ArrayList<>();
for(Object obj:testCasePaths){
path.add(new Object[]{obj});
}
return path.iterator();
}
@Test(dataProvider = "dataProvider-testcase")
public void testDataProviderIterator(String path) {
System.out.println(path);
}
@Test(dataProvider = "data")
public void dataProviderTest(String name, int age, String hobby) {
System.out.println(name + " " + age + " " + hobby);
}
@DataProvider(name = "data")
Object[][] getData(){
return new Object[][] {
{"June", 22, "Sing"},
{"Jack", 22, "Football"},
{"Duke", 22, "Chess"}
};
}
}
package com.testng.example.testngdemoone;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestngDemoOneApplicationTest {
@Test(dataProvider = "data")
public void dataProviderTest(String name, int age, String hobby) {
System.out.println(name + " " + age + " " + hobby);
}
@DataProvider(name = "data")
Object[][] getData(){
return new Object[][] {
{"June", 22, "Sing"},
{"Jack", 22, "Football"},
{"Duke", 22, "Chess"}
};
}
}
June 22 Sing
Jack 22 Football
Duke 22 Chess===============================================
Default SuiteTotal tests run: 3, Passes: 3, Failures: 0, Skips: 0文章来源:https://www.toymoban.com/news/detail-775957.html
===============================================
到了这里,关于Testng数据驱动之DataProvider的使用方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!