TestNG的测试方法中可以传入参数,而参数的来源有两种方法:xml中设置和自定义方法生成,下面给出例子。
1、tesgng.xml中设置
<code="java">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="zhanglutest" verbose="2" parallel="tests" thread-count="2">
<test name="testcase1">
<parameter name="name" value="zhanglu"></parameter>
<parameter name="age" value="22"></parameter>
<classes>
<class name="com.propertiesfile.WaybillSelect"></class>
</classes>
</test>
</suite>
测试方法中调用:
package com.propertiesfile;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class WaybillSelect {
@Test
@Parameters({"name","age"})
public void test2(String name,int age) {
System.out.println("name is:"+name+",age is:"+age);
}
}
</code>
2、通过DataProvider自定义
下面的代码演示了一个参数和多个参数的情况,以及参数类与测试方法不在同一个类中的调用。
<code="java">
参数生成类:
package com.classes.test;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class ClassTest {
@DataProvider(name="twoParam")
public Object[][] paramTwo(){
Object[][] aa = new Object[][] {
{"zhangsan",22},
{"lisi",25},
{"wangwu",30}
};
return aa;
}
@DataProvider(name="fourParam")
public Object[][] paramFour(){
Object[][] aa = new Object[][] {
{"zhangsan",20,"china",160},
{"lisi",25,"english",180}
};
return aa;
}
}
测试方法类:
package com.moneyselect;
import com.classes.test.ClassTest;
import org.testng.annotations.*;
public class MoneySelectTest {
@Test(dataProvider="oneParam")
public void test1(int money) {
System.out.println("I have "+money+" yuan");
}
@DataProvider(name="oneParam")
public Object[] providermethod() {
Object[] a = new Object[]{100,20,30};
return a;
}
@Test(dataProvider="twoParam",dataProviderClass=ClassTest.class)
public void test2(String name,int age) {
System.out.println("My name is:"+name+",i am "+age+" years old");
}
@Test(dataProvider="fourParam",dataProviderClass=ClassTest.class)
public void test3(String name,int age,String national,int weight) {
System.out.println("My name is "+name+",i am "+age+" years old,i come from "+national+",my weight is "+weight+" cm");
}
}
testng.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="zhanglutest" verbose="2" parallel="tests" thread-count="2">
<test name="testcase1">
<classes>
<class name="com.moneyselect.MoneySelectTest"></class>
</classes>
</test>
</suite>
</code>
运行结果如下:
I have 100 yuan
I have 20 yuan
I have 30 yuan
My name is:zhangsan,i am 22 years old
My name is:lisi,i am 25 years old
My name is:wangwu,i am 30 years old
My name is zhangsan,i am 20 years old,i come from china,my weight is 160 cm
My name is lisi,i am 25 years old,i come from english,my weight is 180 cm
分享到:
相关推荐
仅仅用于初学者交流,意在与自动化测试初学者进行相互学习交流,简单的实现了java+selenium+testng参数化打开百度搜索
selenium3+java+Maven+TestNG+ReportNG+Excel自动化参数测试框架源码
其实这个next generation 也只是相对于Junit 3.8这个版本,在这个版本发布5年之后,从TestNG中借鉴了许多概念的Junit 4才发行,所以了解TestNG同样有助于学习Junit及Unit系列的众多分支。 软件开发是一项风险事业...
经历了漫长的各种资料,终于把selenium+testng参数化的问题搞定了!可能网上能找到一些,但是这些都是自己的经历。本文主要介绍了关于docker利用selenium+testng实现web自动化的相关内容,下面话不多说了,来一起看...
TestNG是一个开源的自动化测试框架,它受JUnit框架启发而实现的,TestNG可以让开发者和测试者能够通过简单的注解、分组、指定顺序、参数化就可以编写更加灵活、更加强大的测试用例。 TestNG可以跟web自动化框架...
TestNG官方文档,英语不好的亲们可以看看。。 对TestNG的详细介绍,包括参数化,安装,实现,以及组件的使用
Learn_TestNG_basicsToAdvanced_RS 测试框架-如何使用TestNG...从TestNG xml文件进行参数化 DataProvider批注-参数化测试用例-1 数据提供者注释-参数化测试用例2 TestNG框架中的侦听器接口 并行运行测试并生成报告
表面上的相似依赖性测试失败和重运行参数化测试高级参数化测试为什么只选择其一?JUnit4具有基于注释的新框架,它包含了TestNG一些最优异的特性。但这是否意味着JUnit4已经淘汰了TestNG?AndrewGlover探讨了这两种...
Feed4TestNG使得使用从文件(CSV或Excel)导入或生成的数据轻松编写和提供参数化的TestNG测试。
当我们在使用TestNG时,发现它有一个非常好用的参数化功能。当你的测试用例有固定的参数和断言结果时,它可以相似用例的节省用例的个数。 例子如下: import static org.testng.Assert.assertEquals; import org....
与参数化运行器相比,它的主要优势在于,它可以与任何其他运行器一起使用(例如,如果您正在为 Android 编写测试,则可以与 Robolectric 运行器一起使用)。 博文: ://mikinw.blogspot.co.uk/2013/04/parametrized...
使用Selenium,cumul-java,testng,maven,phantomjs的行为驱动的开发自动化框架 使用的工具和技术: 语言:Java 8 测试框架:Testng BDD框架:Cucumberjvm 自动化工具:Selenium Webdriver 构建工具:Maven ...
需要大家注册一下免费的企业微信,然后将其中的corpid和通讯录corpsecret填充进testng.xml的参数中,再运行即可测试成功自己的企业微信! Java java当前最主流的替代开发语言,目前做自动化主要是两大阵营java和...
TestNG数据驱动提供的参数化让我们在测试项目可以灵活根据需求建立不同的dataprovider来提供数据,而真正实现数据,页面,测试彼此独立而又有机结合的可能性。 下面这篇文章主要给大家介绍了Java中用enum和testng做...
参数化(多环境支持) 对象对比、两个Json对比 指定需要运行的case(冒烟,回归,全量等。。。) 详细的测试报告,可以回溯每个case的历史执行记录,并报告展示每个请求请求 支持任意次数的失败重跑 支持多种并发...
使用Excel驱动的数据在JUnit中编写TestNG样式的参数化测试
TestNg 参数化测试 异常测试 TestNg分组测试和suite文件编写 第 3 章 jTester断言介绍 什么是测试断言? jTester断言基本介绍 jTester断言语法详解 断言String对象 判断字符串是否等于期望值 字符串的模糊判断 ...
传统的自动化测试更关注产品UI 层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段(层 次)都需要自动化测试。 相信测试同学对上面的金字塔并不陌生,这个就是产品开发各个同阶段所对应的测试!随然这个...
xml java系统源码 ...提供了更丰富的参数化运行,总的来说如果项目较为复杂我推荐使用更加灵活多变的 testng, 简单的项目就可以使用 junit5 来做 appium 写过 web 自动化脚本的人对于 appium 的上手会非常
环境 ...api请求根路径、请求头及初始化参数值可以在api-config上进行配置。 rootUrl: 必须的配置,api的根路径,在调用api时用于拼接,配置后,会在自动添加到用例中的url的前缀中。 headers: 非必