一.pytest框架中使用setup、teardown、更灵活按照用例级别可以分为以下几类:

1.模块级:(setup_module、teardown_module)在模块始末调用

2.函数级:(setup_function、teardown_function)在函数始末调用 在类外部

3.类级:(setup_class、teardown_class)在类始末调用 在类中

4.方法级:(setup_method、teardown_method)在方法始末调用 在类中

5.方法级:(setup、teardown)在方法始末调用 在类中

二.调用顺序

setup_module>setup_class>setup_method>setup>teardown>teardown_method>teardown_class>teardown_module

三.实例

#!/usr/bin/env python
# _*_coding: utf-8 _*_ def setup_module():
print("\nsetup_module, 只执行一次,当有多个测试类的时候使用") def teardown_module():
print("\nteardown_module, 只执行一次,当有多个测试类的时候使用") class TestPytest1(object): @classmethod
def setup_class(cls):
print("\nsetup_class1, 只执行一次") @classmethod
def teardown_class(cls):
print("\nteardown_class1,只执行一次") def setup_method(self):
print("\nsetup_method, 每个测试方法执行一次") def teardown_method(self):
print("\nteardown_method, 每个测试方法执行一次") def test_three(self):
print("test_three, 测试用例") def test_four(self):
print("test_four, 测试用例") class TestPytest2(object): @classmethod
def setup_class(cls):
print("\nsetup_class2, 只执行一次") @classmethod
def teardown_class(cls):
print("\nteardown_class2,只执行一次") def setup_method(self):
print("\nsetup_method2, 每个测试方法执行一次") def teardown_method(self):
print("\nteardown_method2, 每个测试方法执行一次") def test_one(self):
print("test_one, 测试用例") def test_two(self):
print("test_two, 测试用例")

四.执行结果

Testing started at 15:06 ...
C:\Python\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1\helpers\pycharm\_jb_pytest_runner.py" --path C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_run_setup.py
Launching pytest with arguments C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_run_setup.py in C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
============================= test session starts =============================
platform win32 -- Python 3.8.0, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
plugins: html-2.1.1, metadata-1.11.0collected 4 items

test_run_setup.py
setup_module, 只执行一次,当有多个测试类的时候使用

setup_class1, 只执行一次

setup_method, 每个测试方法执行一次
.test_three, 测试用例

teardown_method, 每个测试方法执行一次

setup_method, 每个测试方法执行一次
.test_four, 测试用例

teardown_method, 每个测试方法执行一次

teardown_class1,只执行一次

setup_class2, 只执行一次

setup_method2, 每个测试方法执行一次
.test_one, 测试用例

teardown_method2, 每个测试方法执行一次

setup_method2, 每个测试方法执行一次
.test_two, 测试用例

teardown_method2, 每个测试方法执行一次

teardown_class2,只执行一次

teardown_module, 只执行一次,当有多个测试类的时候使用
[100%]

============================== 4 passed in 0.04s ==============================

Process finished with exit code 0

