美文网首页
『心善渊』Selenium3.0基础 — 38.单元测试框架un

『心善渊』Selenium3.0基础 — 38.单元测试框架un

作者: 繁华似锦Fighting | 来源:发表于2020-09-17 00:08 被阅读0次

    (三)断言方法

    1、断言介绍

    在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的,这时会用到断言方法。

    本着没有消息就是最好的消息的原则,如果断言成功不采取任何措施(不输入任何日志),否则就会触发AssertionError(断言错误)的异常。

    2、常用的断言方法

    断言方法名称 使用参数 验证
    assertEqual()(常用) a,b,[msg='测试失败时打印的信息'] 断言a和b是否相等,相等则测试用例通过
    assertNotEqual() a,b,[msg='测试失败时打印的信息'] 断言a和b是否相等,不相等则测试用例通过。
    assertTrue()(常用) x,[msg='测试失败时打印的信息'] 断言x是否True,是True则测试用例通过
    assertFalse() x,[msg='测试失败时打印的信息'] 断言x是否false,是false则测试用例通过
    assertIs() a,b,[msg='测试失败时打印的信息'] 断言a是否是b,是则测试用例通过
    assertNotIs() a,b,[msg='测试失败时打印的信息'] 断言a是否是b,不是则测试用例通过
    assertIsNone() x,[msg='测试失败时打印的信息'] 断言x是否None,是None则测试用例通过
    assertIsNotNone() x,[msg='测试失败时打印的信息'] 断言x是否None,不是None则测试用例通过。
    assertIn() a,b,[msg='测试失败时打印的信息'] 断言a是否在b中,在b中则测试用例通过
    assertNotIn() a,b,[msg='测试失败时打印的信息'] 断言a是否在b中,不在b中则测试用例通过
    assertIsInstance() a,b,[msg='测试失败时打印的信息'] 断言a是否是b的一个实例,是则测试用例通过。
    assertNotIsInstance() a,b,[msg='测试失败时打印的信息'] 断言a是否是b的一个实例,不是则测试用例通过。

    提示:如果a和b断言失败,则输出msg中定义的信息,如果没有定义msg,则输出系统异常。

    3、断言示例

    """
    1.学习目标
        必须掌握unittest中断言使用
    2.语法
        2.1 编写位置
                在测试用例中去编写,先执行测试用例,最后一行断言。
        2.2 使用的断言方法
            注意:前边a是预期,后边b是测试实际的值
            (1)assertEqual(a,b,msg)
                断言a和b是否相等,如果相等,断言成功,否则断言失败
            (2)assertTrue(x,msg)
                断言条件x是否为True,如果是,断言成功,否则断言失败
            (3)其他断言用法类似。
        2.3 判定断言结果
            断言成功,控制台没有任何提示
            断言失败,控制台AssertionError关键字会出现
    3.需求
        编写一个有断言的测试类
    """
    # 1 导入unittest
    import unittest
    
    
    # 2 创建测试类
    class Test_demo(unittest.TestCase):
    
        # 3 编写test case
        def test_case_03(self):
            """测试用例3"""
            print("执行测试用例3")
            # 用例步骤执行完成后做断言
            # assertEqual断言a和b是否相等
            self.assertEqual(2, 1 + 1, msg="断言成功")
    
        """
        执行结果:
            断言成功,控制台没有任何提示
        
        下面是总测试结果的日志:
            执行测试用例3
            # 在0.005秒内进行1次测试
            Ran 1 test in 0.005s
            
            # 测试用例全部通过
            OK
        """
    
        def test_case_02(self):
            """测试用例2"""
            print("执行测试用例2")
            # assertEqual断言a和b是否相等
            self.assertEqual(3, 1 + 1, msg="断言失败")
    
            """
            执行结果:
            
                执行测试用例2
    
                断言失败
                3 != 2
    
                Expected(预期) :2
                Actual(实际)   :3
                
                下面会有报错信息(主要内容):
                    AssertionError: 2 != 3 : 断言失败
                    
                    # 在0.008秒内进行1次测试
                    Ran 1 test in 0.008s
                    
                    # 失败一个测试用例
                    FAILED (failures=1)
                    
                    # 断言失败
                    Assertion failed
            """
    
        def test_case_01(self):
            """测试用例1"""
            print("执行测试用例1")
            # 断言条件x是否为True
            self.assertTrue(1 > 2, msg="条件不成立,断言失败")
    
    
    # 4 编写普通方法
    if __name__ == '__main__':
        # 执行当前测试类中,以test开头的测试用例
        unittest.main()
    
    

    相关文章

      网友评论

          本文标题:『心善渊』Selenium3.0基础 — 38.单元测试框架un

          本文链接:https://www.haomeiwen.com/subject/hodfyktx.html