自动化断言 java 自动化断言是什么
  t7X7T4l7J6Bx 2023年11月02日 26 0


        断言,也叫检查点,指的是在自动化测试过程中,让脚本自动判断实际结果是否等于预期结果。有基本布尔型断言、比较断言、复杂断言等方法。

一、基本布尔型断言


序号


断言方法

断言描述

1

assertEqual(arg1, arg2, msg=None)

验证arg1=arg2,不等则fail 【常用】

2

assertNotEqual(arg1, arg2, msg=None)

验证arg1 != arg2, 相等则fail

3

assertTrue(expr, msg=None)

验证expr是true,如果为false,则fail 【常用】

4

assertFalse(expr,msg=None)

验证expr是false,如果为true,则fail 【常用】

5

assertIs(arg1, arg2, msg=None)

验证arg1、arg2是同一个对象,不是则fail

6

assertIsNot(arg1, arg2, msg=None)

验证arg1、arg2不是同一个对象,是则fail

7

assertIsNone(expr, msg=None)

验证expr是None,不是则fail

8

assertIsNotNone(expr, msg=None)

验证expr不是None,是则fail

9

assertIn(arg1, arg2, msg=None)

验证arg1是arg2的子串,不是则fail

10

assertNotIn(arg1, arg2, msg=None)

验证arg1不是arg2的子串,是则fail

11

assertIsInstance(obj, cls, msg=None)

验证obj是cls的实例,不是则fail

12

assertNotIsInstance(obj, cls, msg=None)

验证obj不是cls的实例,是则fail

二、比较断言

序号

断言方法

断言描述

1

assertAlmostEqual (first, second, places = 7, msg = None, delta = None)

验证first约等于second。 palces: 指定精确到小数点后多少位,

默认为7

2

assertNotAlmostEqual (first, second, places, msg, delta)

验证first不约等于second。 palces: 指定精确到小数点后多少位,

默认为7 注: 在上述的两个函数中,如果delta指定了值,

则first和second之间的差值必须≤delta

3

assertGreater (first, second, msg = None)

验证first > second,否则fail

4

assertGreaterEqual (first, second, msg = None)

验证first ≥ second,否则fail

5

assertLess (first, second, msg = None)

验证first < second,否则fail

6

assertLessEqual (first, second, msg = None)

验证first ≤ second,否则fail

7

assertRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索匹配的文本text。

regexp:通常使用re.search()

8

assertNotRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索不匹配的文本text。

regexp:通常使用re.search()

说明:两个参数进行比较(>、≥、<、≤、约等、不约等)

三、复杂断言

序号

断言方法

断言描述

1

assertListEqual(list1, list2, msg = None)

验证列表list1、list2相等,不等则fail,同时报错信息返回具体的不同的地方

2

assertTupleEqual (tuple1, tuple2, msg = None)

验证元组tuple1、tuple2相等,不等则fail,同时报错信息返回具体的不同的地方

3

assertSetEqual (set1, set2, msg = None)

验证集合set1、set2相等,不等则fail,同时报错信息返回具体的不同的地方

4

assertDictEqual (expected, actual, msg = None

验证字典expected、actual相等,不等则fail,同时报错信息返回具体的不同的地方

四、示例

        (1)assertEqual(arg1, arg2),  判断arg1 == arg2  结果是一个bool值  可以是任意数据类型

                

自动化断言 java 自动化断言是什么_断言

        (2) assertIn(str1, str2)  判断str1是不是str2的子串, str1 in str2  结果是一个bool值  只能是字符串

                

自动化断言 java 自动化断言是什么_自动化断言 java_02

         (3)具体用哪种断言方法,根据实际情况而定 常见:获取网页标题、url地址、元素的text文本、元素的某一个属性等。示例:      

自动化断言 java 自动化断言是什么_python_03

自动化断言 java 自动化断言是什么_异常处理_04

 五、断言失败后续的代码不会被执行,所以可以使用异常处理

        异常处理的格式:

try:
    可能会出现异常的代码
except 指定异常类型:
    捕获到异常时执行的代码
else: 
    没有捕获到异常时执行的代码
finally:
    有没有异常都会执行

        示例:

def test_xueshu(self):
        driver = self.driver
        driver.find_element_by_link_text('学术').click()
        driver.switch_to.window(driver.window_handles[1])
        try:
            # 预期结果
            Expected = "https://xueshu.baidu.com"
            # 获取当前网页URL 实际结果
            Actual = driver.current_url
            # 断言
            self.assertEqual(Expected, Actual)
            # 在百度学术搜索自己名字
            driver.find_element_by_id('kw').send_keys('lilgaage')
            driver.find_element_by_id('su').click()
            sleep(2)
            # 动态时间
            now = time.strftime("%Y%m%d_%H%M%S")
            driver.get_screenshot_as_file("images/img_{}_百度学术搜索lilgaage.png".format(now))
        # 捕获到指定异常--->断言失败
        except AssertionError:
            print("断言失败,进入的不是百度学术页面")
            # 截图
            now = time.strftime("%Y%m%d_%H%M%S")
            driver.get_screenshot_as_file("images/img_{}_断言失败_不是百度学术搜索.png".format(now))
            # 抛出异常
            raise
        finally:
            print("断言结束")
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   74   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   59   0   0 Python
  fwjWaDlWXE4h   2024年05月17日   30   0   0 Python
  YpHJ7ITmccOD   2024年05月17日   33   0   0 Python
t7X7T4l7J6Bx