数据提供者本身可以接受两个类型的参数:Method和ITestContext

在创建@DataProvider方法是可以有四种格式如图:

第一种在上一篇中有学到

1-Methode参数使用

@DataProvider 使用 java.lang.reflect.Method 作为第一个参数,TestNG 会把当前的测试方法当成参数传给第一个参数。

这样不同测@test测试方法可以调用不同的测试数据

package com.lc.testChuanCan02;

import java.lang.reflect.Method;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; public class testNG10 { @DataProvider(name = "data1")
public Object[][] testNG10_01(Method method) {
Object[][] data01 = null;
//method.getName()的值是@test测试方法的名称
if(method.getName().equals("testNG10_02")) {
data01 = new Object[][] {{"我是测试方法a","我是测试方法a"}};
}else if(method.getName().equals("testNG10_03")) {
data01 = new Object[][] {{"我是测试方法b","我是测试方法b"}};
} return data01;
} @Test(dataProvider = "data1")
public void testNG10_03(String name1,String name2) {
System.out.println("name1:"+name1+";name2:"+name2); }
}

2-ITestContext参数

给数据提供者提供ITestContext参数像是吧@test方的所在组提供给他;要配合txtng.xml文件使用。

下面是 @DataProvider 数据提供者如果 组名是functional-test( group.equals("functional-test")) 则随机生成10随机数给他测试方法,如果不是就提供2个随机数

package com.lc.testChuanCan02;

import java.util.List;
import java.util.Random; import org.testng.ITestContext;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; public class testNG11 { @DataProvider
public Object[][] randomIntegers(ITestContext context){ String[] groups = context.getIncludedGroups(); int size = 2 ; for(String group : groups) {
System.out.println("group=="+group);
if(group.equals("functional-test")) {
size = 10 ;
break;
}
} Object[][] result = new Object[size][];
Random r = new Random(); for(int i = 0 ; i < size ; i++) {
result[i] = new Object[] {new Integer(r.nextInt())};
}
return result; } @Test(dataProvider = "randomIntegers",groups = {"unit-test","functional-test"})
public void random(Integer n) {
System.out.println("n="+n);
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test">
<groups>
<run>
<include name="functional-test"></include>
</run>
</groups>
<classes>
<class name="com.lc.testChuanCan02.testNG11"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

七、TestNG传递参数2的更多相关文章

  1. 六、TestNG传递参数1

    TestNG可以通过testng.xml和Data Providers向测试方法传递参数 利用testNG.xml传递参数 1-创建一个TestNG测试类 其中 parameters = {" ...

  2. Jenkins参数化构建(一)之 Maven Command Line传递TestNG构建参数

    1. Maven使用 -D参数名称 将参数传递至所运行项目 Maven指定TestNg.xml文件 clean test -DsuiteXmlFile=src/main/resources/testn ...

  3. TestNG使用@Parameter给要测试的方法传递参数

    当需要测试的方法含有参数时,可以通过@Parameters 注解给该方法传递参数. 比如下面这个类,要调用whoami则必须写一个main函数,然后在main函数中调用该函数,并传入参数,使用Test ...

  4. 第七章 路由 75 路由传参-使用query方式传递参数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  5. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  6. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  7. Activity传递参数——传递自定义数据类型

    一.新建一个空的工程 二.在主界面中添加一个按钮 三.新建一个空的activity,并命名为TheAty 四.新建一个user类 //注意这里要实现Serializable,不然在传递参数时会出错 p ...

  8. delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数

    //delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,whi ...

  9. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

随机推荐

  1. Elementary OS安装及开发环境配置(一)

    前言 假期在家无聊,刚好把六年前的一台笔记本电脑利用起来,原来电脑虽然说配置说不上古董机器,但是运行win系统感觉还是不流畅,所幸给换成Linux桌面版系统,在网上查阅了很多,Linux桌面系统要么推 ...

  2. BurpSuite 抓安卓app包

    认准夜神安卓模拟器,下了几个其他的模拟器都没有代理的功能 一.夜神安卓模拟器设置代理 1.点击右下角的设置 2.点击设置,进入到WIFI连接选项 3.进入列表后,鼠标点击wifi位置,长按左键,会出现 ...

  3. 【转】AWVS扫描小技巧

    1.文件头加 Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) 可以绕过狗,waf ...

  4. bWAPP----iFrame Injection

    iFrame Injection 直接上代码 1 <div id="main"> 2 3 <h1>iFrame Injection</h1> 4 ...

  5. IDEA创建WebService服务端与客户端

    创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 Tools 的 ...

  6. 听法国设计师大卫·维森特讲述他与CorelDRAW的渊源

    在这次采访中,我们采访了法国插画家兼平面设计师大卫·维森特(David Vicente),他的特殊风格与Old-School美学,尤其是疯狂摇滚派有着密切的联系.在他精心制作的插图中,充满了细节和强烈 ...

  7. 用Camtasia来快速给录制的视频添加水印

    在日常生活中,视频的流行度越来越高,各种短视频的软件蜂拥上市,所以越来越多的人走上了自媒体的道路,在这条路上,谁的视频更加的精致,谁才能获得更多的关注度,相应的也能增加自己的人气. 但是在制作视频的过 ...

  8. MathType中如何输入正、余弦函数

    MathType是一款强大的数学公式编辑器,正.余弦函数也是中学中非常重要的一节知识点,今天我们介绍一下在MathType中怎么输入正.余弦函数. 具体步骤如下: 步骤一 打开专业的公式编辑软件Mat ...

  9. 如何用Camtasia将喜欢的视频做出复古的感觉

    不知道各位可有看老电影的习惯,我个人觉得一些老电影那种别具一格的画面感是非常吸引人的韵味,尽管其色彩不是很鲜艳,但是这种黑白的感觉,对于现在的我们,往往有着不一样的吸引力.于是,我就尝试着用Camta ...

  10. JUC并发工具包之CyclicBarrier

    1.简介 CyclicBarrier是一个同步器,允许多个线程等待彼此直到达一个执行点(barrier). CyclicBarrier都是在多个线程必须等到彼此都到达同一个执行点后才执行一段逻辑时才被 ...