提供数据的一个测试方法。注解的方法必须返回一个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. JS实现轮播图特效(带二级导航)

    按照国际惯例先放效果图 index.html <!DOCTYPE html> <html lang="en"> <head> <meta ...

  2. lvs使用进阶

    之前lvs基础篇(https://www.cnblogs.com/ckh2014/p/10855002.html)中介绍了lvs-dr的搭建,下面我们再复习一下,架构如下: 相关配置 director ...

  3. array every

    every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试.它返回一个布尔值.

  4. 安装Ansible到CentOS(YUM)

    运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:ansible 硬件要求:无 安装过程 1.安装YUM-EPEL源 HTTP-Tools软件包由 ...

  5. LaTeX技巧001:LaTeX中输入大小写罗马数字

    \uppercase\expandafter{\romannumeral20} \romannumeral20 前者将输入大写罗马数字20, 后者将输入小写罗马数字20.

  6. 题解【AcWing1090】绿色通道

    题面 题目要求出最长的空题段最短的长度,显然可以二分答案. 考虑如何 check. 设二分到的值是 \(x\),即最长的空题段长度至少为 \(x\). 其实整个 check 的过程可以看作一个 DP, ...

  7. JavaScript:JSON对象

    一.JSON对象概念 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScri ...

  8. jQuery 滚动条和浏览器窗口事件

    滚动条事件 // 实时监听元素的滚动事件 $(window).scroll(function(){ ... }); $(window).scrollLefft(); // 获取滚动条位置 $(wind ...

  9. Ajax基础原理与应用

    Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var handleResponse = func ...

  10. LaTeX技巧012:LaTeX 插图加载宏包

    LaTeX 插图加载宏包.支持 LaTeX - DVIPDFMx; pdfLaTeX; XeLaTeX 三种编译方式,支持 eps/pdf/jpg/png 等图片格式. % Put this snip ...