1、从testng.xml传入参数。
如果参数是一些简单的值,可以直接在testng.xml中定义。这也是最常用的一种。
可以在测试用例中给参数一个默认值。这样,即使在xml文件中没有这个变量,你的测试用例还是能以默认值来执行。
参数能出现的地方: @Test, @Before/After or @Factory 
 
2、通过程序来传入参数。
如果需要传递一些复杂的参数,光靠xml方式就不够了。有些时候,测试数据需要通过Java代码来得到(比如从对象中取值或从数据库取值)。在这些场景下,你需要通过Data Provider方式来提供测试数据。这是类中的一个方法,返回对象数组的数组,通过@DataProvider来声明
 
Data Provider 方法返回有两种类型:
- Object[][] 第一维数组是用来存放测试用例被调用的轮次。第二维数组是存放一次调用所需要的参数,参数的类型必需和测试用例中的类型一致。
- Iterator<Object[]> 唯一与上一种方式不同的是,Iterator是延迟创建测试数据的。TestNG调用iterator时,测试方法所需的参数由iterator一个一个返回。 如果你有大量的参数组合需要准备并且不希望一次性在前面全部创建,用这种方式就很合适。
Data Provider 也可以通过java的反射机制,灵活取值 。我的使用场景是这样的:通过Data Provider方法来提供测试数据,但不同环境(如测试,预发环境等)的数据会不一样,这时候我需要根据xml中定义的server变量的值来返回不同的参数。满足一套代码多个环境使用的场景。
 
目前我的测试工程是两种参数提供方法混合使用,像前文提到的server、host之类的,我就在xml文件中定义。但具体的测试用例所需要的数据就通过data provider提供。
 
PS:测试用例中调用的参数会显示在TestNG生成的HTML报告中。

(转)TestNG框架提供两种传入参数的方法:的更多相关文章

  1. 基于axis2框架的两种发布webservice的方法

    这次在中韩的产品定义平台的开发,有幸接触到了通过自己写webservice给其他系统调用的项目. 具体开发背景:这个平台做了几个查询接口都是,都是用servlet方式处理请求,而这边系统之间是通过we ...

  2. SSH简介及两种远程登录的方法

    出处 https://blog.csdn.net/li528405176/article/details/82810342 目录 SSH的安全机制 SSH的安装 启动服务器的SSH服务 SSH两种级别 ...

  3. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

  4. jsp中四种传递参数的方法

    jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...

  5. iOS - UITableView中有两种重用Cell的方法

    UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...

  6. 接口测试中GET和POST两种基本HTTP请求方法的区别

    面试时,可以回答(一般答前4条就行): GET参数通过url传递,POST放在request body中 GET请求在url中传递的参数是有长度限制的,而POST没有 GET比POST更不安全,因为参 ...

  7. C#两种创建快捷方式的方法

    C#两种创建快捷方式的方法http://www.cnblogs.com/linmilove/archive/2009/06/10/1500989.html

  8. HTTP/HTTPS GET&POST两种方式的实现方法

    关于GET及POST方式的区别请参照前面文章:http://www.cnblogs.com/hunterCecil/p/5698604.html http://www.cnblogs.com/hunt ...

  9. 两种ps切图方法(图层/切片)

    两种Ps切图方法 一.      基础操作: a)    Ctrl++ 放大图片,ctrl - -缩小图片 b)    按住空格键space+,点击鼠标左键,拖动图片. c)    修改单位,点击编辑 ...

随机推荐

  1. redis学习一 大体概述

    redis 命令查找:http://doc.redisfans.com/ 1,redis 技术简介以及疑问      redis是一个开源的,内存存储的数据结构服务器.可以用做数据库,高速缓存和消息队 ...

  2. WCF上传大文件处理方法

    <system.serviceModel> <bindings> <basicHttpBind> <Binding name=" maxReceiv ...

  3. leetcode589

    树的先序遍历,使用递归实现. class Solution { public: vector<Node> Tree; void preTree(Node node) { Tree.push ...

  4. docker 笔记(4) Dockerfile 常用的指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...

  5. 导入android studio项目,编译失败

    使用android studio 打开studio 工程,编译的时候报错: “ INFO - .project.GradleProjectResolver - Gradle project resol ...

  6. hibernate学习笔记(2)持久化类测试

    持久化类的创建: 创建一个共有的不带参数的构造方法: public void Students(){ } 创建一个带参数的构造方法: (快捷键创建) 生成get,set方法: *可以不用此方法创建持久 ...

  7. 图片缓存核心类LruCache

    该类类似一个缓存池,具体可参考 http://www.fengfly.com/plus/view-214546-2.html

  8. 动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结

    03,动态参数 *args,**kwargs # 用户传入到函数中的实参数量不定时,或者是为了以后拓展,# 此时要用到动态参数*args,**kwargs(万能参数.)# *args接收的是所有的位置 ...

  9. ZROI2018提高day1t3

    传送门 分析 考场上想到了先枚举p的长度,在枚举这个长度的所有子串,期望得分40~50pts,但是最终只得了20pts,这是因为我写的代码在验证中总是不断删除s'中的第一个p,而这种方式不能解决形如a ...

  10. Luogu 3942 将军令

    之前写那个(Luogu 2279) [HNOI2003]消防局的设立的时候暴力推了一个树形dp,然后就导致这个题不太会写. 贪心,先把树建出来,然后考虑按照结点深度排个序,每次取出还没有被覆盖掉的深度 ...