断言失败后在TestNG中运行其他测试步骤

时间:2015-09-28 09:30:19

标签: selenium-webdriver testng

嗨我有一个场景,我在该窗口小部件中有一个小部件如果文本显示“问题加载数据”我将刷新页面3次,即使文本出现意味着我必须失败该步骤并继续前进我有在该小部件中验证其他文本

但是,如果我使用try并在最后捕获它显示两者都已通过 默认套件

总测试运行:2,失败:0,跳过:0

但理想情况下我正在寻找总测试运行:1,失败:1,跳过:0以及在这种情况下执行的其余步骤

我的脚本我尝试了软和硬断言

我尝试删除try catch但后续步骤没有执行

        case "CHECKWIDGET":
         int Pagerefresh=1;
         try{

        String s=wait.until(ExpectedConditions.visibilityOfElementLocated(this.getObject(p, objectName, objectType))).getText();
        if(s.contains("Problem Loading Data")){
         for(Pagerefresh=1;Pagerefresh<=3;Pagerefresh++){
          Thread.sleep(7000);
          driver.navigate().refresh();
        System.out.println("refreshed time"+Pagerefresh);
        if(Pagerefresh==3){
            singleton.getFailedLogger().fatal("Error:Problem Loading Data In "+value+" Widget");
            Assert.assertTrue(s.contains("Problem Loading Data"));
          }   
         }
        }
         }     
         catch(AssertionError | NullPointerException e){
            Assert.fail();
        }
        try{
            String s=wait.until(ExpectedConditions.visibilityOfElementLocated(this.getObject(p, objectName, objectType))).getText();
        if(s.contains(value)){
        singleton.getLogger().debug(passlog);
        }else{
            singleton.getFailedLogger().fatal(faillog);
        }
        }
        catch(AssertionError | NullPointerException e){
            singleton.getFailedLogger().fatal(faillog);
        }

        break;

请帮忙,

感谢。

1 个答案:

答案 0 :(得分:1)

你需要的是软断言。

软断言

即使断言条件失败,测试也不会停止运行,但测试本身被标记为失败的测试以指示正确的结果。

选择look