当前位置: 首页 > 知识库问答 >
问题:

org.testng.internal.reflect.MethodMatcherException:数据提供程序不匹配

简俊楚
2023-03-14

我有一个包含2列测试数据的xls文件。对于每一列,我都希望有一个测试方法。

现在我知道了如何使用dataprovider读取xls文件并将测试数据提供给一个测试方法。但如何使用同一个dataprovider进行多个测试呢?

我有下面的代码,一旦我运行这个代码得到错误,我的代码是:

@Test(dataProvider="TestData")
public void test1(String Username ) throws InterruptedException
{           
driver.findElement(By.xpath("//*[@id=\"UserName\"]")).sendKeys(Username);               
}

@Test(dataProvider="TestData")
public void test2(String Password)
{   
driver.findElement(By.xpath("//*[@id=\"Password\"]")).sendKeys(Password);
driver.findElement(By.xpath("//[@id=\"columns\"]/div/div[1]/form/div[1]/div[2]/div[4]/input")).click();
}




@DataProvider (name="TestData")
public  Object [][] readexcel(Method method) throws BiffException, IOException 
        {

File f=new File("E:\\Selenium\\Eclips\\NCPDP\\src\\TestData\\TestData.xls");
            Workbook w = Workbook.getWorkbook(f);
            Sheet s = w.getSheet("TestData");
            int rows = s.getRows();
            int columns =s.getColumns();

            String inputData[][]=new String[rows-1][columns];
            try {
                for(int i=1;i<rows;i++)
                    {
                    for(int j=0;j<columns;j++)
                        {
            Cell c=s.getCell(j,i);
            inputData[i-1][j]=c.getContents();

                        }

                    }

        }
        catch(Exception e){
            e.getMessage();
        }

        return inputData;
        }  

=========================================================默认测试

共有1个答案

丁嘉庆
2023-03-14

如果DataProvider返回两个参数,则需要将这两个参数传递给@test注释。

您的解决方案

@Test(dataProvider="TestData")
public void test1(String Username,String Password) throws Exception
{           
driver.findElement(By.xpath("//*[@id=\"UserName\"]")).sendKeys(Username);          
driver.findElement(By.xpath("//*[@id=\"Password\"]")).sendKeys(Password);
driver.findElement(By.xpath("//[@id=\"columns\"]/div/div[1]/form/div[1]/div[2]/div[4]/input")).click();
}
 类似资料:
  • 我在运行测试脚本后收到一个错误。我已经在其他测试脚本中运行了相同的方法,但我使用的这个脚本几乎与其他测试脚本相同。你能帮助我为什么会出现这个错误吗? 这是获取excel数据的方法。 这是我的数据提供程序方法

  • 错误: 失败:testData org.testng.internal.reflect.MethodMatcherException:数据提供程序不匹配方法:testData([参数{index=0,Type=java.lang.String,DeclaredAnnotations=[]},参数{index=1,Type=java.lang.String,DeclaredAnnotations=[

  • Entity Framework Core 通过一个提供程序模型来允许使用 EF 访问各种不同的数据库。一些概念对于大部分数据库是通用的,这些都包含在主要的 EF Core 组件中,包括 LINQ 的查询表达、事务以及从数据中加载出来后对象的变更跟踪。一些概念则是特定于个别提供程序,比如 SQL Server 提供程序允许你配置内存优化表(一个特定于 SQL Server 的功能),另外一些概念则

  • 我想在类中与数据提供者并行运行测试方法。我需要一个数据提供者,它每次在新测试方法开始为给定的测试运行生成部分动态数据之前都会被调用。让我用伪代码解释一下: 我怎样才能做到这一点?

  • 有人知道TestNG如何根据为测试方法指定的数据提供者名称计算出数据提供者方法是什么吗? 我找到了这个解决方案:https://gist.github.com/ae6rt/3805639 但是,它没有考虑到数据提供者可能是: 在完全不同的类别中定义,或 在父类中定义,并且 该方法可以是静态的,也可以是非静态的 我试图自己破解一些东西,但后来我想我不可能是第一个试图解决这个问题的人,特别是因为显然T

  • 问题内容: 我正在用硒编写以下代码,并且显示以下错误,请让我知道问题出在哪里。 导入org.testng.annotations.DataProvider; 导入org.testng.annotations.Test; 错误: 失败:testData org.testng.internal.reflect.MethodMatcherException:数据提供者不匹配方法:testData([Pa