pytest快速入门--管理用例小技巧

我们进入用例执行前可能都需要打开浏览器登录等,执行完毕后需要关闭浏览器等操作,这些我们都可以用前置后置初始化环境去实现的,然后这样的前置后置方法有很多,你们了解吗?

pytest能管理用例也不是随便说说的,对于管理用例这块它是认真的

用例运行级别

  • 类级(setup_class/teardown_calss)只在类中前后运行一次
  • 类里面的(setup/teardown)运行在调用方法前后
  • 模块级(setup_module/teardown_module)开始于横块始末,全局的
  • 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)

setup/teardown:用例执行之前,用例执行之后的步骤

执行顺序 setup -- test_01 --teardown

import pytest

class TestCase:
    def setup(self):
        print('用例执行之前的步骤:打开文件')
    def teardown(self):
        print('用例执行之后要做的步骤:关闭文件')
        
    def test_01(self):
        print('第一条用例')
    def test_02(self):
        print('第二条用例')
    def test_03(self):
        print('第三条用例')
if __name__ == '__main__':
    pytest.main(['py_test.py','-sv'])

pytest快速入门--管理用例小技巧_第1张图片

setup_class/teardown_calss:所有用例执行之前,所用用例执行之后的步骤

执行顺序setup_class //setup -- test_01 --teardown,setup -- test_02 --teardown //teardown_calss

import pytest

class TestCase:
    def setup_class(self):
        print('所有用例执行之前的步骤:打开浏览器')
    def teardown_class(self):
        print('所有用例执行之后的步骤:关闭浏览器')

    def setup(self):
        print('用例执行之前的步骤:打开文件')

    def teardown(self):
        print('用例执行之后要做的步骤:关闭文件')

    def test_01(self):
        print('第一条用例')
    def test_02(self):
        print('第二条用例')
    def test_03(self):
        print('第三条用例')
if __name__ == '__main__':
    pytest.main(['py_test.py','-sv'])

pytest快速入门--管理用例小技巧_第2张图片

setup_function/_function:用例执行之前,用例执行之后的步骤

执行顺序 setup_function -- test_001 --teardown_function

import pytest
# 函数式
def setup_function():
    print('setup_function:每个用例前都会执行')
def teardown_function():
    print('teardown_function:每个用例后都会执行')

def test_001():
    print("正在执行第一条用例")
def test_002():
    print("正在执行第二条用例")

if __name__ == '__main__':
    pytest.main(['-sv', 'test_py.py'])

pytest快速入门--管理用例小技巧_第3张图片

setup_module/teardown_module:用例执行之前,用例执行之后的步骤

执行顺序 setup_module setup_function -- test_001 --teardown_function setup_function -- test_002 --teardown_function teardown_module

import pytest
def setup_module():
    print('setup_module:整个.py模块只执行一次')
    print("比如:所有用例开始前只打开一次浏览器")
def teardown_module():
    print('teradown_module:整个.py模块只执行一次')
    print("比如:所有用例结束只最后关闭浏览器")
# 函数式
def setup_function():
    print('setup_function:每个用例前都会执行')
def teardown_function():
    print('teardown_function:每个用例后都会执行')

def test_001():
    print("第一条用例")
def test_002():
    print("第二条用例")

if __name__ == '__main__':
    pytest.main(['-sv', 'test_py.py'])

pytest快速入门--管理用例小技巧_第4张图片

pytest还有很多管理用例小技巧哟,例如用例跳过,用例并发等等。。将持续更新

你可能感兴趣的:(pytest系列,pytest)