pytest接口自动化测试框架 | pytest的setup和teardown函数
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest接口自动化测试框架 | pytest的setup和teardown函数相关的知识,希望对你有一定的参考价值。
视频来源:B站《冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频【软件测试】》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:pytest接口自动化测试框架 | 汇总_COCOgsta的博客-CSDN博客
test_setup01.py
import pytest
def multiply(a, b):
return a * b
"""
第一批次:setup_module/teardown_module:在当前文件中,在所有测试用例执行之前与之后执行
第二批次:setup_function/teardown_function:在每个测试函数之前与之后执行
第三批次:setup/teardown:在每个测试函数之前与之后执行,这2个方法同样适用于类方法
PS: 方法的定义顺序调整了,也还是按照既定规则执行
"""
def setup_module(module):
print("setup_module===============================>")
def teardown_module(module):
print("teardown_module======================>")
def setup_function(function):
print("setup_function------------------------------>")
def teardown_function(function):
print("teardown_function------------------------------>")
def setup():
print("setup--->")
def teardown():
print("teardown--->")
# 测试用例
def test_mul_01():
print('test_3_4')
assert multiply(3,4) == 12
def test_mul_02():
print('test_6_8')
assert multiply(6,8) == 48
main.py,实际执行时setup和teardown并没有打印
import pytest
if __name__ == '__main__':
pytest.main(["-s", "test_setup01.py"])
test_setup02.py
import pytest
# 功能函数
def multiply(a, b):
return a * b
"""
pytest是支持使用测试类的,必须以“Test”开头,注意首字母大写
"""
class TestMultiply:
# =======fixtures=======
"""
第一批次:setup_ class / teardown_ class:
# 在当前测试类的开始与结束时执行。
第二批次:setup_ method / teardown_ method:
# 在每个测试方法开始与结束时执行。
第三批次:setup / teardown:
# 在每个测试方法开始与结束时执行,同样可以作用于测试函数
PS:执行顺序按批次顺序来,即使改变方法位置,也是一样
"""
@classmethod
def setup_class(cls):
print("setup_class==============>")
@classmethod
def teardown_class(cls):
print("teardown_class==============>")
def setup_method(self, method):
print("setup_method----->>")
def teardown_method(self, method):
print("teardown_method---->>")
def setup(self):
print("setup---->")
def teardown(self):
print("teardown---->")
# =======测试用例===========
def test_numbers_5_6(self):
print('test_numbers_5_6')
assert multiply(5,6) == 30
def test_strings_b_2(self):
print('test_strings_b_2')
assert multiply('b', 2) == "bb"
main.py,实际运行时也是没有打印setup和teardown
import pytest
if __name__ == '__main__':
pytest.main(["-s", "test_setup02.py"])
以上是关于pytest接口自动化测试框架 | pytest的setup和teardown函数的主要内容,如果未能解决你的问题,请参考以下文章
pytest接口自动化测试框架 | pytest获取执行数据pytest禁用插件
pytest接口自动化测试框架 | pytest生成简单测试报告
pytest接口自动化测试框架 | pytest常用运行参数