Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何测试包含20多个字段的搜索页面_Java_Excel_Selenium_Selenium Webdriver_Testng - Fatal编程技术网

Java 如何测试包含20多个字段的搜索页面

Java 如何测试包含20多个字段的搜索页面,java,excel,selenium,selenium-webdriver,testng,Java,Excel,Selenium,Selenium Webdriver,Testng,我对selenium web驱动程序非常陌生,我有一个包含20多个字段的搜索页面。 我已经创建了一个excel文件,其中包含我希望通过测试的所有数据。我的excel文件将包含20行,每行也将有20列。 所以我的问题是,我可以使用数据提供者来做类似的事情吗?或者我只需要创建20个测试方法,每个方法我应该读一行?提前感谢 < P>请考虑使用Apache POI库来完成这一点。 Apache POI的示例代码: FileInputStream file = new FileInputStream(ne

我对selenium web驱动程序非常陌生,我有一个包含20多个字段的搜索页面。 我已经创建了一个excel文件,其中包含我希望通过测试的所有数据。我的excel文件将包含20行,每行也将有20列
所以我的问题是,我可以使用数据提供者来做类似的事情吗?或者我只需要创建20个测试方法,每个方法我应该读一行?提前感谢

< P>请考虑使用Apache POI库来完成这一点。

Apache POI的示例代码:

FileInputStream file = new FileInputStream(new File("C:\\test.xlsx"));                 
//Get the workbook instance for XLS file 
XSSFWorkbook workbook = new XSSFWorkbook (file);     
//Get first sheet from the workbook
XSSFSheet sheet = workbook.getSheetAt(0);  
Row row = sheet.getRow(0);
String data = row.getCell(columnindex).getStringCellValue();
数据提供者: @DataProvider将方法标记为为为测试方法提供数据。带注释的方法必须返回对象[]。想要从此DataProvider接收数据的@Test方法需要使用与此批注的名称相等的DataProvider名称

属性

  • 名称—数据提供程序的名称。如果未提供,此数据提供程序的名称将自动设置为方法的名称

  • 并行-如果设置为true,则使用此数据提供程序生成的测试将并行运行。默认值为false

  • @Dataprovider的教程:

    Dataprovider的示例代码:

    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    public class DataProviderExample{
    
        //This test method declares that its data should be supplied by the Data Provider
        // "getdata" is the function name which is passing the data
           // Number of columns should match the number of input parameters
        @Test(dataProvider="getData")
        public void setData(String username, String password)
        {
            System.out.println("you have provided username as::"+username);
            System.out.println("you have provided password as::"+password);
        }
    
        @DataProvider
        public Object[][] getData()
        {
        //Rows - Number of times your test has to be repeated.
        //Columns - Number of parameters in test data.
        Object[][] data = new Object[3][2];
    
        // 1st row
        data[0][0] ="sampleuser1";
        data[0][1] = "abcdef";
    
        // 2nd row
        data[1][0] ="testuser2";
        data[1][1] = "zxcvb";
    
        // 3rd row
        data[2][0] ="guestuser3";
        data[2][1] = "pass123";
    
        return data;
        }
    }
    

    你想要实现什么?只想将搜索词从excel逐个传递到您的站点搜索字段?@HelpingHands我想传递该行,所以我需要它将所有行保存在列表数组中,然后我将列表传递到数据提供程序您可以进一步解释数据提供程序如何支持TestNG中的数据驱动测试。这并不能解决我的问题,因为我要传递行中的所有数据,因此我需要它将所有行保存在列表数组中,然后我会将列表传递到数据提供程序中,但数据提供程序不读取列表您可以执行以下操作(不使用数据提供程序):1。使用ApachePOI读取单元格值2。将这些值存储在ArrayList 3中。调用函数返回ArrayList