zoukankan      html  css  js  c++  java
  • (九)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"})
        publicvoidtestAdd1(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="测试套件">
        <testname="简单测试">
            <parametername="add1"value="3"/>
            <parametername="add2"value="2"/>
            <parametername="result"value="5"/>
            <classes>
                <classname="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")
        publicvoidtestAdd2(int add1, int add2, int result){
            assertEquals(add1+add2, result);
        }
    
    }
    
    • @DataProvider 定义对象数组,数组的名称为:add 。

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

    执行结果如下:

  • 相关阅读:
    jquery select操作和联动操作
    chrome 31删除输入框的历史记录
    14、python开发之路-并发编程之I/O模型
    13、python开发之路-并发编程之多线程
    12、python全栈之路-并发编程之多进程
    11、python全栈之路-网络编程
    10、python全栈之路-面向对象进阶
    9、python全栈之路-模块与包
    8、python全栈之路-初识面向对象
    6、python全栈之路-常用模块
  • 原文地址:https://www.cnblogs.com/xinlan06/p/11498779.html
Copyright © 2011-2022 走看看