(九)TestNG 用例参数化

虫师 创建于 over 6 years 之前

最后更新: about 1 month 之前

阅读数: 1

(九)TestNG 用例参数化

参数化也测试用例中常用的技巧之一,它可以增加用例的可配置性和减少相同用例的编写。

通过 @Parameters 实现参数化


import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertEquals;

public class DataProviderTest {

    @Test
    @Parameters({"add1","add2","result"})
    public void testAdd1(int add1, int add2, int result){
        assertEquals(add1+ add2, result);
    }

}
  • @Parameters 获取参数化数据,作为 testAdd1() 测试方法的参数。

具体的测试数据在 testng.mxl 文件中设置。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="测试套件">
    <test name="简单测试">
        <parameter name="add1" value="3"/>
        <parameter name="add2" value="2"/>
        <parameter name="result" value="5"/>
        <classes>
            <class name="test.sample.DataProviderTest" />
        </classes>
    </test>
</suite>
  • <parameter.../> 定义测试数据
    • name 定义数据的名字,在测试用例中通过该名字来获取对应的vlaue。
    • value 定义测试数据,通过对应的name来获取该值。

通过 @DataProvider 实现参数化


import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertEquals;

public class DataProviderTest {

    // 定义对象数组
    @DataProvider(name = "add")
    public Object[][] Users() {
        return new Object[][] {
                { 3, 2, 5 },
                { 2, 2, 4 },
                { 3, 3, 7 },
        };
    }

    @Test(dataProvider="add")
    public void testAdd2(int add1, int add2, int result){
        assertEquals(add1+add2, result);
    }

}
  • @DataProvider 定义对象数组,数组的名称为:add 。

在 testAdd2() 中通过 dataProvider="add" 调用定义的对象数组,并通过参数获取相应的测试数据。

执行结果如下:

0

相关课程

webium简明教程
图文
webium简明教程

课程分类: 测试框架

开箱即用的page object模式

  • 已完结
  • 已更新8集
  • 最后更新时间: 2024-03-18 12:48:12

免费

查看详情
python unittest测试框架教程
图文
python unittest测试框架教程

课程分类: 测试框架

python 自带的单元测试框架

  • 已完结
  • 已更新8集
  • 最后更新时间: 2024-03-18 12:12:46

免费

查看详情
TDD测试驱动开发教程
图文
TDD测试驱动开发教程

课程分类: 测试框架 软件测试基础

TDD其实并不神秘

  • 已完结
  • 已更新7集
  • 最后更新时间: 2024-03-18 11:53:22

免费

查看详情