zoukankan      html  css  js  c++  java
  • pytest文档68-pytest-lazy-fixture 插件解决 pytest.mark.parametrize 中使用 fixture 问题

    前言

    测试用例参数化的时候,使用 pytest.mark.parametrize 参数化传测试数据,如果我们想引用前面 不同fixture 返回的数据当测试用例的入参,前面一篇用fixture 参数化 prams 来间接解决这个问题。
    接下来用 pytest-lazy-fixture 插件可以直接在测试用例中参数化时 pytest.mark.parametrize 中使用 fixture

    pytest-lazy-fixture 插件

    pytest-lazy-fixture 插件是为了解决测试用例中用 @pytest.mark.parametrize 参数化调用fixture的问题,先pip安装

    pip install pytest-lazy-fixture

    目前使用的版本是 0.6.3

    >pip show pytest-lazy-fixture
    Name: pytest-lazy-fixture
    Version: 0.6.3
    Summary: It helps to use fixtures in pytest.mark.parametrize
    Home-page: https://github.com/tvorog/pytest-lazy-fixture
    Author: Marsel Zaripov
    Author-email: marszaripov@gmail.com
    License: MIT
    Location: e:python36libsite-packages
    Requires: pytest
    Required-by:
    

    parametrize 使用示例

    参数化的时候,其中一些测试数据,来源于前面的 fixture

    import pytest
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    
    @pytest.fixture(params=[1, 2])
    def one(request):
        return request.param
    
    
    @pytest.mark.parametrize('arg1,arg2', [
        ('val1', pytest.lazy_fixture('one')),
    ])
    def test_func(arg1, arg2):
        print(arg1, arg2)
        assert arg2 in [1, 2]
    

    运行结果

    ..	est_y.py val1 1
    .val1 2
    .
    
    ============== 2 passed in 0.04 seconds ===========
    

    fixture 参数化 params

    在 fixture 参数化的 params 中也可以使用

    import pytest
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    @pytest.fixture
    def one():
        return 1
    
    
    @pytest.fixture
    def two():
        return 2
    
    
    @pytest.fixture(params=[
        pytest.lazy_fixture('one'),
        pytest.lazy_fixture('two')
    ])
    def some(request):
        return request.param
    
    
    def test_func(some):
        assert some in [1, 2]
    
    

    pytest-lazy-fixture 相关的使用可以查看github 地址https://github.com/TvoroG/pytest-lazy-fixture

  • 相关阅读:
    简单的三栏,文字多行居中效果 css原生
    目录
    HttpRunner使用
    测试职能
    缺陷
    SQL操作数据
    jmeter使用
    接口自动化理论引入
    接口自动化框架(Pytest,Allure,Yaml)
    jmeter 登陆--查询存在否-->新建客户-->查询存在否 + 压测
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14096749.html
Copyright © 2011-2022 走看看