API 接口自动化测试详细图文教程学习系列9--Requests模块

测试学习记录,仅供参考!

Requests 模块介绍

一、基本简介

接口请求 Requests 模块简介

简单了解什么是 Requests 库?

Requests 是一个用于发送 HTTP 请求的 Python 库,是一个简单易用、功能强大的库,特别适合用来与 RESTful API 进行交互;通过 requests,能够快速发送 GET 和 POST 请求,管理会话、处理 Cookies 等功能。

Python requests库是一个常用的 Python HTTP客户端请求库,它可以方便地向网站发送 HTTP 请求,并获取响应结果,使得发送HTTP请求变得简单;requests库提供了一种简洁直观的 API,用于发送各种HTTP请求,如GET、POST、PUT、DELETE等,并处理返回的响应。使用 requests 库,开发者可以轻松地添加头部信息、发送表单数据、上传文件、处理 Cookies 、使用代理等。它还可以支持 SSL 证书验证、连接超时设置、会话对象复用等高级功能。requests库的设计哲学是"HTTP for Humans"(人类的HTTP),意味着它的API设计尽量符合人类的直觉,让HTTP请求变得像喝水一样自然。

requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要自己分析目标站点,然后发起新的request请求;requests 模块比 urllib 模块更简洁;使用 requests 可以模拟浏览器的请求,相较于 urllib,requests 模块的 api 更加便捷(本质就是封装了 urllib3)。

建议可参考(Requests)地址:https://requests.readthedocs.io/projects/cn/zh-cn/latest/

二、安装使用

安装 Requests 库

pip 是首选的安装程序,从 Python 3.4 版本开始,它默认包含在 Python 二进制安装程序环境中;在使用 Requests 库之前,一般需要先安装,通过 pip 安装非常简单;需要在安装了 python 虚拟环境下执行,没有 python 虚拟环境安装命令时则会报错,当然也可以使用其他软件来执行,比如 PyCharm、Visual Studio Code 等工具都可以(前提是要配置好 python 环境才能正常运行)。

复制代码
pip install requests
# 或者
pip3 install requests
pip 和 pip3

当计算机上只有一个 python 版本时,pip 和 pip3 这两个命令效果是一样的,没有区别;只安装 python 2X 版本时,就只有 pip 可使用;只安装了python 3X 版本时,即可以使用 pip,也可以使用 pip3。但是,当计算机上即安装了python 2.7 以下的版本,同时又安装了python 3.6 以上的版本时,那么此时 pip 和 pip3 就有区别;pip install 专门为 python 2X 安装库,而 pip3 install 专门为 python 3X 安装库(需要注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具,一般可直接使用)。

可以分别设计,用于避免安装冲突:

使用 pip install xxx:新安装的库会放在 python2.7xx/site-packages 目录下面;

使用 pip3 install xxx:新安装的库会放在 python3.6xx/site-packages 目录下面;

如果使用 python 3 执行程序,那么就不能在代码中 import python2.7/site-packages 中的库。

pip 和 pip3 的区别

区别1: 支持的 Python 版本不同

pip 适用于 Python2.7 及以下版本的 Python,而 pip3 适用于 Python3 及以上版本的 Python。在Python3 中,pip 已经成为默认的包管理器,并且很多最新的第三方包已经不再支持 Python2,所以Python3 用户应该使用 pip3 来管理包。

区别2: 使用方式不同

pip 和pip3 的使用方式基本相同,都是通过命令行来执行相应的操作,只是将 pip 替换为 pip3 。

区别3: 包管理方式不同

pip 和 pip3 在管理包时会有一些差异。pip3 会将包安装到 Python3 的库目录中,而 pip 会将包安装到Python2 的库目录中。这意味着即使在 Python3 环境中使用 pip 安装了某个包,它在 Python2 环境中并不会被使用。

其他或可参考:pip 和 pip3 的用法和功能有什么区别和相似之处?

pip 和 pip3 是 Python 的包管理工具,用于安装、升级和管理 Python 包和依赖项。虽然它们都可以完成相同的任务,但在某些情况下会有一些异同。异同之一是它们所对应的 Python 版本,pip 对应 Python2,pip3 对应 Python3;由于 Python 的版本差异,特别是 Python2 和 Python3 之间的差异,所以导致了 pip 和 pip3 的同时存在;如果要是同时安装了 Python2 和 Python3 版本,则可以使用 pip 和 pip3 来进行区分(一般建议可直接使用Python3 版本)。

复制代码
# 安装命令 + 所需要安装包名
pip install package_name
# 安装指定的版本
pip install package_name==version
# 卸载
pip uninstall package_name
# 强制卸载(不提示确定)
pip3 uninstall -y package_name

pip install requests

pip install requests==2.32.3

