pytest学习笔记(pytest框架结构)
一.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框架结构)的更多相关文章
- [转载]pytest学习笔记
pytest学习笔记(三) 接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, ...
- pytest 学习笔记一 入门篇
前言 之前做自动化测试的时候,用的测试框架为Python自带的unittest框架,随着工作的深入,发现了另外一个框架就是pytest (官方地址文档http://www.pytest.org/en/ ...
- Pytest学习笔记3-fixture
前言 个人认为,fixture是pytest最精髓的地方,也是学习pytest必会的知识点. fixture用途 用于执行测试前后的初始化操作,比如打开浏览器.准备测试数据.清除之前的测试数据等等 用 ...
- Pytest学习笔记(一) 环境安装及入门
简介 pytest是python的一个单元测试框架,类似于unittest,相对unittest来说,pytest使用更简单,功能更强大. 安装 pip3 install -U pytest 查看版本 ...
- Pytest学习笔记8-参数化
前言 我们在实际自动化测试中,某些测试用例是无法通过一组测试数据来达到验证效果的,所以需要通过参数化来传递多组数据 在unittest中,我们可以使用第三方库parameterized来对数据进行参数 ...
- pytest学习笔记
From: https://blog.csdn.net/gaowg11/article/details/54910974 由于对测试框架了解比较少,所以最近看了下pytest测试框架,对学习心得做个记 ...
- pytest学习笔记(一)
这两天在学习pytest,之前有小用到pytest,觉得这个测试框架很灵巧,用在实现接口自动化(pytest+requests)非常的轻便,然后很有兴致的决定学习下,然后又发现了pytest-sele ...
- Pytest学习笔记5-conftest.py的用法
前言 在之前介绍fixture的文章中,我们使用到了conftest.py文件,那么conftest.py文件到底该如何使用呢,下面我们就来详细了解一下conftest.py文件的特点和使用方法吧 什 ...
- Pytest学习笔记6-自定义标记mark
前言 在pytest中,我们可以使用mark进行用例的自定义标记,通过不同的标记实现不同的运行策略 比如我们可以标记哪些用例是生产环境执行的,哪些用例是测试环境执行的,在运行代码的时候指定对应的mar ...
随机推荐
- Linux课程知识点总结(一)
Linux课程知识点总结(一) 一.Linux系统的简介 1.1 什么是Linux Linux是一个免费的多用户.多任务的操作系统,其运行方式.功能和Unix系统很相似,但Linux系统的稳定性.安全 ...
- MySQL的修仙者之旅,不来看看你的修为如何吗?
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写 ...
- Linux工具包
Linux的工具包 JDK 版本:14 百度网盘:链接: https://pan.baidu.com/s/1hWqGVmsElOCBufMuscPXzw 密码:st3y 安装步骤: 1.使用S ...
- linux操作系统及常用命令
GUN:GUN is Not UnixGPL:General Public License.通用公共许可证,版权 Copyright,Copyleft 开源协议LGPL:lesserGPLv2GPLv ...
- 在飞儿云主机里使用酷Q时遇到相关问题的解决办法
情况1:酷Q Air版本可以使用,而Pro版本无法运行 解决方法如下: p.p1 { margin: 0; font: 13px "Helvetica Neue"; color: ...
- 让vs2013自带的IISExpress支持apk文件下载
使用vs2013作为android的服务器端开发时,总是会碰到需要自动更新的功能,VS2013自带IIS Express,想要下载apk文件,就需要添加MIME映射.没有图形界面,只能命令行.进入C: ...
- python初学者-鸡兔同笼简单算法
鸡兔同笼问题.假设共有鸡.兔30只,脚90只.求鸡.兔各有多少只 使用for循环快速解决鸡兔同笼问题 for ji in range(0,31): if 2*ji+(30-ji)*4==90: pri ...
- 唐诗宋词APP
古诗词个人爱好,已收集5万多首唐诗以及1万多首宋词,因时间有限目前只开发了苹果版,后期开发安卓版, <风月醉>一 国学经典,有兴趣的可以下载学习古诗词,有问题可以留言哦! https:// ...
- 算法(Java实现)—— 贪心算法
贪心算法 应用场景-集合覆盖问题 假设在下面需要付费的广播台,以及广播台新型号可以覆盖的地区,如何选择最少的广播台,让所有地区都可以接收到信号 广播台 覆盖地区 k1 北京.上海.天津 k2 广州.北 ...
- 再看C语言-算法
通常一个程序包括算法.数据结构.程序设计方法及语言工具和环境这四个方面.其中算法是核心,算法就是解决"做什么"和"如何做"的问题.算法是程序的灵魂,项目中如果接 ...