零基础搭建自动化测试框架--004使用断言(selenium testng 断言)

xiaoxiao2021-03-01  16

断言是什么? ? ? ? 一个测试的成功意味着再不抛任何异常的情况下执行完成。

断言帮助我们验证测试条件,并根据测试条件确认用例是否执行成功还是执行失败。

下面以验证以验证谷歌标题等于Google为例。如果页面标题和我们提供的目标文本标题不一直, 则跑出异常,用例失败。

如下面的代码示例所示:

@Test

         publicvoid testCaseVerifyHomePage() {

                 driver=new FirefoxDriver();

                 driver.navigate().to("http://google.com");

                 Assert.assertEquals("Google", driver.getTitle());

         }

我在做在上面的测试用例,首先我创建一个Firefox  driver, 然后打开谷歌首页,第三行则为断言。

也可以写成如下断言。Assert.assertEquals("Goooogle",driver.getTitle(), "Title not matching");

TestNG 断言在整个断言里面扮演者重要角色,且其清晰的代码格式深得喜爱。

 

将页面标题改变为下面代码执行并查看执行结果。

@Test

         publicvoid testCaseVerifyHomePage() {

                 driver=new FirefoxDriver();

                 driver.navigate().to("http://google.com");

                 Assert.assertEquals("Gooooogle", driver.getTitle());

         }

上面的代码将抛出一个断言错误: java.lang.AssertionError: expected [Google] but found [Gooooogle]

如上面代码所示:TestNG提供了很多好用的断言。以下是经常使用的。

Assert.assertEqual(String actual,String expected) :检查两个字符串是否相等,如果不相等,测试失败。

Assert.assertEqual(String actual,String expected, Stringmessage) :它有三个字符串参数,检查两个字符串是否相等, 如果不相等,测试失败, 且在抛出异常中打印出我们提供的第三个message参数信息

Assert.assertEquals(booleanactual,boolean expected) : 检查两个boolean值是否相等,如果不相等,测试失败。

Assert.assertEqual (java.util.Collection actual, java.util.Collection expected,java.lang.String message): 检查两个Collection Objece对象是否相等, 如果不相等,测试失败,且在抛出异常中打印出我们提供的第三个message参数信息

 

Assert.assertTrue(condition):判断传入的条件是一个boolean值,如果值为true,则用例通过,否则抛出一个AssertionError异常。

Assert.assertTrue(condition, message) : 判断传入的条件是一个boolean值,如果值为true,则用例通过,否则抛出一个AssertionError异常,且在异常消息中打印出传入的message提示信息。

Assert.assertFalse(condition) : 判断传入的条件是一个boolean值,如果值为false,则用例通过,否则抛出一个AssertionError异常。

Assert.assertFalse(condition, message): 判断传入的条件是一个boolean值,如果值为false,则用例通过,否则抛出一个AssertionError异常,且在异常消息中打印出传入的message提示信息。

下面是使用断言的示例代码:

         @Test

         publicvoid testCaseVerifyHomePage() {

                 driver=new FirefoxDriver();

                 driver.navigate().to("http://google.com");

                 Assert.assertEquals("Gooogle", driver.getTitle(), "Strings are not matching");

                 //Writea code to login and write a method called isUserLoggedInSuccessfully andisUserLoggedOut which returns boolean.

                 Assert.assertTrue(isUserLoggedInSuccessfully(),"User failed tologin");

                 Assert.assertFalse(isUserLoggedOut())

                 }

}

TestNG 断言:

Assert.assertEquals(actual, expected): actual一般是被测试的代码返回的实际值。

expected是期望值,通常都是用户指定的内容。

传两个参数值,如果实际的值等于期望的值,则脚本断言成功,反之则失败。可以指定输出错误信息。

Assert.assertNotEquals(actual1, actual2, delta): 判断是否不相等。

Assert.assertEquals(actual, expected, delta, message): float和double后面多了一个delta的值,是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是相等的。

Assert.assertEqualsNoOrder(Object[] actual, Object[] expected): 判断顺序是否相等,可以有消息,也可以没有消息。

Assert.fail(message,realCause) : 直接失败测试用例,可以抛出异常,可以有消息,也可以没有消息。

Assert.assertTrue(condition,message): 判断是否为true。

Assert.assertFalse(condition,message): 判断是否为false。

Assert.assertSame(actual, expected,): 判断两个对象是否指向同一个对象,引用地址是否相等。

Assert.assertNotSame(actual, expected,): 判断两个对象是否指向同一个对象,引用地址是否不相等。

Assert.assertNull(argo,arg1): 判断是否为null。

Assert.assertNotNull(argo,arg1): 判断是否不为null

转载请注明原文地址: https://www.6miu.com/read-3100021.html

最新回复(0)