pip uninstall requests

pip3 的使用方法基本与 pip 相同,只是将 pip 替换为 pip3 。

复制代码
pip3 install requests

pip3 uninstall requests

pip3 uninstall -y requests

然而,在某些情况下,使用 pip 可能会出现问题,原因是它默认使用 Python2 的环境。这就是为什么建议在 Python3 中使用 pip3 的原因之一。另一个区别是一些高级命令的支持。pip3 具有比 pip 更多的功能和选项,可以更灵活地管理 Python 包。总结来说,pip 和 pip3 是 Python 的包管理工具,它们的基本功能和使用方法类似,但对应的 Python 版本不同;在使用时,建议使用与之相同当前 Python 版本对应的工具,以确保正确安装和管理 Python 包。

其他基本命令
更新升级
复制代码
更新升级 pip 程序版本
pip install --upgrade pip
# 或者
pip3 install --upgrade pip

# 升级单个包
pip3 install --upgrade package_name
# 升级所有包
pip3 list --outdated | awk '{print $1}' | xargs -n1 pip3 install -U
查看当前 pip 命令版本
复制代码
pip --version
# 或者
pip3 --version
导出当前 Python 环境的配置

如有需要导出当前 Python 环境的配置,可以使用 pip freeze 命令。

pip freeze 命令会列出当前环境中已安装的所有 Python 包及其版本信息,可以将其保存到文件中;

复制代码
pip freeze
# 或者
pip3 freeze

自定义文件名即可(例如:requirements.txt);建议可参考:使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件

复制代码
# 在当前项目目录路径下生成一个包含当前环境中已安装的所有包及其版本信息的 requirements.txt 文件
pip freeze > requirements.txt
# 或者
pip3 freeze > requirements.txt

以上命令将在当前目录下创建一个名为 requirements.txt 的文件,其中包含当前环境中已安装的所有包及其版本信息。然后就可以在其他地方使用该文件来重新创建相同的环境,会根据 requirements.txt 中列出的包及其版本信息重新安装所有必需的包,从而重建相同的 Python 环境。

复制代码
pip install -r requirements.txt
# 或者
pip3 install -r requirements.txt
查看已经安装的软件包及版本信息
复制代码
pip list
# 或者
pip3 list

# 查看过时的包
pip3 list --outdated
显示软件包详细信息
复制代码
# pip show <软件包名>
pip show package_name
# 或者
pip3 show package_name

注意点:在安装软件包时,若存在依赖关系,直接安装时会提示报错,需要先安装前置依赖包,然后再安装目标软件包。

缓存管理、虚拟环境管理
复制代码
查看缓存
pip3 cache list
清理缓存
pip3 cache purge

创建虚拟环境
python3 -m venv myenv
激活虚拟环境
source myenv/bin/activate
在虚拟环境中安装包
pip3 install package_name
示例:
pip3 install flask
其他问题
复制代码
# 报错示例:错误:由于 EnvironmentError: [errno 13] 权限被拒绝,无法安装软件包
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied

# 解决方案:
pip3 install --user package_name
# 或者:
sudo pip3 install package_name

# 报错示例:错误:无法安装软件包1和软件包2,因为它们依赖于不同版本的软件包3
ERROR: Cannot install package1 and package2 because they depend on different versions of package3

# 解决方案:
pip3 install package1 --ignore-installed
# 或者:
pip3 install package1 --no-deps

# 报错示例:错误:找不到满足要求 package_name 的版本
ERROR: Could not find a version that satisfies the requirement package_name

# 解决方案:
pip3 install package_name --trusted-host pypi.org --trusted-host files.pythonhosted.org
# 或者:
pip3 install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

未完待续。。。

相关推荐
陈天伟教授2 小时前
心电心音同步分析-案例:原型设计一
开发语言·人工智能·python·语言模型·架构
Allen_LVyingbo2 小时前
量子计算Dirac Notation基本教学—从零基础到读懂量子信息论文(下)
开发语言·人工智能·python·数学建模·量子计算
乐园游梦记2 小时前
机器学习:监督学习与无监督学习由浅入深全解析
人工智能·深度学习·学习·机器学习
oi..2 小时前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss
woai33642 小时前
JVM学习-基础篇-常见引用
jvm·学习
世人万千丶2 小时前
Flutter 框架跨平台鸿蒙开发 - 家庭健康档案云应用
学习·flutter·华为·开源·harmonyos·鸿蒙
東雪木2 小时前
Java学习——泛型基础:泛型的核心作用、泛型类 / 方法 / 接口的定义
java·学习·java面试
Dxy12393102162 小时前
Python路径算法简介
开发语言·python·算法
東雪木2 小时前
Java学习——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)的用法与底层实现
java·开发语言·学习·java面试