Pytest Fixture(三)
name: name参数表示可以对fixture的名称进行重命名:
注意:通过name重命名后,继续使用以前的名字调用会报错。
import pytest @pytest.fixture(name='anjing')
def login():
print('\n登录操作')
yield
print('\n退出登录!') class TestLogin:
def test_01(self, anjing):
print('---用例01---') def test_02(self):
print('---用例02---') if __name__ == '__main__':
pytest.main(['-vs'])
params:参数化
假设现在有一批 API 需要测试对不同数据库的支持情况(对所有数据库进行相同操作),最简单的方法就是针对每个数据库编写一个测试用例,但这包含大量重复代码,如数据库的连接、关闭,查询等。
使用固件抽离出数据库的通用操作,每个 API 都能复用这些数据库固件,同时可维护性也得到提升。
import pytest @pytest.fixture(params=[
('redis', '6379'),
('elasticsearch', '9200')
])
def param(request):
print(f"数据库的配置:{request.param}")
return request.param @pytest.fixture(autouse=True)
def db(param):
print(f'数据库连接了{param}')
yield
print(f'数据库关闭了{param}') def test_api():
assert 1 == 1
执行结果

import pytest data = ['anjing', 'test', 'admin'] @pytest.fixture(params=data, ids=['user=anjing', 'user=test', 'user=admin'])
def login(request):
print('登录功能')
yield request.param
print('退出登录') class TestCase:
def test_01(self, login):
print('---用例01---')
print(f'登录的用户名{login}') def test_02(self):
print('---用例02---') if __name__ == '__main__':
pytest.main(['-vs'])
Pytest Fixture(三)的更多相关文章
- Pytest测试框架(三):pytest fixture 用法
xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...
- Pytest fixture及conftest详解
前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...
- pytest.fixture和普通函数调用
普通函数嗲用def one(): a="aaaaaaaaaaa" return a def test_one(): s=one() print (s) test_one() pyt ...
- pytest 用 @pytest.mark.usefixtures("fixtureName")或@pytest.fixture(scope="function", autouse=True)装饰,实现类似setup和TearDown的功能
conftest.py import pytest @pytest.fixture(scope="class") def class_auto(): print("&qu ...
- pytest fixture 利用 params参数实现用例集合
@pytest.fixture有一个params参数,接受一个列表,列表中每个数据都可以作为用例的输入.也就说有多少数据,就会形成多少用例.如下面例子,就形成3条用例 test_parametrizi ...
- pytest fixture中scope试验,包含function、module、class、session、package
上图是试验的目录结构 conftest.py:存放pytest fixture的文件 import uuid import pytest @pytest.fixture(scope="mod ...
- python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...
- 学习-Pytest(三)setup/teardown
1. 用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(setup_function/teardown_function)只对函数用例生效 ...
- pytest封神之路第三步 精通fixture
首先放一句"狠话". 如果你不会fixture,那么你最好别说自己会pytest. (只是为了烘托主题哈,手上的砖头可以放下了,手动滑稽) fixture是什么 看看源码 def ...
- 『德不孤』Pytest框架 — 13、Pytest中Fixture装饰器(三)
目录 9.ids参数说明 10.name参数说明 11.scope参数说明 (1)scope="function" (2)scope="class" (3)sc ...
随机推荐
- CentOS 7.9 环境下部署 Nginx 服务
sudo setenforce Permissive sudo vi /etc/selinux/config SELINUX=permissive sudo systemctl stop firewa ...
- 使用 WSDL 指定的标准 SOAP 消息格式
为 XML 文档(定义 Web 服务)定义架构的行业标准 Web 服务描述语言 (WSDL) 提供了两个主要的 SOAP 格式设置选项.这两个选项均在 XML 元素中指定,而不在主 WSDL 命名空间 ...
- 商城登录/三方登录OAUTH2/单点登录
- SignalR v3.1.3.js [支持微信小程序]
微信小程序开发中想做实时通知功能.作为一个.net系的程序员,当然首选SignalR,但是默认的js客户端库不支持微信小程序,因为微信小程序的websocket是使用自己的一套相关api来创建和管理的 ...
- MyBatis_03(核心配置文件解析)
核心配置的文件的"详解" -->(优化,核心配置文件) "核心配置文件的前言": 核心配置文件中的标签必须按照固定的顺序 ---> ("有 ...
- Vue3中使用JSX简明语法
掘金JSX:https://juejin.cn/post/7114063575122984973
- Oracle一次插入多条数据
Oracle一次插入多条数据(批量插入)语法:INSERT ALL INTO tableName (column1, column2, column_n) VALUES (expr1, expr2, ...
- absible笔记第一章 (ansibles基础与playbook常用模块)
一. ansibles基础与playbook 1.优先级问题 ANSIBLE_CONFIG ansible.cfg 项目目录 ...
- docker 操作常用命令
镜像 #以tomcat为基础镜像创建一个容器,容器名为my-tomcat #拉取tomcat最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取. do ...
- 如何查看nvidia官网发布的tensorrt镜像中都包含哪些包,trt版本是多少,cuda版本是多少?如何查看nvidia官网发布的triton镜像中都包含哪些包?
在这里查看trt镜像中包含哪些内容:https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/rel_21-07.ht ...