通过xml文件或数组给接口赋参数,看接口的运行情况。
一、通过xml来赋值
新建ParameterTest类
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class ParameterTest {
@Test
@Parameters({"name","age"})
public void parameterTest1(String name,int age) {
System.out.println("name = "+name +";"+"age ="+age);
}
}
新建xml配置文件配置参数(这里classes里要按格式class、parameter标签来配置)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="parameter">
<test name="param">
<classes>
<class name="com.course.testng.ParameterTest"/>
<parameter name="name" value="zhangsan" />
<parameter name="age" value="10"/>
</classes>
</test>
</suite>
TestNG运行结果
二、添加@DataProvider注解使用数组传参
package com.course.testng;
//这里的反射方法是为了下文运行时获得方法名比较赋不同的参数
//思想类似单例懒汉式
import java.lang.reflect.Method;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataProviderTest {
@Test(dataProvider = "data")
public void testDataProvider(String name,int age) {
System.out.println("name ="+name+";"+"age ="+age);
}
@DataProvider(name="data")
public Object[][]providerData(){
Object[][]o=new Object[][] {
{"zhangsan",10},
{"lisi",20},
{"wangwu",30}
};
return o;
}
@Test(dataProvider="methodData")
public void test1(String name,int age) {
System.out.println("test111方法的name="+name+";age="+age);
}
@Test(dataProvider="methodData")
public void test2(String name,int age) {
System.out.println("test222方法的name="+name+";age="+age);
}
@DataProvider(name="methodData")
public Object[][] methodDataTest(Method method){
Object[][]result=null;
//这里比较方法名传不同的参数
if(method.getName().contentEquals("test1")) {
result= new Object[][] {
{"zhangsan",20},
{"lisi",25}
};
}
else if(method.getName().contentEquals("test2")) {
result= new Object[][] {
{"wangwu",50},
{"zhaoliu",60}
};
}
return result;
}
}
运行方法test1
运行方法test2