其他分享
首页 > 其他分享> > 8-12接口测试进阶-1数据驱动

8-12接口测试进阶-1数据驱动

作者:互联网

课程目录:

数据驱动测试(Data-Driver Testing)

相同的测试脚本使用不同的测试数据执行,并完全分离了测试数据和测试行为,这样的设计模式叫做数据驱动。
TestNG实现测试驱动的两个关键注解:

使用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