【Pytest03】全网最全最新的Pytest框架fixture应用篇(1)
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)的更多相关文章
- 【Pytest04】全网最全最新的Pytest框架fixture应用篇(2)
一.Fixture参数之params参数可实现参数化:(可以为list和tuple,或者字典列表,字典元祖等) 实例如下: import pytest def read_yaml(): '] @pyt ...
- 【Pytest02】全网最全最新的Pytest框架快速进阶篇(pytest前置和后置以及忽略测试用例)
一.Pytest的前置和后置方法 1.Pytest可以集成unittest实现前置和后置 import unittest import pytest class TestCase(unittest.T ...
- 【Pytest01】全网最全最新的Pytest框架快速入门
一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni ...
- 【Pytest05】全网最全最新的Pytest框架之用例分组执行
一.Fixture用例分组运行常用于冒烟测试,分模块运行等 pytest.ini配置文件中增加分组参数markers来实现用例分组,如: markers = g1:组一 smoke:冒烟测试 pyte ...
- (zhuan) 深度学习全网最全学习资料汇总之模型介绍篇
This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058& ...
- pytest框架: fixture之conftest.py
原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...
- pytest框架fixture的使用
fixture可以当做参数传入 定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要以test开头,跟用例区分开.fixtu ...
- 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装爬虫框架Scrapy(离线方式和在线方式)(图文详解)
不多说,直接上干货! 参考博客 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解) 第一步:首先,提示升级下pip 第二步 ...
- 全网最全ASP.NET MVC 教程汇总
全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MV ...
随机推荐
- dubbo与trivial超时机制的深入思考
说在前面 trivial是根据之前设计的RPC框架而来的(还在增进当中),其中较为不同的一个点为,在客户端去掉了业务线程池,因为既然都要等待,不必要再加一层. 进入正题 有在网上看到这样的信息,“之前 ...
- SQL语句中in 与 exists的区别
SQL语句中in 与 exists的区别 SQL中EXISTS检查是否有结果,判断是否有记录,返回的是一个布尔型(true/false); IN是对结果值进行比较,判断一个字段是否存在于几个值的范围中 ...
- jquery-购物车js
购物车示例js,为了方便参考,页面写的比较简单.示例如下图所示: html代码如下: <!doctype html> <html lang="en"> &l ...
- 20170809-从URL输入到页面展现
从URL输入到页面展现 1.输入URL URL:统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示. URL包含以下几部分:协议.服务器名称(或IP地址).路径.参数和查询. ...
- nes 红白机模拟器 第6篇 声音支持
InfoNES 源码中并没有包含 linux 的声音支持. 但提供 wince 和 win 的工程,文件,通过分析,win 的 DirectSound 发声,在使用 linux ALSA 实现. 先使 ...
- 为什么java内部类访问局部变量必须声明为final?
https://blog.csdn.net/z55887/article/details/49229491 先抛出让我疑惑了很久的一个问题 编程时,在线程中使用局部变量时候经常编译器会提示:局部变量必 ...
- 【10】openlayers 视图view
创建地图: //View对象代表地图的简单2D视图 //创建view let view = new ol.View({ center:[109,34],//视图的初始中心 maxZoom:18,//最 ...
- Spark入门(五)--Spark的reduce和reduceByKey
reduce和reduceByKey的区别 reduce和reduceByKey是spark中使用地非常频繁的,在字数统计中,可以看到reduceByKey的经典使用.那么reduce和reduceB ...
- MVC超链接调用控制器内的方法
<a href="hello/Layout?name=Tom"><h1><span>Hello</span>World</h1 ...
- JavaScript 基础知识汇总目录
一.标签.代码结构.现代模式.变量.数据类型.类型转换 GO 二.运算符.值的比较.交互.条件运算符.逻辑运算符 GO 三.循环 while 和 for .switch语句.函数.函数表达式和箭头函数 ...