Python 接口测试之 requests 库核心用法

Python 接口测试之 requests 库核心用法

文章目录

一、安装

通过pip工具在命令行进行安装,建议使用指定版本避免使用差异,安装命令:

pip install requests 

安装后可通过pip list命令检查当前项目下requests包的版本是否安装成功。

二、介绍

requests库是一个非常流行的HTTP客户端库,主要用于发送HTTP请求,其中requests.get方法专门用于发送HTTP get请求到指定的URL。

requests.get方法会返回一个Response对象,该对象包含了服务器返回的所有信息,其提供的常用属性/方法及描述如下:

属性/方法描述
r.status_code响应状态码
r.content字节方式的响应体,会自动解码gzip和deflate压缩
r.headers以字典对象存储服务器响应头,若键不存在则返回None
r.json()Requests中内置的JSON解析方法,将响应体解析为JSON格式
r.url获取实际请求的URL
r.encoding编码格式,根据响应头部的字符编码确定
r.cookies获取服务器设置的cookies
r.raw返回原始响应体,不进行任何处理
r.text字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.raise_for_status()失败请求(非200响应)抛出异常

三、常见请求方法

requests库支持多种HTTP请求方法,核心常用方法为get、post,也可通过通用的request方法指定请求类型,核心方法定义及使用示例如下:

方法定义

# 发起get请求defget(url, params=None,**kwargs)# 发起post请求defpost(url, data=None, json=None,**kwargs)# 支持不同请求方式,method指定请求方法(get/OPTIONS/HEAD/post/PUT/PATCH/DELETE)defrequest(method, url,**kwargs)

使用示例

import requests # 直接调用get/post get_r = requests.get("https://www.baidu.com") post_r = requests.post("https://www.baidu.com")# 通过request方法指定请求类型 req_r1 = requests.request(method="get", url="https://www.baidu.com") req_r2 = requests.request(method="post", url="https://www.baidu.com")# 打印响应状态码print("get:", get_r.status_code)print("post:", post_r.status_code)print("method_get:", req_r1.status_code)print("method_post:", req_r2.status_code)

四、添加请求信息

get()、post()底层均调用request()方法,因此三个方法发送请求时传参无太大区别,可传递的核心参数及描述如下:

参数名描述
url请求的接口
headers一个字典,包含要发送的HTTP头
cookies一个字典、列表或者RequestsCookieJar 对象,包含要发送的cookies
files一个字典,包含要上传的文件
data一个字典、列表或者字节串,包含要发送的请求体数据
json一个字典,将被转换为JSON格式并发送
params一个字典、列表或者字节串,将作为查询字符串附加到URL上
auth一个元组,包含用户名和密码,用于HTTP认证
timeout一个浮点数或元组,指定请求的超时时间
proxies一个字典,包含代理服务器的信息
verify一个布尔值或字符串,指定是否验证SSL证书

实际使用示例

示例1:博客详情接口(带params、headers)
url ="http://84.153.19.140:9090/blog/getBlogDetail"# 定义查询参数 params ={"blogId":9773}# 定义请求头信息 header ={"user_token_header":"eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlck5hbWUiOiJ6aGFuZ3NhbiIsImV4cCI6MTczNTU1ODk2Mn0.72oh-gQ-5E6_aIcLsjotWL4ZHmgy0jF1794JDE-uUkg","x-requested-with":"XMLHttpRequest"} r = requests.post(url=url, params=params, headers=header)print(r.json())
示例2:博客登录接口(带data)
url ="http://84.153.19.140:9090/user/login"# 定义要发送的表单数据 data ={"username":"zhangsan","password":"123456"} r = requests.post(url=url, data=data)print(r.json())
示例3:博客园接口(带cookies、headers)
deftest_01(): url ="https://account.cnblogs.com/user/userinfo"# 定义请求头信息 header ={"Accept":"application/json, text/javascript, */*; q=0.01"}# 定义cookie信息 cookie ={".Cnblogs.AspNetCore.Cookies":"CfDJ8DfB03_iObVLoqH7ndAeeDgVJetjhlYbwnntg9Uy7_bcLryJ_RIEtfbgLsOt7uinPvbNd-pBCrZ_PSO5PvJVIw1lWKGW_BmqUG4pK2jDjEGKO8vaJdJ74bQWmCZW5U5wMaUO6QMrJFftQN8k31pgTbuD4X4lX-9kWMqGkzXkGkNb8C8hU_MyCqe9ZqjSDDSoPp4lFXTZ_MgBMGJLMzyw61Otnrrp2BXpw9oGbK14Q5ibK4_cAAL0cOPN1hYq1tDjbUs_CoDAyJanjddoezpNU6KQTchSOAmfFCbcuTLrDBlrHYHgnP75YE8pb4-AsJuaNrN74fBlYhJ_BQHKmvs_GJmj1L1seks5C32Lx7it67uq9be_7oDyj6ZLvTnZdryWXlucNb7EPE27P1-djOPq8MY15hSNVjO86Gcn8kDBbfyCee8Yi3exGOr026dRtPLSVjPdSbKV0st6X-d8so1oVJlKH2amdiX1Pofe7h_Yf6S-eVG_pnL6_frtvpCNbpVgApxB5Wm1yyy0UXLy31U-mVSuo5RJN6BQr4DXQ7umCz-yfpFjnZSUiuskBcwG83N3ww"} r = requests.post(url=url, headers=header, cookies=cookie)print(r.json())
  • 关键参数选择:params、json、data区别
  1. params:用于在URL中传递查询参数(Query Parameters),通常用于GET请求,也可用于其他类型请求;
  2. json:用于在请求体(Body)中传递JSON格式的数据,通常用于POST/PUT请求,使用时Content-Type会自动设置为application/json
  3. data:用于在请求体(Body)中传递表单数据,通常用于POST/PUT请求。

