您现在的位置是:首页 > 正文

章节十六、7-DataProviders

2024-01-30 23:24:53阅读 0

一、当我们的同一个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基础开始。

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

转载于:https://www.cnblogs.com/luohuasheng/p/11492657.html

网站文章

  • 靶机渗透之FourAndSix2(二)

    靶机渗透之FourAndSix2(二)

    一、环境准备一台kali,一台FourAndSix2,能相互ping通二、靶机发现1.主机发现,用kali扫描靶机ip地址为192.168.19.156nmap -sP 192.168.19.0/24...

    2024-01-30 23:24:46
  • solr replication原理探究

    solr replication原理探究

    【转载至http://sbp810050504.blog.51cto.com/2799422/1423199】无论是垂直搜索,还是通用搜索引擎,对外提供搜索服务其压力都比较大,经常有垂直电商在做活动的时候服务器宕机。对面访问压力比较大的情况,一般的应对方法就是【集群】+【负载均衡】。Solr提供了两种解决方案来对应访问压力。其一是Replication,其一是SolrCloud

    2024-01-30 23:24:17
  • ORACLE运行的数据库突然连接报“无监听程序”

    ORACLE运行的数据库突然连接报“无监听程序”

    远程:用远程的数据库连接工具用localhost可以连接,用ip地址除127.0.0.1不可连接。 可能是日志文件满了,解决办法如下: 第一步:关闭数据库监听程序【任务管理器--》服务--》右键停止服...

    2024-01-30 23:24:09
  • ARM  CPSR (Current Program Status Register)

    ARM CPSR (Current Program Status Register)

    2024-01-30 23:24:02
  • 远程调用debug

    远程调用debug

    这里写自定义目录标`在这里插入代码 org.springframework.boot spring-boot-maven-plugin -Xdebug -Xrunjdwp:transport=dt_s...

    2024-01-30 23:23:33
  • iOS-最全的App上架教程

    文章出处:http://www.cocoachina.com/appstore/20160708/16990.html

    2024-01-30 23:23:26
  • 三人三鬼过河问题

    三人三鬼过河问题: 三个人和三个鬼在河边,都想要到河的对岸去;河边有一只船,只能搭载两个人、或者两个鬼、或者一人一鬼;如果在岸上或者在船上,鬼的数目多于人的数目,鬼就会把人吃掉。 怎样安排人和鬼的组合上船过河,才能使三个人和三个鬼都安全到河的对岸去呢? 程序思路: 人鬼过河问题实际上可以考虑为状态之间的迁移,或者是构建一个有向图,然后在图中寻找可行的路径。 我们把当前岸边作为左岸,河的对

    2024-01-30 23:23:20
  • RSA公钥/私钥/签名工具包

    package com.example.demo.utils;import org.apache.commons.codec.binary.Base64;import org.springframew...

    2024-01-30 23:22:49
  • 软件项目的开发的时间视乎永远都不够用

    从大学毕业到现在已经5年了,在这5年的时间里一直没有离开过软件行业,也一直在做ERP系统的开发,设计和管理工作。 在此期间经历了3家公司包括现在这家,这3家公司性质各不相同,第一家是日企,第二家是国内私人企业,现在所在的这家是一家新加坡企业。虽然企业的文化及背景差异很大,但是对于我们这些IT从业者来说,感觉在项目工作上的时间总是被压的很紧。...

    2024-01-30 23:22:42
  • 浅谈-计算机加电后的启动过程(一)

    加载BIOS 当PC的电源打开后, 80x86结构的CPU将自动进入实模式.并且CPU的 cs:ip 寄存器被强制初始化为 0xF0000 : 0xFFF0. 先抛出来个问题, 为什么 cs:ip 寄...

    2024-01-30 23:22:35