如何测试具有20个以上字段的搜索页面

时间:2015-01-28 00:43:48

标签: java excel selenium selenium-webdriver testng

我是 selenium网络驱动程序的新手我有一个超过20个字段的搜索页面。 我创建了一个 excel文件,其中包含我希望通过我的测试传递的所有数据。我的excel文件将包含 20行,并且每行都会有 20列也是如此。 所以我的问题是我可以使用数据提供程序来做类似的事情,或者我只需要创建20个测试方法,对于每个方法,我应该读一行?提前致谢

1 个答案:

答案 0 :(得分:1)

请考虑使用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将方法标记为为测试方法提供数据。带注释的方法必须返回Object [] []。想要从此DataProvider接收数据的@Test方法需要使用dataProvider名称等于此批注的名称。

属性

  1. name - 数据提供者的名称。如果未提供,则此数据提供者的名称将自动设置为方法名称。

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

  3. @Dataprovider教程:http://seleniumeasy.com/testng-tutorials/dataprovider-in-testng

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