五、模块核心作用

requests库专注于HTTP请求的发送,能够便捷地构造各类HTTP请求、传递请求参数、获取服务端响应数据,是Python实现接口测试的核心基础库。

在接口自动化测试中,requests库负责底层的请求发送工作,而测试用例的组织、执行、管理则需要结合pytest等测试框架来实现。

Read more

C语言预处理指令与宏定义的灵活运用

C语言预处理指令与宏定义的灵活运用

C语言预处理指令与宏定义的灵活运用 💡 学习目标:掌握C语言预处理指令的分类与使用方法,熟练编写带参数与不带参数的宏定义,理解条件编译的核心逻辑,能够通过预处理指令优化代码结构;学习重点:宏定义的语法与陷阱、条件编译的常用场景、文件包含的注意事项。 43.1 预处理的概念与工作机制 C语言程序的执行流程分为预处理、编译、汇编、链接四个阶段,预处理是整个流程的第一步,也是构建灵活代码的关键环节。 43.1.1 预处理的核心作用 💡 预处理阶段由预处理器完成,它不参与代码的编译,仅对源代码进行文本替换、文件包含、条件筛选等操作。 预处理的输出是经过处理的C语言源代码,该代码会直接进入编译阶段。 预处理指令的特点: 1. 所有预处理指令都以 # 开头 2. 预处理指令不需要分号结尾 3. 预处理指令的作用域是整个源文件 4. 预处理阶段不进行语法检查,仅做文本处理 43.1.2 预处理指令的分类 C语言的预处理指令主要分为三大类: * 文件包含指令:#include,用于引入头文件 * 宏定义指令:

By Ne0inhk

Python纪念币预约自动化工具:快速上手配置指南

Python纪念币预约自动化工具:快速上手配置指南 【免费下载链接】auto_commemorative_coin_booking 项目地址: https://gitcode.com/gh_mirrors/au/auto_commemorative_coin_booking 还在为纪念币预约手忙脚乱而烦恼?这款基于Python的纪念币预约自动化工具,能够帮助你轻松应对繁琐的预约流程,大幅提升预约成功率。无论是个人收藏还是批量预约,都能让你事半功倍。 工具核心优势对比 与传统手动预约方式相比,Python自动化工具在多个方面展现出明显优势: 功能维度传统方式自动化工具操作效率依赖手速程序自动执行验证码识别人工判断AI智能识别信息填写逐个输入批量自动处理成功率表现随机性高稳定可靠 快速配置实战步骤 环境准备阶段 首先确保你的电脑已安装Python 3.6或更高版本。打开命令行工具,执行以下命令安装必要依赖: pip install selenium pytesseract pymysql opencv-python pillow 项目获取与部署 在命令行

By Ne0inhk
机器学习:数据清洗与预处理 | Python

机器学习:数据清洗与预处理 | Python

个人主页-爱因斯晨 文章专栏-Python学习 文章目录 * 个人主页-爱因斯晨 * 文章专栏-Python学习 * 前言 * 了解数据清洗 * 数据清洗的步骤 * 1. 环境准备与库导入 * 2. 数据加载 * 3. 数据初探与理解 * 4. 缺失值处理 * 5. 重复值处理 * 6. 异常值处理 * 7. 数据类型转换 * 8. 数据标准化 / 归一化(预处理) * 实例实践 * 总结 前言 我们不论在学习机器学习还是数据分析中,都会涉及很多数据。但原数据不可避免有很多杂志,为了确保结果的准确性,我们需要首先进行数据清洗和预处理。 了解数据清洗 数据清洗就像是一场数据的“大扫除”。它是从原始数据中找出并修正那些错误、不完整、重复或不一致的数据。通过数据清洗,能显著提升数据质量,为后续数据分析、挖掘和建模等工作提供准确、可靠、干净的数据基础,从而让基于数据得出的结论更具可信度和价值。 数据清洗的步骤 1. 环境准备与库导入

By Ne0inhk

DaVinci Resolve Studio (达芬奇)脚本 API 说明文档(翻译版)python版

在本安装包中,您将找到 DaVinci Resolve Studio 脚本 API(应用程序编程接口)的简要介绍。除本 README.txt 文件外,该安装包还包含多个文件夹,其中包含用于脚本访问的基础导入模块(如 DaVinciResolve.py)以及部分代表性示例脚本。 从 v16.2.0 版本开始,SetLUT() 和 SetCDL() 函数接收的 nodeIndex(节点索引)参数由 “0 基索引” 改为 “1 基索引”,即参数取值范围为 1 ≤ nodeIndex ≤ 总节点数。 一、概述 与 Blackmagic Fusion 脚本相同,DaVinci Resolve Studio 支持用户使用

By Ne0inhk