提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象 []的测试方法的参数列表中可以分配。该@Test 方法,希望从这个 DataProvider 的接收数据,需要使用一个 dataProvider 名称等于这个注解的名字。
 
 
返回Object[][]
(1)直接给定测试数据 
         @DataProvider( name= "user")
                    public Object[][] user(){
                    return new Object[][]{
                              { "", "", "账号不能为空" },
                              { "admin"," " ,"密码不能为空" },
                              { " ", "a123456","账号不能为空" },
                              { "ad ", "123456","账号“ad”不存在" },
                              { "admin","12345" ,"密码错误" },
                    };
           }
----------
@Test(dataProvider ="user" )
  public void testEcafeLogin(String userName,  String passWord, String expectText) {
                   loginPageClass loginpage = new loginPageClass();
                    loginpage. load();
                    loginpage. login( userName, passWord);
                    Assert. assertEquals(loginpage.getString(), expectText);
                    loginpage. logout();
          }     
 
(2)或读取CSV文件

@DataProvider(name="testData") //使用注解DataProvider,将数据集合命名为“testData”
         public Object[][] words() throws IOException{
         return getTestData("D:\\testData.csv");

}

          
   DataProvider返回的是一个Object的二维数组,二维数组中的每个一维数组都会传递给调用函数 @Test,作为参数使用
(1)@Test标识的test method被执行的次数和object[][]包含的一维数组的个数是一致的
(2)@Test标识的函数的参数个数,也和object内一维数组内的元素数是一致的。
 
   
 
 
 

(1)在test方法中指明DataProvider:   如果DataProvider有指明name值,那么在test中使用name,

@DataProvider(name="testData")

.....

@Test(dataProvider ="testData" )

.....

(2)在test方法中指明DataProvider:   如果没有名字,使用对应的方法名

@DataProvider()

public Object[][] user(){  }

....

@Test(dataProvider ="user" )

 

(3)另外如果DataProvider和Test方法不再同一类中,如下指明

否则执行的时候会Skip该方法,有报错提示“......requires a @DataProvider named : dataprovider2”,并且数据类里的方法必须声明为static,不然也提取不了数据: 
 
测试类:
 
数据类:

 @DataProvider

public static Object[][] NoNameMethod(){ }

 

2.12 使用@DataProvider的更多相关文章

  1. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  2. Python Standard Library

    Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...

  3. 在mybatis中写sql语句的一些体会

    本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...

  4. TestNG中DataProvider的用法二:简单的数据驱动

    @DataProvider标记的方法除了可以返回数组外,还可以返回一个Iterator,这样的好处是不用把所有的测试数据都加载到内存中,而是需要的时候就读一条. 下面的例子就使用了Iterator,然 ...

  5. TestNG中DataProvider的用法一

    目录 为什么要使用DataProvider DataProvider的常规用法 带Method参数的DataProvider 带ITestContext的DataProvider DataProvid ...

  6. AndroidStudio — Error:Failed to resolve: junit:junit:4.12错误解决

    原博客:http://blog.csdn.net/u013443865/article/details/50243193 最近使用AndroidStudio出现以下问题: 解决:打开app下的buil ...

  7. 读过MBA的CEO更自私?《哈佛商业评论》2016年第12期。4星

    老牌管理杂志.每期都值得精度.本期我还是给4星. 以下是本书中的一些内容的摘抄: 1:他们发现在Airbnb上,如果客人姓名听起来像黑人,那么比名字像白人的客人的接受率会低16%.#45 2:对立组织 ...

  8. 12个小技巧,让你高效使用Eclipse

    集成开发环境(IDE)让应用开发更加容易.它们强调语法,让你知道是否你存在编译错误,在众多的其他事情中允许你单步调试代码.像所有的IDE一 样,Eclipse也有快捷键和小工具,这些会让您感觉轻松许多 ...

  9. 第12章 Linux系统管理

    1. 进程管理 1.1 进程查看 (1)进程简介 进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的作用 ...

随机推荐

  1. 松软科技课堂:jQuery 效果 - 滑动

    jQuery 滑动方法 通过 jQuery,您可以在元素上创建滑动效果. jQuery 拥有以下滑动方法: slideDown() slideUp() slideToggle() jQuery sli ...

  2. JAVA方法中参数到底是值传递还是引用传递

    当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递? 答:是值传递.Java 语言的参数传递只有值传递.当一个实例对象作为参数被传递到方法中时,参 ...

  3. 开学第一课Java考试

    package moguiba;import java.text.DecimalFormat;import java.util.Scanner;import moguiba.ScoreInformat ...

  4. SurfaceView 与view区别详解

    SurfaceView 与view区别详解 https://blog.csdn.net/u011339364/article/details/83347109 2018年10月24日 17:20:08 ...

  5. RHEL 8 安装 Oracle 19c 注意问题

    RedHat Enterprise Linux 8 版本静默安装 Oracle 数据库软件时,需注意的问题 来自博客园AskScuti 1. 提示缺少库文件 libnsl.so.1 2. 因着OS版本 ...

  6. Winfom递归绑定树节点

    /// <summary> /// 绑定树节点 /// </summary> /// <param name="pid"></param& ...

  7. 禁止PotPlayer自动添加同一目录内连续文件

    问题描述 默认情况下PotPlayer会自动向播放列表添加相似文件 统一目录下大量连续文件会被同时加载 解决办法 参数选项-基本-基本设置-相似文件策略 设置为仅打开选定的文件

  8. Appium appium 通过 adb 无线连接 Android 真机

    一.准备工作 1.准备一台或多台Android设备(如小米,华为),开启USB调试2.Android设备与电脑(Mac或者Windows)在同一个局域网内3.电脑安装好ADB工具 二.具体步骤 1.使 ...

  9. 通过Process启动外部程序

    #region Process //声明一个程序类 System.Diagnostics.Process Proc; try { //声明一个程序信息类 System.Diagnostics.Proc ...

  10. RN开发-JSX基础语法

    1.环境        react.js        react-dom.js        browser.min.js(解码器)        2.载入方式        内联.外联       ...