您的位置:首页 > 编程语言 > Java开发

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

2016-12-09 15:54 471 查看

引入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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: