TestNG传参的几种方式

Elana ·
更新时间:2024-11-14
· 918 次阅读

  1. 通过parameter传参   java代码部分:   import org.testng.annotations.Parameters;   import org.testng.annotations.Test;   public class ParameterizedTest1 {   @Test   @Parameters("myName")  //这里可以带多个参数,且参数名要和xml文件里的一致;但不必与parameterTest()方法里的参数名一致,需要与其参数顺序一致。   public void parameterTest(String myName) {   System.out.println("Parameterized value is : " + myName);   }   }   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>   2. 通过dataprovider传参   2.1 默认使用方法名作为dataprovider标识 public class DataProviderTest { @DataProvider public Object[][] providerMethod(Method method){ Object[][] result = null; if(method.getName().equals("testmethod1")){ result = {{,1}}; }else if(method.getName().equals("testmethod2")){ result = {{,2}}; }return result; } @Test(dataProvider="providerMethod") public void testmethod1(int param){ System.out.println("method1 received:"+param); } @Test(dataProvider="providerMethod") public void testmethod2(int param){ System.out.println("method2 received:"+param); } }   2.2 通过dataprovider制定name标识传参 public class DataProviderTest { @DataProvider(name="test") public Object[][] providerMethod(Method method){ Object[][] result = null; if(method.getName().equals("testmethod1")){ result = new Object[][]{new Object[]{1}}; }else if(method.getName().equals("testmethod2")){ result = new Object[][]{new Object[]{2}}; }else{ result = new Object[][]{new Object[]{3}}; } return result; } @Test(dataProvider="test") public void testmethod1(int param){ System.out.println("method1 received:"+param); } @Test(dataProvider="test") public void testmethod2(int param){ System.out.println("method2 received:"+param); } }



testng

需要 登录 后方可回复, 如果你还没有账号请 注册新账号