当前位置: 首页 > news >正文

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` 库,这段代码提供了一个简单的框架来执行接口自动化测试。你可以根据需要添加更多的测试用例函数,并在每个函数中使用会话对象来发送请求和验证响应。

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 resdef 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'])

http://www.lryc.cn/news/144870.html

相关文章:

  • 深入分析负载均衡情景
  • WPF基础入门-Class5-WPF命令
  • 云安全攻防(十三)之 使用minikube安装搭建 K8s 集群
  • Python数据分析 | 各种图表对比总结
  • linux系统(centos、ubuntu、银河麒麟服务、uos、deepin)判断程序是否已安装,通用判断方法:适用所有应用和命令的判断
  • Python3多线程/多进程解决方案(持续更新ing...)
  • 在`CentOS`中安装`Docker Engine`
  • [ VMware 虚拟机 ] 启动不了图形界面,报 “The system is running in low-graphics mode” 错误
  • 如何提高视频清晰度?视频调整清晰度操作方法
  • IO进程线程,文件与目录,实现linux任意目录下ls -la
  • R语言如果列表中有列表,且每个子列表有一个向量:如何转变为仅仅一个列表里面含有向量
  • nrm管理源仓库及发布私人npm包
  • 云计算——虚拟化中的网络架构与虚拟网络(文末送书)
  • B - 负环
  • 居中一个元素(水平+垂直居中)
  • React笔记(二)JSX
  • [多标签分类]MultiLabelBinarizer: 从one-hot 到multi-hot
  • 【校招VIP】前端算法考察之排序
  • 集创北方ICN6211 是一款MIPIDSI转RGB视频桥接IC
  • SMT制造中的产品质量检验和管理
  • 对接webservice接口时报错:发送方和接收方 Action 不匹配
  • python实现/直播服务器/聊天服务器/的多种解决方案
  • PbootCMS 3.0.4 SQL注入
  • SpringBoot异步方法支持注解@Async应用
  • UI/UX设计与前端开发:从零到一打造完美用户体验
  • Hadoop Hdfs基本命令
  • Spring Boot 整合MyBatis(超详细)
  • 【管理运筹学】第 6 章 | 运输问题(4,表上作业法 |闭回路调整法以及特殊情况 | 产销不平衡的运输问题)
  • Greenplum实用技巧
  • 以物联网为核心的智慧工地云平台:聚集智能技术,实现建筑工地智慧管理