Selenium 中 Assert 和 Verify 的区别是什么?
Selenium 中 Assert 和 Verify 之间存在差异。两者都用于验证页面上是否存在 Web 元素。如果 Assert 失败,则测试执行将停止。
一旦某个步骤中的断言未通过,则其后的测试步骤将被跳过。但是,可以通过添加 try-catch 块并将断言包含在此块中来避免这种情况。
因此,如果断言产生真值条件,则程序执行流程将继续。否则,失败步骤之后的步骤将被绕过执行。
为了克服这个问题,引入了软断言或 Verify 命令的概念。在这里,如果发生失败,测试执行将继续,并且会捕获失败日志。因此,无论 Verify 命令产生真值条件还是假值条件,程序执行流程都将继续。
这种类型的断言用于不重要的场景,即使步骤的预期结果与实际结果不匹配,我们也可以继续进行测试。
使用 Assert 的代码实现
import org.testng.Assert; import org.testng.Annotations.Test; public class NewTest{ @Test public void f() { //Assertion pass scenario Assert.assertTrue(2+2 == 4); System.out.println("Scenario 1 passed"); //Assertion fail scenario Assert.fail("Scenario 2 failed with Assert"); System.out.println("Scenario 2 failed"); } }
输出
使用 Verify/SoftAssert 的代码实现
import org.testng.Assert; import org.testng.Annotations.Test; import org.testng.asserts.SoftAssert; public class NewTest{ @Test public void f() { //instance of SoftAssert SoftAssert s = new SoftAssert(); //Assertion failed s.fail("Scenario 1 failed with Soft Assert"); System.out.println("Scenario 1 failed"); //Assertion failed s.fail("Scenario 2 failed with Soft Assert"); System.out.println("Scenario 2 failed"); //collects assertion result then mark test as failed/passed s.assertAll()ß } }
输出
广告