fixtrue修饰器标记的方法通常用于在其他函数、模块、类或者整个工程调用时会优先执行,通常会被用于完成预置处理和重复操作。例如:登录,执行SQL等操作。

完整方法如下:fixture(scope='function',params=None,autouse=False,ids=None,name=None)

参数说明:

1.scope参数:标记方法的作用域。有4个可选值:function(默认,函数)、class(类)、module(模块)、package/session(包)

(1)作用域为函数实例

import pytest

@pytest.fixture(scope='function',autouse=True)
def login():
print('登录系统') def test_01():
print('测试用例一') class TestCase: def test_03(self):
print('测试用例三') def test04(self):
print('测试用例四') if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])

注意:该模块中所有的函数在执行之前都会执行login函数。

(2)作用域为类实例一:

import pytest

@pytest.fixture(scope='class',autouse=True)
def login():
print('登录系统') def test_01():
print('测试用例一') class TestCase1:
def test_03(self):
print('测试用例三')
def test04(self):
print('测试用例四') class TestCase2:
def test_05(self):
print('测试用例五')
def test06(self):
print('测试用例六') if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])

注意:在TestCase1类和TestCase2类中,login方法都只会被执行一次。函数test_01也会执行一次。

(2) 作用域为类实例二:

import pytest

@pytest.fixture()
def login():
print('登录系统') def test_01():
print('测试用例一') @pytest.mark.usefixtures('login')
class TestCase: def test_03(self):
print('测试用例三') def test04(self):
print('测试用例四') if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])

注意:此方式函数不会被执行,但是被作用的类中的每个函数执行之前都会执行一次,在测试类前面添加:@pytest.mark.usefixtures('login') 其中login为函数名。

(3)作用域为module时表示整个模块中都只会执行一次。这里不在累述。

(4)作用域为package时表示整个包都只会执行一次。这里不在累述。

(5)在N个用例中指定某一个用例执行

import pytest

@pytest.fixture()
def login():
print('登录系统') def test_01():
print('测试用例一') class TestCase1:
def test_03(self):
print('测试用例三')
def test04(self,login):
print('测试用例四') if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])

注意:test04以参数的形式传入了执行的方法login,这样来指定只有test04方法在执行时才执行login方法。

特别注意:如果在login函数中加入reutrn 'success',在test04方法中加入print(login),那么print(login)打印的值就是返回的success.

如果你此文你也有同感,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12553981html
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

【Pytest03】全网最全最新的Pytest框架fixture应用篇(1)的更多相关文章

  1. 【Pytest04】全网最全最新的Pytest框架fixture应用篇(2)

    一.Fixture参数之params参数可实现参数化:(可以为list和tuple,或者字典列表,字典元祖等) 实例如下: import pytest def read_yaml(): '] @pyt ...

  2. 【Pytest02】全网最全最新的Pytest框架快速进阶篇(pytest前置和后置以及忽略测试用例)

    一.Pytest的前置和后置方法 1.Pytest可以集成unittest实现前置和后置 import unittest import pytest class TestCase(unittest.T ...

  3. 【Pytest01】全网最全最新的Pytest框架快速入门

    一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni ...

  4. 【Pytest05】全网最全最新的Pytest框架之用例分组执行

    一.Fixture用例分组运行常用于冒烟测试,分模块运行等 pytest.ini配置文件中增加分组参数markers来实现用例分组,如: markers = g1:组一 smoke:冒烟测试 pyte ...

  5. (zhuan) 深度学习全网最全学习资料汇总之模型介绍篇

    This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058& ...

  6. pytest框架: fixture之conftest.py

    原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...

  7. pytest框架fixture的使用

    fixture可以当做参数传入 定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要以test开头,跟用例区分开.fixtu ...

  8. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装爬虫框架Scrapy(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 参考博客 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解) 第一步:首先,提示升级下pip 第二步 ...

  9. 全网最全ASP.NET MVC 教程汇总

    全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MV ...

随机推荐

  1. Java入门教程十二(集合与泛型)

    在 Java 中数组的长度是不可修改的.然而在实际应用的很多情况下,无法确定数据数量.这些数据不适合使用数组来保存,这时候就需要使用集合. Java 的集合就像一个容器,用来存储 Java 类的对象. ...

  2. python2.7.6安装easy_install (windows 64 环境)

    1.复制以下代码保存到easy_install.py文件中(文件名可随意命名)并将该文件放到python的安装路径中(如:D:\Python27) #!/usr/bin/env python &quo ...

  3. 原生js实现在表格用鼠标框选并有反选功能

    今天应同学要求,需要写一个像Excel那样框选高亮,并且实现框选区域实现反选功能.要我用原生js写,由于没什么经验翻阅了很多资料,第一次写文章希望各位指出不足!! 上来先建表 <div clas ...

  4. vue项目开发,用webpack配置解决跨域问题

    今天在本地开发时候碰到了跨域的问题,突然觉着跨域问题在所难免啊,之前没有没有碰到总觉着解决跨域很高大上的样纸,其实就是受限于网络的同源策略,跨域前后端都可以进行处理. 1,后端更改header hea ...

  5. 脚本写一行echo也能写出bug ? glob了解一下

    背景 最近处理一个 bug 很有意思,有客户反馈某个配置文件解析失败了,出错的那行的内容就只有一个字母 a. 最开始以为是谁改动了处理的脚本,但要到了问题代码中的脚本,比较发现跟库上是一样的. 又经过 ...

  6. Java集合03——你不得不了解的Map

    Map 在面试中永远是一个绕不开的点,本文将详细讲解Map的相关内容.关注公众号「Java面典」了解更多 Java 知识点. Map Map 是一个键值对(key-value)映射接口: 映射中不能包 ...

  7. 5G 将带给程序员哪些新机会呢?

    5G,第 5 代移动通信技术,华为在此领域远远领先同行,这也让它成了中美贸易战的最前线.我的第一份工作就在通信行业,当时电信标准都在欧美企业手里,国内企业主要是遵照标准研发软硬件设备,核心芯片靠进口. ...

  8. 手动搭建webpack + vue项目之初体验

    在使用vue做开发时,大部分人只会使用官方提供的脚手架搭建项目,脚手架虽然很好用,但想要成为一名优秀的前端开发者,webpack这一道坎是绕不开的,所以我们要学会脱离脚手架,利用webpack手动搭建 ...

  9. py123第一次作业

      绘制五角星<br>import turtle turtle.setup(600,350,200,200) turtle.pensize(2) turtle.pencolor(" ...

  10. Python基础篇(一)_基本语法元素

    Python基础篇——基本语法元素 缩进:体现强制可读性,一般缩进4个空格.一个或多个Tab 注释:单行注释----以 # 开头 多行注释----每行以 # 开头,以 # 结束 变量:无须提前声明.可 ...