六、TestNG传递参数1
TestNG可以通过testng.xml和Data Providers向测试方法传递参数
利用testNG.xml传递参数
1-创建一个TestNG测试类
其中 parameters = {"xml-file","hostname"} 使用来接受参数的,因为有两个值所以有两个参数
package com.lc.testChuanCan;
import org.testng.annotations.Test;
public class testNG05 {
@Test(parameters = {"xml-file","hostname"})
public void testNG05_01(String xmlfile,String hostname) {
System.out.println("我是testNG05 类的testNG05——01方法,\n我传递参数是\nxml-file:"+xmlfile+"\nhostname:"+hostname);
}
}
2-创建一个TestNG.xml文件
设置参数标签
<parameter name="xml-file" value="accounts.xml"></parameter>
<parameter name="hostname" value="arkonis.example.com"></parameter>
标签:parameter
anme:相当于key ,变量名称;对应TestNG测试类的 parameters = {"xml-file","hostname"} 里面参数名称,名字要一样
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<parameter name="xml-file" value="accounts.xml"></parameter>
<parameter name="hostname" value="arkonis.example.com"></parameter>
<test name="Test">
<classes>
<class name="com.lc.testChuanCan.testNG05"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
parameter也可在<test></test>里面添加参数
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--在测试suit里添加参数;在这里面添加的参数测试类都可以引用;但在test添加的参数上一级不可以使用-->
<suite name="Suite" parallel="none">
<parameter name="xml-file" value="accounts.xml"></parameter>
<parameter name="hostname" value="arkonis.example.com"></parameter>
<test name="Test">
<classes>
<class name="com.lc.testChuanCan.testNG05"/>
</classes>
</test> <!-- Test -->
<!-- 在test里添加参数 testKey-->
<test name="test01">
<parameter name="testKey" value="我是test标签里面的参数"></parameter>
<classes>
<class name="com.lc.testChuanCan.testNG6"></class>
</classes>
</test> </suite> <!-- Suite -->
package com.lc.testChuanCan;
import org.testng.annotations.Test;
public class testNG6 {
//testKey参数是在test配置的,hostname是在suite里添加的都可以引用
@Test(parameters = {"testKey","hostname"})
public void textNG06_01(String testKey,String hostname) {
System.out.println("我是testNG05 类的testNG06——01方法,\n我传递参数是\ntestKey:"+testKey+"\nhostname:"+hostname);
}
}
传递参数注释也是使用下面方式
package com.lc.testChuanCan; import org.testng.annotations.Parameters;
import org.testng.annotations.Test; public class testNG6 { //方式一
@Test(parameters = {"testKey","hostname"})
public void textNG06_01(String testKey,String hostname) {
System.out.println("我是testNG6 类的testNG06——01方法,\n我传递参数是\ntestKey:"+testKey+"\nhostname:"+hostname);
System.err.println("-----------------------------");
}
//方式二
@Parameters({"testKey","hostname"})
@Test
public void textNG06_02(String testKey,String hostname) {
System.out.println("我是testNG6 类的testNG06——02方法,\n我传递参数是\ntestKey:"+testKey+"\nhostname:"+hostname);
}
}

