`

testNG学习之参数化

阅读更多
        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参数化打开百度搜索

    Java+Selenium+TestNG 参数化打开百度搜索 在自动化测试中,使用 Java+Selenium+TestNG 框架可以实现参数化打开百度搜索的功能。在本篇教程中,我们将详细介绍如何使用 Xml 配置文件和 Java 代码来实现参数化测试。...

    java+selenium+maven+testng自动化测试框架实例(实际项目)

    **TestNG**: TestNG是另一个流行的测试框架,提供了比JUnit更高级的功能,如并发测试、参数化测试、测试套件和报告。TestNG可以和Selenium结合使用,用于组织和运行测试用例,以及生成详细的测试报告。它支持注解,...

    TestNG接口自动化测试步骤.pptx

    TestNG是一款强大的自动化测试框架,尤其适用于接口自动化测试。它提供了丰富的注解、灵活的测试配置和报告功能,使得测试工作更加高效。以下是对TestNG接口自动化测试的详细步骤的阐述: 1. **环境准备**:首先,...

    TestNG学习笔记

    ### TestNG 学习笔记概览 #### 一、JUnit 的局限性与 TestNG 的优势 ##### JUnit 缺陷概述 - **最初的用途限制**:JUnit 最初被设计为一个仅适用于单元测试的框架,但随着时间的发展,其功能已扩展至支持多种类型...

    Appium+TestNG自动化测试

    在实际项目中,你可能还需要考虑测试数据的参数化,使用TestNG的`@Parameters`注解来读取外部配置文件,实现不同数据集的测试。此外,利用TestNG的并行测试功能,可以显著提升测试执行的效率。 总之,Appium+TestNG...

    TestNG-6.3 测试框架

    另一个值得一提的是,TestNG支持参数化测试,可以通过数据提供者(@DataProvider)来为测试方法提供不同输入数据,从而实现对同一测试逻辑的多种情况验证。这提高了测试覆盖率,确保了代码在不同条件下的稳定性。 在...

    TestNG教程.pdf

    一旦环境配置完毕,测试人员就可以编写测试代码,利用TestNG提供的注解来组织测试案例,创建套件测试、参数化测试、异常测试、依赖测试等,并且能够通过TestNG生成的报告来分析测试结果。 另外,TestNG也能够与...

    eclipse-testng离线包

    4. **参数化测试**:除了数据驱动测试,TestNG还提供了参数化方法,允许将不同的参数值传递给同一个测试方法,从而实现多种测试场景。 5. **注解**:TestNG使用注解(如@Test、@BeforeSuite、@AfterMethod等)来...

    testng-6.2

    总的来说,TestNG 6.2作为一个成熟的测试框架,以其强大的并行测试、灵活的注解、丰富的报告功能、参数化测试以及与其他工具的兼容性,为Java开发人员提供了全面的自动化测试支持。无论你是新手还是经验丰富的测试...

    testng架包下载

    3. **参数化测试**:TestNG支持参数化测试,可以为测试方法提供不同的输入参数,这在单元测试中非常有用。使用`@Parameters`和`@DataProvider`注解实现。 4. **依赖管理**:通过`@dependsOnMethods`注解,你可以...

    TestNG离线安装文件 site

    TestNG的亮点在于其强大的特性集,包括支持并发测试、参数化测试、异常处理、报告生成以及各种测试注解。它不仅适用于单元测试,还能很好地进行集成测试和端到端测试。对于Eclipse用户来说,通过Eclipse插件可以方便...

    testng-xslt-1.1.2.zip

    TestNG是Java领域中广泛使用的自动化测试框架,由Cedric Beust创建,它是JUnit的一个增强版,提供了更多功能,如并发测试、参数化测试、依赖性管理等。而TestNG XSLT扩展则进一步增强了其报告功能,允许用户通过...

    testng-6.7.jar TestNG依赖包

    `testng-6.7-sources.jar`文件则包含了TestNG 6.7版本的源代码,这对于开发者来说非常有价值,因为可以直接查看源码理解内部工作原理,方便调试和学习。 总的来说,TestNG是一个强大且灵活的测试框架,对于Java开发...

    Testng JAR包及教程

    它的出现是对JUnit的一种扩展,增加了许多高级特性,如并发测试、参数化测试、依赖管理以及更详细的测试报告。 Eclipse是一款广泛使用的Java集成开发环境(IDE),它允许开发者编写、调试和运行Java应用。为了在...

    testng-6.10.jar

    4. **数据驱动测试**:通过@DataProvider方法,TestNG可以为测试方法提供多组输入数据,实现数据驱动测试,简化了参数化测试的编写。 5. **依赖注入**:TestNG支持依赖注入,可以通过@注入注解将对象实例化并注入到...

    selenium3+java+Maven+TestNG+ReportNG+Excel自动化参数测试框架源码

    综上所述,这个框架通过组合Selenium、Java、Maven、TestNG、ReportNG和Excel,实现了高度自动化和参数化的测试流程,不仅能够有效地执行测试,还能生成详细的测试报告,提高了测试质量和效率。开发者或测试工程师...

    myeclipse 10 testng插件

    - 参数化测试:允许使用不同的参数组合运行同一个测试方法,提高测试覆盖率。 - 数据驱动测试:通过@Parameters注解,可以从外部数据源(如XML文件)获取测试数据,使测试更加灵活。 - 报告生成:TestNG会自动生成...

    Selenium+TestNG 框架的WEB自动化源码

    TestNG还支持数据驱动测试,可以使用`@DataProvider`注解将数据作为参数传递给测试方法。此外,`@BeforeMethod`和`@AfterMethod`等注解可以用于定义在每个测试方法执行前后的准备工作和清理工作。 在`GreenbackWeb`...

    testng测试报告模板BeautifulReport.7z

    总而言之,这个压缩包提供了一套完整的解决方案,帮助TestNG用户生成美观且定制化的测试报告,提升测试过程的专业性和效率。通过深入理解和运用这些资源,你可以更好地管理和优化你的测试框架,确保测试过程的透明度...

Global site tag (gtag.js) - Google Analytics