zoukankan      html  css  js  c++  java
  • 章节十六、7-DataProviders

    一、当我们的同一个test有多套数据需要进行测试,那么我们就需要用到--》DataProviders

     1 package testclasses1;
     2 
     3 import org.testng.annotations.DataProvider;
     4 import org.testng.annotations.Test;
     5 
     6 public class TestNG_DataProviders {
     7     
     8 /**
     9  * 场景:我们需要使用3组数据对同一个test方法进行测试。
    10  * 解决思路:
    11  * 1、如果我们写3个重复的test。那么就会造成代码冗余,为了提高代码的复用性,我们可以使用testng中的@DataProvider进行数据提供
    12  * 2、首先我们需要写一个可以提高数据的方法,它时一个二维数组类型的,需要返回参数。
    13  * 3、@DataProvider(name="inputs")给该方法加上备注,并命名为“inputs”
    14  * 4、在测试方法testMethod1中引用数据,dataProvider名称必须和提供数据的方法注解名称一致
    15  * */
    16     
    17     @DataProvider(name="inputs")
    18     public Object[][] getData(){
    19         return new Object[][] {
    20             {"苹果","红色"},
    21             {"西瓜","绿色"},
    22             {"桔子","黄色"},
    23         };
    24     }
    25     
    26   @Test(dataProvider="inputs")
    27   public void testMethod1(String input1,String input2) {
    28       System.out.println("Input 1:"+input1);
    29       System.out.println("Input 2:"+input2);
    30   }
    31 }

    运行结果:

    二、如果我们的一个类中有多个测试方法和提供数据的dataprovider,就会比较混乱,所以我们需要然将提供数据的方法和test类分离。

    1、新建一个用于存放测试数据的类

     1 package testclasses1;
     2 
     3 import org.testng.annotations.DataProvider;
     4 
     5 public class TestData {
     6 
     7     @DataProvider(name="inputs")
     8     public Object[][] getData(){
     9         return new Object[][] {
    10             {"苹果","红色"},
    11             {"西瓜","绿色"},
    12             {"桔子","黄色"},
    13         };
    14     }
    15 }

    2、test类

    package testclasses1;
    
    import org.testng.annotations.Test;
    
    public class TestNG_DataProviders {
    
    //    dataProviderClass=TestData.class:用于引用专门存放测试数据的类,格式:dataProviderClass=测试数据类名.class
      @Test(dataProvider="inputs",dataProviderClass=TestData.class)
      public void testMethod1(String input1,String input2) {
          System.out.println("Input 1:"+input1);
          System.out.println("Input 2:"+input2);
      }
    }

    3、运行结果:

    如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。

    内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。

    欢迎关注,转载请注明来源。

  • 相关阅读:
    使用SolrJ生成索引
    olr 性能调优 NO_NORMS
    关于 solr solrconfig.xml 的配置说明
    动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)
    如何将打包好的文件做成一个APP
    vue路由对不同界面进行传参及跳转的总结
    移动端自适应布局的适配
    08年12月到1月15的工作
    继续被reject!
    虽然预料到结果,但还是感觉不爽!
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/11492657.html
Copyright © 2011-2022 走看看