Очарование отчетов во время исключений - PullRequest
0 голосов
/ 20 марта 2019

Этот тест выполняется до конца, хотя verifyKrGlobalHeaderProductDescriptionAndSDS метод найден NoSuchElementException.Это хочу, я хочу именно.Но статус теста пройден, но я хочу, чтобы он не прошел.

Можно ли завершить тест целиком, если один из шагов перешел в исключение «NoSuchElementException»?

Код:

@Story("Story 1 - Global Header on every Page - corteva.co.kr")
@Test(description = "Global Header on Home page - corteva.co.kr", dependsOnMethods = { "verify_GoToKrHomePageMethod" })
@Description("Verify whether Global Header is appearing properly on Home page")
@Severity(SeverityLevel.CRITICAL)
@Parameters({ "baseURL" })
public void verify_HomePageGlobalHeaderMethod(Method method, String baseURL) {
    Log.info(method.getName() + " test is started.");
    KrHomePage krHomePage = new KrHomePage(prop, driver, wait);
    KrGlobalPage krGlobalPage = new KrGlobalPage(prop, driver, wait);
    krHomePage.goToKrCortevaHomePage(baseURL);
    krGlobalPage.verifyKrGlobalHeaderClassName();
    krGlobalPage.verifyKrToplineClassName();
    krGlobalPage.verifyKrGlobalHeaderLogo(baseURL);
    try{
        krGlobalPage.verifyKrGlobalHeaderProductDescriptionAndSDS(baseURL);
    }catch(NoSuchElementException e){
        e.printStackTrace();
        Allure.step("No ProductDescriptionAndSDS", Status.FAILED);
    }       
    krGlobalPage.verifyKrGlobalHeaderCortevaAgriscienceGlobal(baseURL);
    krGlobalPage.verifyKrGlobalHeaderCountrySelector(baseURL);
    krGlobalPage.verifyKrGlobalHeaderSearch();
}

@Step("Verify Global Header - ProductDescriptionAndSDS")
public void verifyKrGlobalHeaderProductDescriptionAndSDS(String baseURL) {
SoftAssert softAssertion= new SoftAssert();
    try{
    isDisplayed(By.xpath(hL1Xpath));
    softAssertion.assertEquals(getAttribute("href", (By.xpath(hL1Xpath))), baseURL + "labels-and-safety-data-sheets.html", "ProductDescriptionAndSDS on Header is pointed to incorrect URL.\n\n");  
    }catch(NoSuchElementException e){
    e.printStackTrace();            
    }
}

public Boolean isDisplayed(By elementLocation) {        
    return driver.findElement(elementLocation).isDisplayed();
}

Allure Report Screenshot

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете использовать мягкие утверждения для неудачного теста, а Allure.step("Failed step", Status.FAILED); может быть полезен для навигации по шагам броска в отчете.

Несмотря на то, что это не лучшая практика или хорошее решение, вы можете попробовать код ниже:

private SoftAssert softAssertion = new SoftAssert();

@Story("Story 1 - Global Header on every Page - corteva.co.kr")
@Test(description = "Global Header on Home page - corteva.co.kr", dependsOnMethods = { "verify_GoToKrHomePageMethod" })
@Description("Verify whether Global Header is appearing properly on Home page")
@Severity(SeverityLevel.CRITICAL)
@Parameters({ "baseURL" })
public void verify_HomePageGlobalHeaderMethod(Method method, String baseURL) {
    Log.info(method.getName() + " test is started.");
    KrHomePage krHomePage = new KrHomePage(prop, driver, wait);
    KrGlobalPage krGlobalPage = new KrGlobalPage(prop, driver, wait);
    krHomePage.goToKrCortevaHomePage(baseURL);
    krGlobalPage.verifyKrGlobalHeaderClassName();
    krGlobalPage.verifyKrToplineClassName();
    krGlobalPage.verifyKrGlobalHeaderLogo(baseURL);

    krGlobalPage.verifyKrGlobalHeaderProductDescriptionAndSDS(baseURL);

    krGlobalPage.verifyKrGlobalHeaderCortevaAgriscienceGlobal(baseURL);
    krGlobalPage.verifyKrGlobalHeaderCountrySelector(baseURL);
    krGlobalPage.verifyKrGlobalHeaderSearch();

    softAssertion.assertAll();
}

@Step("Verify Global Header - ProductDescriptionAndSDS")
public void verifyKrGlobalHeaderProductDescriptionAndSDS(String baseURL) {
    try {
        isDisplayed(By.xpath(hL1Xpath));
        softAssertion.assertEquals(getAttribute("href", (By.xpath(hL1Xpath))), baseURL + "labels-and-safety-data-sheets.html", "ProductDescriptionAndSDS on Header is pointed to incorrect URL.\n\n");
    } catch(NoSuchElementException e){
        Allure.step("No ProductDescriptionAndSDS", Status.FAILED);
        softAssertion.assertTrue(false, "No ProductDescriptionAndSDS");
        e.printStackTrace();          
    }
}
...