美文网首页软件测试
三步学会用 python+unittest 搭建简易的接口测试框

三步学会用 python+unittest 搭建简易的接口测试框

作者: 梵音11 | 来源:发表于2020-06-10 22:19 被阅读0次

    目录:

    一、基础入门

    二、测试用例的命名规则

    三、测试用例在文件中的执行先后顺序

    四、测试脚手架

    五、命令行运行

    一、基础入门

    """

    unittest  练习

    unittest 是Python 自带的模块,不需要安装,可以直接使用。

    """

    import unittest

    # 继承TestCase 类

    class TestDemo(unittest.TestCase):

        # 测试用例

        def test_01(self):

            print('01')

            self.assertTrue(False)

        def test_02(self):

            print('02')

    if __name__ == '__main__':

        unittest.main() # unittest 的执行

    运行结果

    01

    02

    F.

    ======================================================================

    FAIL: test_01 (__main__.TestDemo)

    ----------------------------------------------------------------------Traceback (most recent call last):

      File "C:/Users/zengy/Documents/fanmao/20/apptest01/

    003.py", line 13, in test_01

        self.assertTrue(False)

    AssertionError: False is not true

    ----------------------------------------------------------------------

    Ran 2 tests in 0.001s

    FAILED (failures=1)

    Process finished with exit code 1( 想了解测试内容可加我QQ:1844835571)

    二、测试用例的命名规则

    测试用例的命名规则为定义方法名以 test 开头。

    import unittest

    # 继承TestCase 类

    class TestDemo(unittest.TestCase):

        """

        测试用例的命名规则为 test 开头

        """

        # 测试用例

        def test_01(self):

            print('01')

            self.assertTrue(False)

        def test_02(self):

            print('02')

        def test03(self):

            assert True

        # 普通方法,不能作为测试用例被执行

        def add(self):

            print('add')

        # 普通方法,不能作为测试用例被执行

        def addtest(self):

            assert True

        # 普通方法,不能作为测试用例被执行

        def add_test(self):

            assert Tru

    if __name__ == '__main__':

        unittest.main() # unittest 的执行

    三、测试用例在文件中的执行先后顺序

    排序规则,不是你在文件中定义case的先后顺序,而是根据执行过程中定义的case名称来排序:

    测试用例的执行先后顺序:

    ● 数字顺序 0-9

    ● 下划线 _

    ● 英文字符 A-Z  a-z

    import unittest

    class Demo4(unittest.TestCase):

        """

        测试用例的执行先后顺序:

        数字顺序 0-9

        下划线 _

        英文字符 A-Z  a-z

        """

        def test_01_add_topic(self):

            assert True

        def test_02_update_topic(self):

            assert Tru

        def test_03_detail_topic(self):

            assert True

        def test_04_collect_topic(self):

            assert True

    if __name__ == '__main__':

        unittest.main(verbosity=2)  # 显示详细的运行日志级别

    四、测试脚手架

    测试用例级别:

    ● setUp 定义每个用例运行之前的操作

    ● tearDown 定义每个用例运行之后的操作

    整个class 级别

    ● setUpClass 运行class 之前

    ● tearDownClass 运行class 之后

    """

    test fixture 测试脚手架

    """

    import unittest

    class Demo5(unittest.TestCase):

        """

        每个测试用例执行之前和之后的操作

        测试用例级别:

        setUp 定义每个用例运行之前的操作( 想了解测试内容可加我QQ:1844835571)

        tearDown 定义每个用例运行之后的操作

        整个class 级别

        setUpClass 运行class 之前

        tearDownClass 运行class 之后

        """

        def setUp(self) -> None:

            print('运行方法之前')

        def tearDown(self) -> None:

            print("运行方法之后执行")

        @classmethod

        def setUpClass(cls) -> None:

            print('运行类里面所有的case 之前')

        @classmethod

        def tearDownClass(cls) -> None:

            print('运行类里面所有的case 之后')

        def test_run1(self):

            print("现在开始运行run1")

        def test_run2(self):

            print("现在开始运行run2")

    if __name__ == '__main__':

        unittest.main(verbosity=2)

    五、命令行运行

    ● -m 指定模块

    ● -v 显示日志详情

    命令行运行 主要用作调试。

    1、运行多个模块

    运行004.py 和005.py两个文件中所有的case

    python -m unittest 004.py 005.py -v

    2、运行005中的Demo5_2 类

    python -m unittest 005.Demo5_2 -v

    3、运行类中单独测试用例

    运行005.py文件中 Demo5_2 class 的 test_run2 方法

    python -m unittest 005.Demo5_1.test_run2 -v

    明天续集

    相关文章

      网友评论

        本文标题:三步学会用 python+unittest 搭建简易的接口测试框

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