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); } }