六、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 ...
随机推荐
- 使用Feign发送HTTP请求
使用Feign发送HTTP请求 在往常的 HTTP 调用中,一直都是使用的官方提供的 RestTemplate 来进行远程调用,该调用方式将组装代码冗余到正常业务代码中,不够优雅,因此在接触到 Fei ...
- ATM管理系统(三)
一.作业信息 博客班级 软件工程 作业要求 作业要求 作业目标 你理解的作业目标具体内容 学号 3180701218 二.题目要求 编写一个ATM管理系统,语言不限,要求应包括以下主要功能:(1)开户 ...
- 打包错误:Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (default) on project MusicProject: wrap: org.apache.commons.exec.ExecuteException:
错误:Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (default) on project Mus ...
- MyBatis学习02
3.增删改查实现 select select标签是mybatis中最常用的标签之一 select语句有很多属性可以详细配置每一条SQL语句 SQL语句返回值类型.[完整的类名或者别名] 传入SQL语句 ...
- TCP的ACK机制
下面是整个的tcp的三次握手和四次挥手的协议 TCP四次挥手 在客户端先发送一个FIN的包,表示要close(),客户端想和连接断开,发完之后出于FIN_WAIT_1状态下:服务端收到之后就变成CLO ...
- 用大白话讲大数据HBase,老刘真的很用心(1)
老刘今天复习HBase知识发现很多资料都没有把概念说清楚,有很多专业名词一笔带过没有解释.比如这个框架高性能.高可用,那什么是高性能高可用?怎么实现的高性能高可用?没说! 如果面试官听了你说的,会有什 ...
- Ubuntu16.04配置静态ip
1.安装好ubuntu16.04虚拟机之后,首先按照下图的步骤进行: 首先需要打开虚拟网络编辑器,点击VMnet8的虚拟网卡,如果没有这个网卡,只需在编辑虚拟机设置里面将网络适配器类型改为NAT模式, ...
- laradock使用问题汇总
laradock简介 一套完整的基于Docker的PHP开发环境.包含了预先打包的Docker镜像,所有预先配置都是为了提供一个完美的PHP开发环境(中文文档).PS: 不是最新版的 windows1 ...
- LeetCode双周赛#35
1589. 所有排列中的最大和 #差分 #贪心 题目链接 题意 给定整数数组nums,以及查询数组requests,其中requests[i] = [starti, endi] .第i个查询求 num ...
- C语言讲义——二维数组
二维数组,又称为矩形数组 可以不太准确地理解为"数组的数组" 也可以认为是一个表格 然而内存中并不是表格存储: 二维数组的初始化 第一维度可以省略 所有元素可以写在一个花括号中,计 ...