zoukankan      html  css  js  c++  java
  • <<pytest测试实战>>读书笔记第三章

    pytest fixture

    1. 如何申明是一个fixture,只需要在函数前面加上装饰器 @pytest.fixture()

      作用: 可以完成任务,也可以返回数据给测试函数

    2. fixture的搜索规则:优先搜索当前的测试模块有没有fixture,其次在当前目录下面搜索conftest.py中搜索有没有fixture,再次往上一级目录进行搜索(类似于js中this对象的查找范围)

    3. 使用fixture传递测试数据:

    @pytest.fixture()
    def a_tuple():
    """Return something more interesting."""
    return (1, 'foo', None, {'bar': 23})


    def test_a_tuple(a_tuple):
    """Demo the a_tuple fixture."""
    assert a_tuple[3]['bar'] == 32

    4. fixture的指定范围

    fixture包含一个叫scope的可选参数,默认是scope='function',有四个可选参数   function   class  module  session

    scope='function': 使用了该fiture的函数,每次这个函数调用,该fixture都会运行(直接传入fixture的名称)

    scope='class  ,类运行的时候该fixture才会运行(在类上加的fixture,里面的方法都是可以使用这个fixture的,@pytest.mark.usefixtures('fixyure1','fixture2'))

    scope='module ',该py文件运行的时候fixture才会运行

    scope='session'  每次运行pytest命令的时候该fixture才会运行

    使用测试方法中添加fixture参数和使用@pytest.mark.usefixtures('fixyure1','fixture2'),区别是只有前者才可以使用fixture的返回值

    5. fixture的参数化:类似于测试方法的参数化

    6. 剩下的几章是一些不常用的部分,但是可以去了解下  pytest+allure+jenkins在linux环境下执行,效果还是非常不错的(allure是可以定制报告)

    7. 关于整体写项目的思路:底层封装好api,api上再封装一层业务层,业务层上再封装一层逻辑层,判断执行的结果,最外层使用pytest堆逻辑层的结果进行判断,并输出报告

  • 相关阅读:
    玩转 SpringBoot 2 快速整合 | FreeMarker篇
    微服务简单说
    玩转 SpringBoot 2 快速整合 | JSP 篇
    SpringBoot中获取微信用户信息从未如此简单!
    玩转 SpringBoot 2 快速整合 Filter
    oc语言的Foundation框架(学习笔记1)
    【PyInstaller安装及使用】将py程序转换成exe可执行程序
    【Django】Apache上运行单个Django项目,mod_wsgi配置
    【Django】基于Django架构网站代码的目录结构
    拖延症与自控力
  • 原文地址:https://www.cnblogs.com/wenshu/p/12266969.html
Copyright © 2011-2022 走看看