数据提供商不匹配 RestAssured 框架

问题描述 投票:0回答:1

当我尝试运行测试时,在出现消息“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 的数据驱动方法通过测试

rest-assured testcase type-mismatch testng-dataprovider
1个回答
0
投票

抱歉,正确的数据提供者是: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;
}

}

© www.soinside.com 2019 - 2024. All rights reserved.