博客
关于我
Pytest测试实战|Conftest.py详解
阅读量:801 次
发布时间:2023-03-05

本文共 1525 字,大约阅读时间需要 5 分钟。

Pytest测试框架中的Conftest.py特性实战

Pytest测试框架中的Conftest.py文件是一个强大的功能,能够帮助测试工程师在多个测试模块间共享公共Fixture函数。传统的Fixture函数在每个测试模块中都需要重复编写,这种做法不仅效率低下,还容易导致代码冗余和维护困难。Conftest.py的出现有效解决了这一问题。

Conftest.py文件的主要作用是将Fixture函数集中管理和共享。在一个测试项目中,所有需要共享的Fixture函数都可以放置在Conftest.py中。这样,多个测试模块可以共同使用这些共享Fixture,提升代码的复用性和维护性。

登录授权的Fixture函数是一个典型的案例。假设我们有多个测试模块需要进行登录授权操作,每个模块都需要获取授权TOKEN。将登录Fixture函数放置在Conftest.py中,可以使所有模块共享同一个获取TOKEN的逻辑。以下是Conftest.py中可能的实现代码:

import pytestimport requests@pytest.fixture()def login():    response = requests.post(        url='http://0.0.0.0:8000/login/auth/',        json={"username":"13484545195","password":"asd888"},        headers={'content-type':'application/json'}    )    return response.json()['token']@pytest.fixture()def headers(login):    return {'Authorization':'JWT {token}'.format(token=login)}

在各个测试模块中,我们可以通过从Conftest.py导入共享Fixture函数来实现共享。例如,test_index.py和test_platform.py可能的实现如下:

def test_case_index(headers):    response = requests.get(        url='http://0.0.0.0:8000/interface/index',        headers=headers    )    assert response.status_code == 200def test_case_query(headers):    response = requests.get(        url='http://0.0.0.0:8000/interface/products?name=XX课堂',        headers=headers    )    assert response.status_code == 200

通过这种方式,多个测试模块可以共享同一个登录授权Fixture,从而减少代码冗余,提升测试效率。

在实际使用中,需要注意以下几点:

  • Conftest.py文件不能作为普通模块导入,通常存放在测试项目的根目录下。

  • 不是所有Fixture函数都需要放入Conftest.py中。如果某个Fixture仅供特定模块使用,直接定义在该模块中即可。

  • 避免在Conftest.py中放置过多专门的Fixture函数,否则可能导致维护成本增加。

  • 通过合理使用Conftest.py,测试工程师可以显著提升代码复用性,简化测试代码的管理和维护。

    转载地址:http://bnafk.baihongyu.com/

    你可能感兴趣的文章
    Pytest中进行测试环境切换:pytest_addoption!
    查看>>
    pytest利用request fixture实现个性化测试需求详解
    查看>>
    pytest单元测试实战
    查看>>
    pytest单元测试框架
    查看>>
    Pytest参数详解 — 基于命令行模式
    查看>>
    pytorch cv2 plt transforms pause waitforbuttonpress一个完整的图片处理程序
    查看>>
    pytest学习和使用 - Pytest用例执行结果有哪几种状态?
    查看>>
    pytest实战技巧之参数化应用!
    查看>>
    Pytest实践:Python测试技术基础知识!
    查看>>
    Pytest数据驱动怎么玩?实战教程来了!
    查看>>
    Pytest框架 之【用例执行顺序】
    查看>>
    Pytest框架中的测试用例执行方式!
    查看>>
    pytest框架快速入门-pytest运行时参数说明,pytest详解,pytest.ini详解
    查看>>
    Pytest框架环境切换实战教程!赶快收藏
    查看>>
    Pytest测试实战|Conftest.py详解
    查看>>
    Pytest测试框架快速搭建
    查看>>
    pytest测试框架:最强大的自动化测试工具,让测试变得轻松有趣
    查看>>
    pytest简介及jenkins集成
    查看>>
    Pytest自动化框架运行全局配置文件pytest.ini
    查看>>
    pytest自动化测试-Git中的测试用例运行
    查看>>