pytest学习笔记(pytest框架结构)的更多相关文章

  1. [转载]pytest学习笔记

    pytest学习笔记(三)   接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, ...

  2. pytest 学习笔记一 入门篇

    前言 之前做自动化测试的时候,用的测试框架为Python自带的unittest框架,随着工作的深入,发现了另外一个框架就是pytest (官方地址文档http://www.pytest.org/en/ ...

  3. Pytest学习笔记3-fixture

    前言 个人认为,fixture是pytest最精髓的地方,也是学习pytest必会的知识点. fixture用途 用于执行测试前后的初始化操作,比如打开浏览器.准备测试数据.清除之前的测试数据等等 用 ...

  4. Pytest学习笔记(一) 环境安装及入门

    简介 pytest是python的一个单元测试框架,类似于unittest,相对unittest来说,pytest使用更简单,功能更强大. 安装 pip3 install -U pytest 查看版本 ...

  5. Pytest学习笔记8-参数化

    前言 我们在实际自动化测试中,某些测试用例是无法通过一组测试数据来达到验证效果的,所以需要通过参数化来传递多组数据 在unittest中,我们可以使用第三方库parameterized来对数据进行参数 ...

  6. pytest学习笔记

    From: https://blog.csdn.net/gaowg11/article/details/54910974 由于对测试框架了解比较少,所以最近看了下pytest测试框架,对学习心得做个记 ...

  7. pytest学习笔记(一)

    这两天在学习pytest,之前有小用到pytest,觉得这个测试框架很灵巧,用在实现接口自动化(pytest+requests)非常的轻便,然后很有兴致的决定学习下,然后又发现了pytest-sele ...

  8. Pytest学习笔记5-conftest.py的用法

    前言 在之前介绍fixture的文章中,我们使用到了conftest.py文件,那么conftest.py文件到底该如何使用呢,下面我们就来详细了解一下conftest.py文件的特点和使用方法吧 什 ...

  9. Pytest学习笔记6-自定义标记mark

    前言 在pytest中,我们可以使用mark进行用例的自定义标记,通过不同的标记实现不同的运行策略 比如我们可以标记哪些用例是生产环境执行的,哪些用例是测试环境执行的,在运行代码的时候指定对应的mar ...

随机推荐

  1. Ch2信息的表示和处理——caspp深入理解计算机系统

    目录 第2章 信息的表示和处理 2.1 信息存储 2.1.1 十六进制 一.表示法 二.加减 三.进制转换 2.1.2 字 2.1.3 数据大小 2.1.4 字节顺序与表示 一.字节的排列规则 二.打 ...

  2. 算法(Java实现)—— 动态规划算法

    动态规划算法 应用场景-0-1背包问题 背包问题:有一个背包,容量为4磅,现有物品如下 物品 重量 价格 吉他(G) 1 1500 音响(S) 4 3000 电脑(L) 3 2000 要求: 达到目标 ...

  3. Dotnet Core多版本API共存的优雅实现

    API升级,新旧版本的API共存,怎么管理呢?   一.前言 最近,单位APP做了升级,同步的,API也做了升级. 升级过程中,出现了一点问题:API升级后,旧API也需要保留,因为有旧的APP还在使 ...

  4. PSO 粒子群算法

    注:本人参考http://www.cnblogs.com/tiandsp/category/348031.html来实现的 算法步骤: 1.首先确定粒子个数与迭代次数. 2.对每个粒子随机初始化位置与 ...

  5. python序列(五)切片操作

    功能:截取列表中的任何部分. 切片适用于列表.元组.字符串.range对象等类型.. 格式:[::]切片使用两个冒号分隔的3个数字来完成. 第一个数字表示切片开始位置(默认为0). 第二个数字表示切片 ...

  6. Linux嵌入式学习-烟雾传感器驱动-字符设备驱动-按键驱动

    MQ-2烟雾气敏传感器模块在X210v3开发板上的驱动. 现在需要一个MQ-2烟雾气敏传感器模块的驱动.其检测烟雾超过一定的标准后,会返回一个不同的电平,和按键驱动差不多. 但是在编写驱动的时候,需要 ...

  7. 分享知乎关于pull request的分享

    作者:知乎用户链接:https://www.zhihu.com/question/21682976/answer/79489643来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  8. SalesForce学习——权限管理

    Salesforce 对于权限的管理是非常严谨的并且支持不同维度的权限控制.常用的有简档.权限集.角色层级机构.组织范围. 简档:Profiles是Salesforce为每个用户指定的标准配置文件,在 ...

  9. 笔记本使用网线连接可以进行ftp下载,但是通过wifi连接只能登陆不能下载的问题。

    环境: (1)服务器为阿里云服务器,有公网ip,有内网ip,公网和内网已经做了相关端口的映射,ftp服务器为FileZilla,ftp服务器被动模式已开启,防火墙已关闭 (2)ftp客户端为java写 ...

  10. git 合并多次commit

    如果当前分支提交了多次commit,无法merge到master上,就需要合并多出的几次commit 第一步 查看log: git log 第二步 git rebase -i HEAD~2 对最近的两 ...