TestNG 参数化测试

提起testNG,很多人都知道TestNG比Junit更有优势的地方,除了可以做依赖性测试之外,也可以用TestNG实现参数化测试。
那么TestNG中的参数化是如何做的呢?
首先我们看第一种参数化测试的方式–使用TestNG.xml

首先写一个TestNG参数化测试用例。使用 @Parameters(“参数化变量”) 注解的办法。

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文件中指定参数化的变量名称,与参数化的变量值。

<?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>

第二种测试方法就是 – 使用 Data Providers

为了展示这种方法,我们需要先写一个被测试的类。

public class PrimeNumberChecker {
   public Boolean validate(final Integer primeNumber) {

      for (int i = 2; i < (primeNumber / 2); i++) {
         if (primeNumber % i == 0) {
            return false;
         }
      }
      return true;
   }
}

在测试类中使用@Test(dataProvider = “test1”)注解引用事先定义好的 @DataProvider(name = “test1”)的数据。

import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class ParamTestWithDataProvider1 {
   private PrimeNumberChecker primeNumberChecker;

   @BeforeMethod
   public void initialize() {
      primeNumberChecker = new PrimeNumberChecker();
   }

   @DataProvider(name = "test1")
   public static Object[][] primeNumbers() {
      return new Object[][] {{2, true}, {6, false}, {19, true}, {22, false}, {23, true}};
   }

   // This test will run 4 times since we have 5 parameters defined
   @Test(dataProvider = "test1")
   public void testPrimeNumberChecker(Integer inputNumber, Boolean expectedResult) {
      System.out.println(inputNumber + " " + expectedResult);
      Assert.assertEquals(expectedResult,
      primeNumberChecker.validate(inputNumber));
   }
}

最终执行结果如下:
2 true
6 false
19 true
22 false
23 true

===============================================
Suite1

Total tests run: 5, Failures: 0, Skips: 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值