pytest fixture 创建一个 requests.session() 对象

这篇具有很好参考价值的文章主要介绍了pytest fixture 创建一个 requests.session() 对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当你运行这段代码时,它会执行以下操作:

1. 导入必要的库:`pytest` 和 `requests`。

2. 定义一个夹具(fixture)函数 `session`,使用 `@pytest.fixture(scope='session')` 装饰器进行标记。这个夹具函数在整个测试会话期间只会被执行一次。

3. 在 `session` 夹具函数中,创建一个 `requests.session()` 对象,这是一个会话级别的对象,可以在多个请求之间保持会话状态。

4. 使用 `yield` 关键字返回会话对象。`yield` 之前的代码在测试会话开始时执行,`yield` 之后的代码在测试会话结束时执行。

5. 定义一个测试用例函数 `test_login`,它接受 `session` 夹具作为参数。在这个函数中,我们使用会话对象的 `post()` 方法发送一个登录请求到指定的 URL,并传递用户名和密码作为请求数据。然后,我们打印出响应的文本内容,并将响应对象返回。

6. 定义另一个测试用例函数 `test_logout`,也接受 `session` 夹具作为参数。在这个函数中,我们使用会话对象的 `post()` 方法发送一个登出请求到指定的 URL。然后,我们打印出响应的文本内容。

7. 最后的 `if __name__ == '__main__':` 代码块用于在命令行中执行测试。它使用 `pytest.main()` 函数来运行测试文件,并通过 `['-v', 'test_crm.py']` 参数指定了运行的选项。`-v` 参数表示以详细模式运行测试,显示每个测试用例的结果。

通过使用 `pytest` 和 `requests` 库,这段代码提供了一个简单的框架来执行接口自动化测试。你可以根据需要添加更多的测试用例函数,并在每个函数中使用会话对象来发送请求和验证响应。文章来源地址https://www.toymoban.com/news/detail-674323.html

import pytest
import requests

@pytest.fixture(scope='session')
def session():
    # 创建一个会话对象
    session = requests.session()
    # 返回会话对象
    yield session
    # 在测试会话结束后关闭会话
    session.close()

def test_login(session):
    url = 'http://xxx.123.74.26:8090/login'
    data = {
        "username": "1391110002",
        "password": "123456"
    }

    res = session.post(url=url, data=data)
    print(res.text)
    return res

def test_logout(session):
    url = 'http://82.xxx.24.26:8090/logout'
    res = session.post(url=url)
    print(res.text)

if __name__ == '__main__':
    pytest.main(['-v','test_crm.py'])

到了这里,关于pytest fixture 创建一个 requests.session() 对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytest fixture 高级使用

    一、fixture中调用fixture 举例:  输出:  说明:登录fixture 作为参数传递到登出方法中,登录方法的返回值就可以被登出方法使用 二、在fixture中多参数的传递(通过被调用函数传参) 举例:  输出:  三、parametsize与fixture同时使用 举例:  输出: 三、 在fixture中存储testca

    2024年02月13日
    浏览(34)
  • pytest笔记2: fixture

      没有 setup/teardown?    

    2024年02月09日
    浏览(35)
  • pytest fixture 常用参数

    fixture 常用的参数 参数一:autouse,作用:自动运行,无需调用 举例一:我们在类中定义一个function 范围的fixture; 设置它自动执行autouse=True,那么我们看下它执行结果  输出:  说明:因为设置了自动执行,且范围是方法级别,那么每次在方法或函数前后都会执行fixture;yie

    2024年02月13日
    浏览(31)
  • pytest的fixture梳理

    夹具是在测试中用于提供共享资源、设置测试环境或模拟行为的工具。 1. 可以重复使用,多个用例可以使用同一个fixture 2. 一个测试用例可以使用多个装置 2.1 如果多个装置存在yield,则是先进后出 如果一个fixture存在返回值,那么可以通过 函数名 直接使用其 返回值 ,如下所示

    2024年02月13日
    浏览(32)
  • pytest fixture 用于teardown工作

    fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield呼唤teardown操作。 举个例子:  输出: 说明:yield yield 在 fixture 中起到了唤起 teardown 的作用,同时也可以和 r

    2024年02月13日
    浏览(33)
  • Pytest教程__fixture(9)

    fixture是pytest特有的功能,使用装饰器 @pytest.fixture 标记的函数在其他函数中能被当作参数传入并被调用。 fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活。 fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,它自身也可以调用

    2024年02月09日
    浏览(33)
  • Pytest使用fixture实现token共享

    同学们在做pytest接口自动化时,会遇到一个场景就是不同的测试用例需要有一个 登录 的前置步骤,登录完成后会获取到 token ,用于之后的代码中。首先我先演示一个常规的做法。 首先在conftest定义一个login的方法,方法返回token 2.在测试用例方法中引入这个方法,所有用到

    2024年02月12日
    浏览(33)
  • Pytest fixture参数传递的4种方式

    最近使用Pytest中的fixture和conftest时,遇到需要在conftest中的setup和teardown方法里传递参数。这里记录以下4种实现的方式。 结果: 结果: 结果:

    2024年02月16日
    浏览(34)
  • 自动化测试 —— Pytest fixture及conftest详解

    fixture是在测试函数运行前后,由pytest执行的外壳函数。fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在,类似unittest中setup/teardown,但是比它们要强大、灵活很多

    2024年04月08日
    浏览(32)
  • Pytest测试技巧之Fixture:模块化管理测试数据

    在 Pytest 测试中,有效管理测试数据是提高测试质量和可维护性的关键。本文将深入探讨 Pytest 中的 Fixture,特别是如何利用 Fixture 实现测试数据的模块化管理,以提高测试用例的清晰度和可复用性。  什么是Fixture? 在 Pytest 中,Fixture 是一种用于为测试用例提供设置和资源的

    2024年02月22日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包