TestNG参数化测试

发表于:2016-1-20 13:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:测试生涯    来源:51Testing软件测试网采编

  在TestNG的另一个有趣的功能是参数测试。在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试。参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值。
  TestNG让你直接传递参数测试方法两种不同的方式:
  使用testng.xml
  数据提供程序
  传递参数使用testng.xml
  有了这种技术,在testng.xml文件中定义的简单参数,然后在源文件中引用这些参数。让我们看看下面的例子中如何使用这种技术来传递参数。
  创建测试案例类
  创建一个Java测试类 ParameterizedTest1.java.
  测试方法parameterTest()添加到测试类。此方法需要一个字符串作为输入参数。
  添加注释 @Parameters("myName") 到此方法。该参数将被传递testng.xml,在下一步我们将看到一个值。
  创建Java类文件名 ParameterizedTest1.java 在 C:\ > TestNG_WORKSPACE
  import org.testng.annotations.Parameters;
  import org.testng.annotations.Test;
  public class ParameterizedTest1 {
  @Test
  @Parameters("myName")
  public void parameterTest(String myName) {
  System.out.println("Parameterized value is : " + myName);
  }
  }
  创建 TESTNG.XML
  创建 testng.xml C:\ > TestNG_WORKSPACE 执行测试案例
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Suite1">
  <test name="test1">
  <parameter name="myName" value="manisha"/>
  <classes>
  <class name="ParameterizedTest1" />
  </classes>
  </test>
  </suite>
  我们还可以定义参数在<suite>级别。假设我们已经定义在两个<suite>和<test>级别myName,在这种情况下,常规的作用域规则适用。这意味着,任何类里面<test>标签将查看值参数定义在<test>,而testng.xml文件中的类的其余部分将看到定义在<suite>中值
  编译使用javac的测试用例类。
  C:\TestNG_WORKSPACE>javac ParameterizedTest1.java
  现在,运行testng.xml,其中将运行parameterTest方法。TestNG的将试图找到一个命名myName的第一<test>标签的参数,然后,如果它不能找到它,它会搜索包围在的<suit>标签。
  C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
  验证输出。
  Parameterized value is : manisha
  ===============================================
  Suite1
  Total tests run: 1, Failures: 0, Skips: 0
  ===============================================
  TestNG 对testng.xml 的参数的类型指定的值会自动尝试转换。下面是支持的类型:
  String
  int/Integer
  boolean/Boolean
  byte/Byte
  char/Character
  double/Double
  float/Float
  long/Long
  short/Short
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号