[size=xx-large][size=large][size=medium][size=xx-small]测试方法可以带有参数,每个测试方法都可以带有任意数量的参数,并且可以通过TestNG的@Parameters传递。
传递方式有两种:testng.xml 和编程。
------1.使用testng.xml设置参数
如果只是使用相对简单的参数,可以再testng.xml中指定,
java文件:
public class ParaByTestNG {
@Parameters({ "name"})
@Test
public void testPara1(String name){
System. out.println(name);
}
}
testng.xml文件:
< suite name= "Suite1" parallel = "false">
< test name= "param1" >
<classes >
<class name = "test.param.ParaByTestNG"/>
</classes >
<parameter name = "name" value= "zhangsan"></ parameter>
</ test> <!-- Test -->
</ suite>
目录结构
--src
---test.param
----ParaByTestNG.java
---testng.xml
注意:1).如果一个项目中有多个java文件需要传参数,且这些参数需要写在一个testng.xml文件中,那么可以在suite节点下添加多个test节点,test对应的那么不一样就行了。如果添加的是suite节点,将报错:The markup in the document following the root element must be well-formed.
2).同一项目中的java文件传递的参数也可以写在不同的xml文件中,只要xml文件名称唯一,需要的时候运行对应的xml文件就行了
3).通过xml文件运行testng suite时,xml只能在src目录下才行
-----2.使用DataProvider提供参数
testng.xml指定参数可以存在不足
---不想使用testng.xml
---需要传递复杂的参数,或者从java中创建参数
当传递的参数比较复杂时,可以使用DataProvider来给需要的测试提供参数。DataProvider是一个能返回数组的方法,且这个方法用@DataProvider标注,具体代码如下:
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class ParamByProvider {
@DataProvider(name= "test1")
public Object[][] createData1(){
return new Object[][]{
{ "zhangsan", "15点参加会议" },
{ "lisi", "今天可以提前下班" }
};
}
@Test(dataProvider= "test1")
public void verifyData1(String n1,String n2){
System. out.println(n1+ " "+n2);
}
}
@DataProvider提供参数所需要的值,@Test获得参数,直接运行Java类就行了
如果需要传入其他参数,修改createData1中的返回数组的值即可。
注:1)这里的@DataProvider的name对应的值必须和@Test中dataProvider对应的值一样,这样才可以把DataProvider的值传到@Test中
2)默认情况下,DataProvider会查找当前测试类或者测试类的基类,如果希望被其他类使用,将其指定为static,并通过dataProviderClass属性指定要使用的类
创建staticProvider方法
public class StaticProvider {
@DataProvider(name= "create")
public static Object[][] createData(){
return new Object[][]{
new Object[]{ new Integer(23)}
};
}
}
创建MyTest方法
public class MyTest {
@Test(dataProvider= "create",dataProviderClass=StaticProvider. class)
public void test(Integer n){
System. out.println(n);
}
}
运行MyTest方法得出测试结果
[/size][/size][/size][/size]
分享到:
相关推荐
Java+Selenium+TestNG 参数化打开百度搜索 在自动化测试中,使用 Java+Selenium+TestNG 框架可以实现参数化打开百度搜索的功能。在本篇教程中,我们将详细介绍如何使用 Xml 配置文件和 Java 代码来实现参数化测试。...
**TestNG**: TestNG是另一个流行的测试框架,提供了比JUnit更高级的功能,如并发测试、参数化测试、测试套件和报告。TestNG可以和Selenium结合使用,用于组织和运行测试用例,以及生成详细的测试报告。它支持注解,...
在实际项目中,你可能还需要考虑测试数据的参数化,使用TestNG的`@Parameters`注解来读取外部配置文件,实现不同数据集的测试。此外,利用TestNG的并行测试功能,可以显著提升测试执行的效率。 总之,Appium+TestNG...
4. **DataProvider**:DataProvider注解用于提供测试数据,可以看作是参数化测试的一种实现方式。它可以和@Test注解结合使用,为不同的测试数据提供参数。DataProvider会在对应的@Test方法执行前,为每一个数据组...
6. **配置文件创建**:在项目中创建配置文件,存储接口测试所需的各种参数,例如API的请求URL、请求方法(GET、POST等)、请求头、请求体等。 7. **执行TestNG类**:最后,创建一个类来执行TestNG测试套件,通过...
另一个值得一提的是,TestNG支持参数化测试,可以通过数据提供者(@DataProvider)来为测试方法提供不同输入数据,从而实现对同一测试逻辑的多种情况验证。这提高了测试覆盖率,确保了代码在不同条件下的稳定性。 在...
一旦环境配置完毕,测试人员就可以编写测试代码,利用TestNG提供的注解来组织测试案例,创建套件测试、参数化测试、异常测试、依赖测试等,并且能够通过TestNG生成的报告来分析测试结果。 另外,TestNG也能够与...
3. **参数化测试**:TestNG支持参数化测试,可以为测试方法提供不同的输入参数,这在单元测试中非常有用。使用`@Parameters`和`@DataProvider`注解实现。 4. **依赖管理**:通过`@dependsOnMethods`注解,你可以...
4. **参数化测试**:除了数据驱动测试,TestNG还提供了参数化方法,允许将不同的参数值传递给同一个测试方法,从而实现多种测试场景。 5. **注解**:TestNG使用注解(如@Test、@BeforeSuite、@AfterMethod等)来...
6. **参数化测试**:TestNG支持参数化测试,可以通过数据提供者(`@DataProvider`)来为测试方法提供多种输入值,从而实现对同一方法的不同情况的测试。 7. **依赖注入**:TestNG支持依赖注入,可以将对象实例化和...
4. **数据驱动测试**:通过@DataProvider方法,TestNG可以为测试方法提供多组输入数据,实现数据驱动测试,简化了参数化测试的编写。 5. **依赖注入**:TestNG支持依赖注入,可以通过@注入注解将对象实例化并注入到...
3. **配置方法**:TestNG提供了@BeforeSuite、@AfterSuite、@BeforeTest、@AfterTest、@BeforeClass、@AfterClass、@BeforeMethod和@AfterMethod等注解,用于在测试执行前后执行特定的代码,如初始化环境、清理资源...
6. 参数化测试(Parameterized Tests):TestNG支持参数化测试,允许使用参数化数据来运行同一个测试方法多次。这可以用来测试同一方法在不同输入下的行为,从而提高测试覆盖率。 7. 数据提供者(Data Providers):...
8. **参数化测试**:通过`@Parameters`注解,可以为测试方法提供不同的输入参数,实现同一测试方法的多次执行,从而测试不同输入情况下的行为。 9. **XML配置文件**:除了注解,TestNG 还支持使用XML文件来配置测试...
它的出现是对JUnit的一种扩展,增加了许多高级特性,如并发测试、参数化测试、依赖管理以及更详细的测试报告。 Eclipse是一款广泛使用的Java集成开发环境(IDE),它允许开发者编写、调试和运行Java应用。为了在...
TestNG是Java领域中广泛使用的自动化测试框架,由Cedric Beust创建,它是JUnit的一个增强版,提供了更多功能,如并发测试、参数化测试、依赖性管理等。而TestNG XSLT扩展则进一步增强了其报告功能,允许用户通过...
TestNG的亮点在于其强大的特性集,包括支持并发测试、参数化测试、异常处理、报告生成以及各种测试注解。它不仅适用于单元测试,还能很好地进行集成测试和端到端测试。对于Eclipse用户来说,通过Eclipse插件可以方便...
TestNG 是一个强大的自动化测试框架,广泛应用于Java应用程序的单元测试、集成测试和端到端测试。它由Cédric Beust创建,旨在提供比JUnit更丰富的功能集,特别是对于并行测试和复杂的测试配置。 TestNG的核心特性...
总的来说,TestNG 6.2作为一个成熟的测试框架,以其强大的并行测试、灵活的注解、丰富的报告功能、参数化测试以及与其他工具的兼容性,为Java开发人员提供了全面的自动化测试支持。无论你是新手还是经验丰富的测试...