数据提供者本身可以接受两个类型的参数: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. Python 调用Get接口

    import requests,jsonurl = 'http://localhost:30627/api/jobs/GetNuberId?id=2'req = requests.get(url)re ...

  2. 【Kubernetes学习笔记】-服务访问之 IP & Port & Endpoint 辨析

    目录 不同类型的IP Pod IP Cluster IP 不同类型的Port port nodePort TargetPort containerPort hostPort Endpoint Endp ...

  3. JWT(JSON Web Token)入门

    简介 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案 一.跨域认证的问题 互联网服务离不开用户认证.一般流程是下面这样. 1.用户向服务器发送用户名和密码. 2.服务器验证 ...

  4. pikachs 渗透测试2-XSS漏洞及利用

    一.概述 XSS(跨站脚本)概述 Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XS ...

  5. 如何用MathType 7输入连续几个数的和

    在数学的学习中,我们经常需要使用求和符合来求连续几个数的和,那么作为专业的公式编辑器,如何输入连续几个数的求和呢? 具体步骤如下: 步骤一 打开专业的公式编辑软件MathType 7,用鼠标点击上方的 ...

  6. 下载器Folx的创建种子功能怎么使用

    当我们想要分享一些自己制作的资源时,可以使用Folx的创建种子功能,在网络上分享种子,供他人下载,这个过程也被称为做种.作为种子创建者,需要在一定时间内保持做种进程,以便维持种子的生命期限,方便他人下 ...

  7. js控制某个div在页面加载完成5秒后隐藏

    <div id="k">测试</div><script>setTimeout("document.getElementById('k' ...

  8. High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis

    论文来源:CVPR 2017 摘要 之前方法的缺点:之前的方法是基于语义和上下文信息的,在填充较大holes的表现得很好,能够捕获更高级的图像特征,但是由于内存限制和难以训练网络的因素,只能处理分辨率 ...

  9. sqli-labs-master less01

    注:如未接触过sql注入,建议观看前期知识点文章 https://www.cnblogs.com/yyd-sun/p/12256407.html 第一关步骤 一.判断注入类型(数字/字符) (1).h ...

  10. 在运行tsc编译.ts文件时,“因为在此系统上禁止运行脚本” 怎么解决?

    tsc : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https:/go.m ...