2016-06-07 46 views
0

有一个excelsheet,其中所有URL(16)列在一列中。现在一旦页面加载需要验证页面标题是否与已存储在Excel中的预期标题相匹配。我可以使用for循环执行它。如果全部都通过,它将运行所有的URls,但在失败时停止。我需要完整地运行它,并给出通过并失败的报告。我写了下面的代码。断言失败时循环停止

 rowCount = suite_pageload_xls.getRowCount("LoadURL"); 

     for(i=2,j=2;i<=rowCount;i++,j++) { 
      String urlData = suite_pageload_xls.getCellData("LoadURL", "URL", i); 
      Thread.sleep(3000); 
      long start = System.currentTimeMillis(); 
      APP_LOGS.debug(start); 
      driver.navigate().to(urlData); 
      String actualtitle = driver.getTitle(); 
      long finish = System.currentTimeMillis(); 
      APP_LOGS.debug(finish); 
      APP_LOGS.debug(urlData+ "-----" +driver.getTitle()); 
      long totalTime = finish - start; 
      APP_LOGS.debug("Total time taken is "+totalTime+" ms"); 

      String expectedtitle = suite_pageload_xls.getCellData("LoadURL", "Label", j); 
      Assert.assertEquals(actualtitle, expectedtitle); 

      if (actualtitle.equalsIgnoreCase(expectedtitle)) { 
       APP_LOGS.debug("PAGE LABEL MATCHING...."); 
       String resultpass = "PASS"; 
       APP_LOGS.debug(resultpass); 
       APP_LOGS.debug("***********************************************************"); 
      } else { 
       APP_LOGS.debug("PAGE LABEL NOT MATCHING...."); 
       String resultfail = "FAIL"; 
       APP_LOGS.debug(resultfail); 
       APP_LOGS.debug("***********************************************************"); 
      } 
     } 

请在这方面帮助我。

回答

2

这是断言的正确行为,当断言错误时它会抛出异常。

您可以在数组中存储actualTitles和expectedTitles,并一次性执行断言。

为了更好的断言,我建议你试试AssertJ,你可以直接比较2个列表,实际的和预期的,它会返回完整的差异。