引入SoftAssert报错但不终止执行 在自动化执行过程中,可能涉及到多个步骤的多个校验点。如果使用Assert 来做判断,报错后不会继续执行。但有时我们需要能够继续运行。
常见思路:自己封装Assert,将异常捕获,然后在最后输出报错信息。
网上发现了一个testng已经做好的封装,亲测好用,更新一下:
如下,执行到msg1的时候就会报错,无法继续执行。
public class AssertTest
{
@Test
public void test()
{
Assert.assertTrue(false,"msg1");
Assert.assertTrue(false,"msg2");
}
}
【Java|java + selenium测试框架 (之校验优化,运行报错但不终止执行)】引用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|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)