知识点:

  • 利用fixture共享数据
  • conftest.py共享fixture
  • 使用多个fixture
  • fixture作用范围
  • usefixture
  • 重命名

1. 利用fixture共享数据

test_data中包含了一个fixture名为data,pytest会优先搜索fixture,返回data值

pytest/ch3/test_one.py

import pytest

"""
fixture :
@pytest.fixture
声明了一个fixture,如果测试函数中用到fixture名,那么pytest会检测到,并且再执行测试用例前,先执行fixture
""" @pytest.fixture()
def data():
return 3 def test_data(data):
assert data == 4

2. conftest.py

  针对fixture,可以单独放在一个文件里,如果你希望测试文件共享fixture, 那么在你当前的目录下创建conftest.py文件,将所有的fixture放进去,注意如果你只想作用于某一个文件夹,那么在那个文件夹创建contest.py

pytest/ch3/conftest.py

import pytest
import requests """
如果想多个测试用例共享fixture,可以单独建立一个conftest.py 文件,可以看成提供测试用例使用的一个fixture仓库
""" @pytest.fixture()
def login():
url = 'http://api.shoumilive.com:83/api/p/login/login/pwd'
data = {"phone": "18860910", "pwd": "123456"}
res = requests.post(url, data)
return res.text

pytest/ch3/test_conftest.py

import json

import pytest

"""
通过conftest 建立公共仓库,testcase获取公共仓库
"""
@pytest.mark.login
def test_conftest(login):
data = json.loads(login)
print(data['code'])
assert data['code'] == '200'

if __name__ == '__main__':
pytest.main(["--setup-show", "-m", "login", "-s", "-v"])

3. 使用多个fixture

pytest/ch3/conftest.py

@pytest.fixture()
def one():
return 1 @pytest.fixture()
def two():
return 2

pytest/ch3/test_muti.py

def test_muti(one, two):
assert one == two

4. fixture 作用范围

  用scope来指定作用范围, 作用范围有固定的待选值,fucntion, class, module, session(默认为function)

5. usefixture

  指定fixture ,使用@pytest.mark.usefixtures('')标记测试函数,或者测试类

6. 重命名

  如果一个测试命名过长的话,我们可以使用name参数,给她重名了,我们使用fixture的时候,只需要传入name值即可

@pytest.fixture(name='maoyan')
def test_maoyan_page_001():
return 2

  

github: https://github.com/wangxiao9/pytest.git

【PYTEST】第四章Fixture的更多相关文章

  1. Pytest学习(四) - fixture的使用

    前言 写这篇文章,整体还是比较坎坷的,我发现有知识断层,理解再整理写出来,还真的有些难. 作为java党硬磕Python,虽然对我而言是常事了(因为我比较爱折腾,哈哈),但这并不能影响我的热情. 执念 ...

  2. Pytest(3)fixture的使用

    fixture的优势 Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进: 命名方式灵活,不局限于 setup 和teardown 这几个命名 conf ...

  3. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  4. 《Linux内核设计与实现》读书笔记 第四章 进程调度

    第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的 ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (21) -----第四章 ASP.NET MVC中使用实体框架之在页面中创建查询和使用ASP.NET URL路由过虑

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 4.2. 构建一个搜索查询 搜索数据是几乎所有应用的一个基本功能.它一般是动态的,因 ...

  7. 精通Web Analytics 2.0 (6) 第四章:点击流分析的奇妙世界:实际的解决方案

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第四章:点击流分析的奇妙世界:实际的解决方案 到开始实际工作的时候了.哦耶! 在本章中,您将了解到一些最重要的网络分析报告,我将 ...

  8. Java语言程序设计(基础篇) 第四章 数学函数、字符和字符串

    第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service m ...

  9. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

随机推荐

  1. ssm整合之web.xml文件

    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " ...

  2. Memcached 的惹祸,.NET 5.0 的背锅

    抱歉,拖到现在才写这篇为 .NET 5.0 洗白的博文(之前的博文),不好意思,又错了,不是洗白,是还 .NET 5.0 的清白. 抱歉,就在今天上午写这篇博客的过程中,由于一个bug被迫在访问高峰发 ...

  3. 2. HttpRunnner录制生成用例

    录制生成用例 为了简化测试用例的编写工作,HttpRunner 实现了测试用例生成的功能,对应的转换工具为一个独立的项目:har2case. 简单来说,就是当前主流的抓包工具和浏览器都支持将抓取得到的 ...

  4. OAuth2 快速入门

    1 OAuth简述 OAuth 2.0 是一个授权协议,它允许软件应用代表(而不是充当)资源拥有者去访问资源拥有者的资源.应用向资源拥有者请求授权,然后取得令牌(token),并用它来访问资源,并且资 ...

  5. JPA 相关API (一)

    [Query 接口下的常用API] [API 测试类:Test_QueryAPI.java] 1 package org.zgf.jpa.entity; 2 3 import java.math.Bi ...

  6. 云计算管理平台之OpenStack网络服务neutron

    一.简介 neutron的主要作用是在openstack中为启动虚拟机实例提供网络服务,对于neutron来讲,它可以提供两种类型的网络:第一种是provider network,这种网络就是我们常说 ...

  7. Pycharm同步远程服务器调试

    Pycharm同步远程服务器调试 1.需要准备工具 xftp:上传项目文件 xshell:连接Linux系统调试,执行命令 PyCharm:调试python代码 这些软件可以自行网上搜索下载,也可以关 ...

  8. (四)HTTP消息报头

    HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成.请求消息和响应消息都是由开始行,消息报头,空行(只有CRLF的行),消息正文组成.对于请求消息,开始行就是请求行:对于响应消息,开始行就是 ...

  9. leetcode93:insert-interval

    题目描述 给定一组不重叠的时间区间,在时间区间中插入一个新的时间区间(如果有重叠的话就合并区间). 这些时间区间初始是根据它们的开始时间排序的. 示例1: 给定时间区间[1,3],[6,9],在这两个 ...

  10. 利用sklearn实现knn

    基于上面一篇博客k-近邻利用sklearns实现knn #!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import ...