测试-TestNG参数化

一、TestNG参数化测试

测试过程中,同一个测试方法我们需要不同的数据作为输入数据,代码的逻辑其实是没有变化的,不同的只是测试数据而已。TestNG提供了两种传递参数的方式:

  • 第一种: testng.xml 方式使代码和测试数据分离,方便维护

  • 第二种:@DataProvider能够提供比较复杂的参数。


DataProvider 说明:
1、TestNG中的数据源@DataProvider,所有的工作都在测试类中完成。具体过程分为两个步骤:第一步是定义数据源,第二步是在测试方法中引用数据源。
2、定义数据源就是->提供一个生成数据源的方法,该方法通过@DataProvider声明。该方法必须返回Object[][]类型(或者Iterator),即复杂对象的数组。
3、数据源方法中,返回的对象数组中,有几个一维数组,则引用数据源的方法执行几遍。


第一种:
package com.test.testNG;
import org.testng.annotations.*;

public class SampleTest {
    
    @Test (parameters = {"parm1"})
    public void testMethod1(String para){
        
        System.out.println("param = " + para);
    }   
}

对应xml文件如下:




    
    
  
    
      
    
   
 

第二种:
package com.test.testNG;
import org.testng.annotations.*;

public class SampleTest {

    @DataProvider(name = "data")
    public Object[][] dataProvider(){

        return new Object[][]{
            {"name", 13},
            {"zhangsan", 12}
        };

    }
    
    @Test(dataProvider = "data")
    public void testDataProvider(String name, int age){

        System.out.println("姓名是"+name+"年龄是"+age);
    }
    

执行结果如下:
方法根据所传的参数个数,执行相应的次数


image.png
二、excel文件参数化
  • 在excel文件中,设计好测试数据
测试-TestNG参数化_第1张图片
image.png

示例代码:


测试-TestNG参数化_第2张图片
image.png

执行结果:


测试-TestNG参数化_第3张图片
image.png
三、读取数据库中的数据作为参数

数据库数据

测试-TestNG参数化_第4张图片
image.png

示例代码:


测试-TestNG参数化_第5张图片
image.png

*由于执行的数据是由SQL语句进行的筛选,所以另我们的测试数据又变得更加灵活。
*比如使用下面这句SQL语句:
SELECT * FROM ServiceAPI_InfoRecords WHERE isTest=1。
执行结果和想象的一样,只会执行1和3

四、 在配置文件中,使用parameter标签来完成参数传递动作

testNG.xml文件配置


测试-TestNG参数化_第6张图片
image.png

代码示例:


测试-TestNG参数化_第7张图片
image.png

执行结果为test1,2,3,1,3

你可能感兴趣的:(测试-TestNG参数化)