是否有有效的方法来检索和使用Selenium中的测试数据

时间:2017-12-20 12:42:01

标签: java excel selenium collections apache-poi

我自动执行搜索功能,并希望对其执行数据驱动测试。我使用Excel工作表来存储测试数据并使用Apache POI库来读取相同的数据。这就是testdata存储的方式。

enter image description here

我的框架中有一个公共类来读取excel文件中的数据,我必须在调用下面提到的方法时传递工作表编号:

public ArrayList<String> getAllData(int sheetNumber)
{
        list=new ArrayList<String>();
        sheet = workbook.getSheetAt(sheetNumber);
        for(int i=1;i<=sheet.getLastRowNum();i++)
        {
            for(int j=0;j<sheet.getRow(i).getLastCellNum();j++)
            {
                System.out.println(sheet.getRow(i).getCell(j).getStringCellValue());
                list.add(sheet.getRow(i).getCell(j).getStringCellValue());
            }
        }
        return list;
    }

我在调用函数中如何使用这些数据时遇到了麻烦。不知怎的,我可以像我一样管理我的水平:

@Test
public void searchRcontacts() throws IOException, InterruptedException
{

    LoginAnalyser.checkLogin();
    if(!(driver.getCurrentUrl().equals(PropertyFileReader.getProperty("dashboardURL"))))
    {
        driver.get(PropertyFileReader.getProperty("dashboardURL"));
        CommonMethods.waitUntilLoaderGetInvisible(driver);
    }

    //Calling the method from ExcelReader class
    Iterator<String> itr=excel.getAllData(7).iterator();  

    while(itr.hasNext())
    {  
        contacts.enterSearchText(itr.next()); 
        TakeScreenshot.passedScreenShot("Search_");
        LogWriter.logger.info("Search Text enterd");    
        contacts.clickSearchButton();
        CommonMethods.waitUntilLoaderGetInvisible(driver);
        LogWriter.logger.info("Search button clicked"); 
        TakeScreenshot.passedScreenShot("Search_Result_For");   
        assertEquals(contacts.getSearchResult(),itr.next());
        LogWriter.logger.info("Result : "+contacts.getSearchResult());   
      }  
 }

但它似乎并不是一种有效的方法。有人可以提出更好的方法吗?

1 个答案:

答案 0 :(得分:0)

考虑使用诸如Cucumber或JBehave之类的BDD方法。在您的示例中,可以创建一个故事:

Scenario: Positive tests

Given I am on the search page
When I enter <testdata>
Then the record is found

Examples:
|testdata  |
|narrendra |
|9422320101|
|jec       |

Scenario: Negative tests

Given I am on the search page
When I enter <testdata>
Then the record is not found

Examples:
|testdata|
|Alex$   |
|Mac100  |

对于JBehave,您也可以将示例数据放在单独的文件中,并使用:

Examples:
.\tables\storyPosTestData.txt