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

目录:

一、基础入门

二、测试用例的命名规则

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

四、测试脚手架

五、命令行运行

在这里插入图片描述

一、基础入门

“”"

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(测试交流群:829792258/行业大神交流探讨/共享资料)

二、测试用例的命名规则

测试用例的命名规则为定义方法名以 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 定义每个用例运行之前的操作(测试交流群:829792258/行业大神交流探讨/共享资料)
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
明天续集
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48048408/article/details/106676337