zoukankan      html  css  js  c++  java
  • testNG @DataProvider参数化

    testNG @DataProvider参数化是用java 代码写个用@DataProvider标记专门为测试方法提供参数的方法。该方法上用@DataProvider(name = "data")标记,需要被执行的测试用例方法需要用@Test()标识且在@Test中添加dataProvider 参数,如@Test(dataProvider = "data")  。

    注意事项:@DataProvider中的name参数的值 必须和@Test中的dataProvider  参数的值一致。如果不一致 则无法调用到@DataProvider(name = "data")参数化方法中的参数。

    @DataProvider参数化不止可以直接用于单个测试用例上,也可以用过方法名运用于多个测试用例上。

    java代码如下

     2 
     3 import org.testng.annotations.DataProvider;
     4 import org.testng.annotations.Test;
     5 
     6 import java.lang.reflect.Method;
     7 
     8 public class DataProviderTest {
     9     /**
    10      * 直接运行在测试用例上的参数化
    11      *
    12      * @param name
    13      * @param age
    14      */
    15     @Test(dataProvider = "data")
    16     public void testDataProvider(String name, int age) {
    17         System.out.println("name=" + name + "  age=" + age);
    18     }
    19 
    20     @DataProvider(name = "data")
    21     public Object[][] ProviderData() {
    22         Object[][] o = new Object[][]{
    23                 {"zhangshan", 10},
    24                 {"lisi", 20}
    25 
    26         };
    27         return o;
    28     }
    29 
    30 
    31     @Test(dataProvider = "methodData")
    32     public void test1(String name, int age) {
    33         System.out.println("test11111方法" + "name=" + name + "  age=" + age);
    34 
    35     }
    36 
    37     @Test(dataProvider = "methodData")
    38     public void test2(String name, int age) {
    39         System.out.println("test22222方法" + "name=" + name + "  age=" + age);
    40 
    41     }
    42 
    43     /**
    44      * DataProvider 运用在方法上,根据方法名进行参数化
    45      *
    46      * @param method
    47      * @return
    48      */
    49     @DataProvider(name = "methodData")
    50     public Object[][] methodDataTest(Method method) {
    51         Object[][] result = null;
    52         if (method.getName().equals("test1")) {
    53             result = new Object[][]{
    54                     {"zhangshan", 10},
    55                     {"lisi", 20}
    56             };
    57         } else if (method.getName().equals("test2")) {
    58             result = new Object[][]{
    59                     {"wangwu", 10},
    60                     {"molin", 20}
    61             };
    62         }
    63         return result;
    64     }
    65 }

    运行结果如下

      C:UsersAdministrator.IntelliJIdea2019.3system	emp-testng-customsuite.xml
    
    test11111方法name=zhangshan  age=10
    
    
    test11111方法name=lisi  age=20
    
    
    
    test22222方法name=wangwu  age=10
    
    
    test22222方法name=molin  age=20
    
    
    
    name=zhangshan  age=10
    
    
    name=lisi  age=20
    
    
    ===============================================
    Default Suite
    Total tests run: 6, Failures: 0, Skips: 0
    ===============================================
    
    
    Process finished with exit code 0

     

  • 相关阅读:
    从跳频技术聊CDMA/WIFI之母海蒂·拉玛传奇的一生
    echarts图表X轴文字过长解决解决方案:根据文字长度自动旋转
    kafka-connect-kudu-sink插件
    mysql8远程连接问题
    zookeeper-3.4.5修改存储1M大小限制
    Java并发之CompletionService详解
    傲视Kubernetes(六):Pod管理及控制器
    傲视Kubernetes(五):注解和命名空间
    Es使用kibana增删改查以及复杂查询
    测试Ik分词器以及增加自己的词汇
  • 原文地址:https://www.cnblogs.com/linxinmeng/p/12593512.html
Copyright © 2011-2022 走看看