当我尝试运行测试时,在出现消息“org.testng.internal.reflect.MethodMatcherException:”后失败: [公共无效 api.test.DDTests.testPostUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang .String)] 没有定义参数,但发现正在使用数据提供程序(显式指定或从类级别注释继承)。 数据提供者不匹配 方法: testPostUser([java.lang.String arg0, java.lang.String arg1, java.lang.String arg2, java.lang.String arg3, java.lang.String arg4, java.lang.String arg5, java.lang .字符串arg6]) 参数:[(java.lang.String) 1010,(java.lang.String) testuser1,(java.lang.String) Amandeep,(java.lang.String) Kaur,(java.lang.String) [电子邮件受保护],(java.lang.String) T465fjbk@,(java.lang.String) 4167658765,(java.lang.String) ,(java.lang.String) ,(java.lang.String) ,(java.lang .String) ,(java.lang.String) ,(java.lang.String) ,(java.lang.String) ] 在 org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:46) 在 org.testng.internal.Parameters.injectParameters(Parameters.java:909) 在 org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:37) 在 org.testng.internal.invokers.TestInvoker$MethodInvokerAgent.invoke(TestInvoker.java:957) 在 org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:200) 在 org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148) 在 org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128) 在 java.base/java.util.ArrayList.forEach(ArrayList.java:1511) 在 org.testng.TestRunner.privateRun(TestRunner.java:848) 在 org.testng.TestRunner.run(TestRunner.java:621) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:443) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:397) 在 org.testng.SuiteRunner.run(SuiteRunner.java:336) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1280) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1200) 在 org.testng.TestNG.runSuites(TestNG.java:1114) 在 org.testng.TestNG.run(TestNG.java:1082) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
”
我不知道如何解决它。
以下是我的测试数据
@Test(优先级=1,dataProvider = "数据", dataProviderClass = DataProviders.class) 公共无效testPostUser(字符串用户ID,字符串用户名,字符串fname,字符串lname,字符串userremail,字符串pwd,字符串ph) { 用户 userPayload = new User();
userPayload.setId(Integer.parseInt(userId));
userPayload.setUsername(userName);
userPayload.setFirstName(fname);
userPayload.setLastName(lname);
userPayload.setEmail(useremail);
userPayload.setPassword(pwd);
userPayload.setPhone(ph);
Response response = UserEndPoints.createUser(userPayload);
Assert.assertEquals(response.getStatusCode(),200);
}
数据提供者:
封装 api.utilities;
导入java.io.IOException;
导入 org.testng.annotations.DataProvider;
公共类 DataProviders {
@DataProvider(name="Data")
public String [][] getAllData() throws IOException
{
String path = System.getProperty("user.dir")+"//testData//UserData.xlsx";
XLUtility xl = new XLUtility(path);
int rownum = xl.getRowCount("Sheet1");
int colcount= xl.getCellCount("Sheet1",1);
String apidata[][] = new String[rownum-1][colcount];
for(int i = 1; i<rownum; i++)
{
for(int j=0; j<colcount; j++)
{
apidata[i-1][j] = xl.getCellData("Sheet1", i, j);
}
}
return apidata ;
}
@DataProvider(name="UserNames")
public String [] getUserNames() throws IOException
{
String path = System.getProperty("user.dir")+"//testData//UserData.xlsx";
XLUtility xl = new XLUtility(path);
int rownum = xl.getRowCount("Sheet1");
// int colcount= xl.getCellCount("Sheet1",1);
String apidata[] = new String[rownum-1];
for(int i = 1; i<rownum; i++)
{
apidata[i-1] = xl.getCellData("Sheet1", i, 1);
}
return apidata;
}
}
请告诉我是否需要更改代码以及如何更改?
我正在尝试使用 Excel 的数据驱动方法通过测试
抱歉,正确的数据提供者是:package api.utilities;
导入java.io.IOException;
导入 org.testng.annotations.DataProvider;
公共类 DataProviders {
@DataProvider(name="Data")
public String [][] getAllData() throws IOException
{
String path = System.getProperty("user.dir")+"//testData//UserData.xlsx";
XLUtility xl = new XLUtility(path);
int rownum = xl.getRowCount("Sheet1");
int colcount= xl.getCellCount("Sheet1",1);
String apidata[][] = new String[rownum][colcount];
for(int i = 1; i<=rownum; i++)
{
for(int j=0; j<colcount; j++)
{
apidata[i-1][j] = xl.getCellData("Sheet1", i, j);
}
}
return apidata;
}
@DataProvider(name="UserNames")
public String [] getUserNames() throws IOException
{
String path = System.getProperty("user.dir")+"//testData//UserData.xlsx";
XLUtility xl = new XLUtility(path);
int rownum = xl.getRowCount("Sheet1");
// int colcount= xl.getCellCount("Sheet1",1);
String apidata[] = new String[rownum];
for(int i = 1; i<=rownum; i++)
{
apidata[i-1] = xl.getCellData("Sheet1", i, 1);
}
return apidata;
}
}