java + selenium测试框架 (之校验优化,运行报错但不终止执行)

引入SoftAssert报错但不终止执行

在自动化执行过程中,可能涉及到多个步骤的多个校验点。如果使用Assert 来做判断,报错后不会继续执行。但有时我们需要能够继续运行。

常见思路:自己封装Assert,将异常捕获,然后在最后输出报错信息。

网上发现了一个testng已经做好的封装,亲测好用,更新一下:

如下,执行到msg1的时候就会报错,无法继续执行。

public class AssertTest
{
    @Test
    public void test()
    {
        Assert.assertTrue(false,"msg1");
        Assert.assertTrue(false,"msg2");
    }
}

引用testng的SoftAssert,解决多个校验点的问题

import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;

public class SoftAsertTest
{
    @Test
    public void test()
    {
        SoftAssert asert=new SoftAssert();
        asert.assertEquals(false, true,"failed");
        asert.assertEquals(0, 1,"brokedown");
        asert.assertAll();
    }
}

更新TestBase

    public class TestBase {
        ...
        protected SoftAssert softAssert = new SoftAssert();
    }

    public class SourcePCTest extends TestBase {

        ...
        SearchResultPage page = null;

        @BeforeMethod
        public void initPage() {
            page = new SearchResultPage(driver);        
        }

        //应用
        @Test
        public void testSearch(){
            logger.info("测试搜索的来源参数");
            ...
            softAssert.assertTrue(false,"xxxx");
            ...
            softAssert.assertTrue(false,"xxxxx");
            ...     
            softAssert.assertAll();

        }

你可能感兴趣的:(Java,selenium,Selenium自动化)