【java测试-testng4】参数化的两种形式:xml和DataProvider
2021-03-07 14:31
标签:文件 sys 一个 out ann rgb 测试数据 apr ring 通常情况,测试方法中是不需要传入参数的,但不代表不能。 如果针对一个方法,需要传入多组数据进行测试,或者测试数据不想写在测试方法里,都需要用到参数化。 第一种:xml配置文件中存储数据 1.测试方法上加@Parameters({"name","age"})注解及参数 2.xml配置文件中 第二种:测试类中写DataProvider 1.测试方法上加@Test(dataProvider = "data"); 2.返回Object[][]方法上加@DataProvider(name = "data"),与测试方法里的保持一致。 还有一种不常用的情况,根据不同的方法名,判断传入不同的参数。 区别在于返回Object[][]方法里,加入形参(Method method); 用 method.getName().equals("test1") 匹配测试方法名,从而传入不同的数据。 【java测试-testng4】参数化的两种形式:xml和DataProvider 标签:文件 sys 一个 out ann rgb 测试数据 apr ring 原文地址:https://www.cnblogs.com/yunren/p/14260882.htmlpackage com.coke.testng.parameter;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class ParameterTest {
@Test
@Parameters({"name","age"})
public void paramTest1(String name,int age){
System.out.println("name = "+name+", age = "+age);
}
}
xml version="1.0" encoding="UTF-8" ?>
suite name="parameterTest">
test name="parameter">
classes>
parameter name="name" value="zhangsan"/>
parameter name="age" value="20"/>
class name="com.coke.testng.parameter.ParameterTest"/>
classes>
test>
suite>
package com.coke.testng.parameter;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.lang.reflect.Method;
public class DataProviderTest {
@Test(dataProvider = "data")
public void testDataProviderTest(String name,int age){
System.out.println("name="+name+";age="+age);
}
@DataProvider(name = "data")
public Object[][] providerData(){
Object[][] objects = new Object[][]{
{"zhangsan",20},
{"lisi",21},
{"wangwu",22}
};
return objects;
}
}
package com.coke.testng.parameter;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.lang.reflect.Method;
public class DataProviderTest {
@Test(dataProvider = "methodData")
public void test1(String name,int age){
System.out.println("test1方法 的 name="+name+";age="+age);
}
@Test(dataProvider = "methodData")
public void test2(String name,int age){
System.out.println("test2方法 的 name="+name+";age="+age);
}
@DataProvider(name = "methodData")
public Object[][] MethodData(Method method) {
Object[][] result = null;
if (method.getName().equals("test1")) {
result = new Object[][]{
{"zhangsan",20},
{"lisi",21}
};
} else if (method.getName().equals("test2")) {
result = new Object[][]{
{"wangwu",22},
{"zhuliu",23}
};
}
return result;
}
}
文章标题:【java测试-testng4】参数化的两种形式:xml和DataProvider
文章链接:http://soscw.com/index.php/essay/61378.html