六、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 ...
随机推荐
- API的使用(3)Arrays 类,Math类,三大特性--继承
Arrays类 概述 java.util.Arrays此时主要是用来操作数组,里面提供了很多的操作API的方法.如[排序]和[搜索]功能.其所有的方法均为静态方法,调用起来非常简单. 操作数组的方 ...
- [web安全原理分析]-SSRF漏洞入门
SSRF漏洞 SSRF漏洞 SSRF意为服务端请求伪造(Server-Side Request Forge).攻击者利用SSRF漏洞通过服务器发起伪造请求,就这样可以访问内网的数据,进行内网信息探测或 ...
- centos6 安装和配置PHP 7.0
2015年12月初PHP7正式版发布,迎来自2004年以来最大的版本更新.PHP7最显著的变化就是性能的极大提升,已接近Facebook开发的PHP执行引擎HHVM.在WordPress基准性能测试中 ...
- SpringIOC的高级特性
目录 1. lazy-Init延迟加载 1.1 XML方式开启延迟加载: 1.2 注解开启延迟加载: 1.3全局配置--default-lazy-init="": 应用场景: 2. ...
- 如何使Camtasia的抠像效果更真实自然
相信大家都知道录像编辑软件Camtasia的"移除颜色"可以抠像换背景,详细操作可以看小编的另一篇教程 <如何用Camtasia为微课换上一个好看的背景>.接下来,小编 ...
- 看完这篇还不会 Elasticsearch 搜索,那我就哭了!
本文主要介绍 ElasticSearch 搜索相关的知识,首先会介绍下 URI Search 和 Request Body Search,同时也会学习什么是搜索的相关性,如何衡量相关性. Search ...
- 接入twitter第三方登陆接口遇到的一个问题
本地开了 Shadowsocks,然后postman模拟的twitter的接口是请求成功的,然后用php-curl去请求网址,出现以下错误 Failed to connect to api.twitt ...
- Shamir秘密共享方案 (Python)
Shamir's Secret Sharing scheme is an important cryptographic algorithm that allows private informati ...
- C语言讲义——传值、传引用
传值 值类型在做参数的时候,函数内使用的是实参的副本. 函数执行完毕后,即使函数内对参数做了修改,调用方的参数还是原来的值. #include <stdio.h> // 值调用 void ...
- Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./pr ...