使用testNG.xml传参存在一定的局限性:
例如只能传输java的基础数据类型,
第二种方式传值 @Parameters annotation传递参数
1-使用@DataProvider(name = "reange-provider") 定义一个存储数据的方法
2-在测试方法中使用 @Test(dataProvider = "reange-provider") 引用数据。
package com.lc.testChuanCan; import java.util.HashMap;
import java.util.Map; import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; public class testNG07 { @Test(dataProvider = "reange-provider")
public void testNG07_01(int n,int lower,int upper,boolean expected) {
System.out.println("n:"+n+";lower:"+lower+";upper:"+upper+";expected:"+expected);
} @DataProvider(name = "reange-provider")
public Object[][] rangeData(){
int lower = 5 ;
int upper = 10 ; return new Object[][] {
{lower-1,lower,upper,false},
{lower,lower,upper,true},
{lower+1,lower,upper,true},
{upper,lower,upper,true},
{upper+1,lower,upper,false}, };
}
}
六、TestNG传递参数1的更多相关文章
- pyspider示例代码六:传递参数
传递参数 示例一 #!/usr/bin/env python # -*- encoding: utf- -*- # vim: ts= sts= ff=unix fenc=utf8: # Created ...
- 七、TestNG传递参数2
数据提供者本身可以接受两个类型的参数:Method和ITestContext 在创建@DataProvider方法是可以有四种格式如图: 第一种在上一篇中有学到 1-Methode参数使用 @Data ...
- Jenkins参数化构建(一)之 Maven Command Line传递TestNG构建参数
1. Maven使用 -D参数名称 将参数传递至所运行项目 Maven指定TestNg.xml文件 clean test -DsuiteXmlFile=src/main/resources/testn ...
- TestNG使用@Parameter给要测试的方法传递参数
当需要测试的方法含有参数时,可以通过@Parameters 注解给该方法传递参数. 比如下面这个类,要调用whoami则必须写一个main函数,然后在main函数中调用该函数,并传入参数,使用Test ...
- Spring MVC(六)--通过URL传递参数
URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...
- Delphi过程函数传递参数的八种方式
今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...
- 【WebApi系列】详解WebApi如何传递参数
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...
- Delphi过程函数传递参数的几种方式
Delphi过程函数传递参数的几种方式 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...
- Activity传递参数——传递自定义数据类型
一.新建一个空的工程 二.在主界面中添加一个按钮 三.新建一个空的activity,并命名为TheAty 四.新建一个user类 //注意这里要实现Serializable,不然在传递参数时会出错 p ...
随机推荐
- python程序基础
高级程序设计语言包括Python.C/C++.Java等 低级程序设计语言包括汇编语言和机器语言 Python是一种解释型语言,但为了提高运行效率,Python程序在 执行一次之后会自动生成扩展名 ...
- vector删除特定元素
删除vector中小于20的元素,注意要使迭代器失效,不能简单的删除. #include <iostream>#include <vector>using namespace ...
- 基于Pycharm的Python开发环境配置
基于Pycharm的Python开发环境配置 编辑于2020-11-18 Python安装 双击桌面的Python3.x安装包. 勾选Add to path. 方便起见,选择Install now.下 ...
- 3dmax利用静止静态对象功能,制作精准击碎效果
一般情况下,当我们在3D建模中使用RayFire破碎插件来制作一些精准击碎效果时,需要将物体的击中部分定义为休眠对象,将其他未击中的部分定义为静态对象,以实现击中部分出现碎片的效果.但这种方式必须精准 ...
- 使用iOS 设备管理器 iMazing导出苹果设备中的录音文件
iMazing是一款功能强大的苹果设备管理软件,能为用户提供便捷的录音文件导出功能.用户可以直接将录音文件从苹果设备中导出,接下来,就让小编为大家演示一下如何操作吧. 图1:iMazing界面 1.打 ...
- php bypass disable_function 命令执行 方法汇总简述
1.使用未被禁用的其他函数 exec,shell_exec,system,popen,proc_open,passthru (python_eval?perl_system ? weevely3 wi ...
- 宝塔Linux面板安装
宝塔linux6.0版本是基于centos7开发的,务必使用centos7.x 系统 提示:Centos官方已宣布在2020年停止对Centos6的维护更新,各大软件开发商也逐渐停止对Centos6的 ...
- 聊聊 传统IO和网络IO
IO 模型 传统 IO读写 磁盘IO主要的延时是由(以15000rpm硬盘为例): 机械转动延时(机械磁盘的主要性能瓶颈,平均为2ms) + 寻址延时(2~3ms) + 块传输延时(一般 ...
- 【mq读书笔记】mq索引文件刷盘
索引文件的刷盘并不是采取定时刷盘机制,而是每更新一次索引文件就会将上一次的改动刷写到磁盘. 同步刷盘: GroupCommitRequest将被提交到GroupCommitService线程,Grou ...
- HPSocket介绍与使用
一.HPSocket介绍 HP-Socket是一套通用的高性能TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP/HTTP通信系 ...