软件测试

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

2020-06-10  本文已影响0人  梵音11

目录:

一、基础入门

二、测试用例的命名规则

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

四、测试脚手架

五、命令行运行

一、基础入门

"""

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

明天续集

上一篇下一篇

猜你喜欢

热点阅读