8-12接口测试进阶-1数据驱动
作者:互联网
课程目录:
- 数据驱动
- 接口源码分析
- 从源码中解析接口信息
- Dubbo接口测试
- 接口持续集成
数据驱动测试(Data-Driver Testing)
相同的测试脚本使用不同的测试数据执行,并完全分离了测试数据和测试行为,这样的设计模式叫做数据驱动。
TestNG实现测试驱动的两个关键注解:
- @DataProvider
- @Parameters
使用DataProvider
将数据写在另一个类里
package com.csj2018.testdata;
import org.testng.annotations.DataProvider;
public class TestData {
@DataProvider(name="car")
public static Object[][] createData(){
return new Object[][]{
{"明朝","王阳明"}
};
}
}
测试脚本
package com.csj2018;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataProviderDemo {
/*
* 类中提供测试数据
*/
@DataProvider(name="car")
public Object[][] createData(){
return new Object[][]{
{"大众","帕萨特"},
};
}
@Test(dataProvider = "car")
public void testData1(String brand,String middleClassAuto){
System.out.println("@dataProvider 从本类中读取测试数据");
System.out.println("品牌:"+brand+"\t中级车:"+middleClassAuto);
}
@Test(dataProvider = "car",dataProviderClass = com.csj2018.testdata.TestData.class)
public void testData2(String dynasty,String famous){
System.out.println("@dataProvider 从数据类中读取测试数据");
System.out.println("朝代:"+dynasty+"\t人物:"+famous);
}
}
使用Parameters
创建测试用例
package com.csj2018;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class TestParameters {
@Test
@Parameters({"province","city"})
public void testParameters(String province, String city){
System.out.println("@Parameters");
System.out.println("省份:"+province+"\t城市:"+city);
}
}
新建xml文件,用于传递参数,并执行用例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite" verbose="1">
<test verbose="2" preserve-order="true" name="lesson1"><!--测试名称-->
<classes>
<class name="com.csj2018.TestParameters"><!--测试类的路径-->
<parameter name="province" value="浙江" />
<parameter name="city" value="杭州" />
<methods>
<include name="testParameters"/>
</methods>
</class>
</classes>
</test>
</suite>
标签:12,进阶,System,接口,String,println,DataProvider,public,out 来源: https://www.cnblogs.com/csj2018/p/11677023.html