| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 网络协议 -> Requests模块详解 接口自动化测试和爬虫必备 -> 正文阅读 |
|
|
[网络协议]Requests模块详解 接口自动化测试和爬虫必备 |
|
目录 前言????????试着用postman做完接口测试后,觉得工具做接口测试是非常便捷的。但是也存在着一定的不足和弊端。比如: ????????1. 敏捷开发,接口一般数量很大,团队实现接口测试,版本控制 ????????2. 功能太死板,有些接口完全无法实现(复杂的加密接口,签名接口等) ????????3. 接口项目当中有多种不同协议的接口 ????????4. 排错,定位接口问题不方便,结合抓包实现 ????????5. 没有办法生成美观的报告 ????????6. 多接口串联,数据库验证,日志监控 ????????7. 有些公司会做web自动化+接口自动化 等等这些问题,驱使这我们去用代码去解决这些问题,本编文章就将阐述依赖requests库来做接口自动化测试的一些基础知识,来解决或者缓解以上问题,也是接口自动化测试的一些基础,有了这些基础知识做基石,才能灵活的使用不同的方式去进行接口自动化测试。 简介及安装????????requests是一个Python第三方库,处理URL资源特别方便,模拟发送HTTP请求,做接口自动化。经常爬虫也会使用到该库。说到爬虫,以前总听说爬虫,觉得好厉害。。自从开始学习python之后,觉得拨开云雾见月明,对爬虫也有一些浅显的认识。 ????????言归正传:requests是一个Python第三方库,处理URL资源特别方便,模拟发送HTTP请求,做接口自动化。 ? ? ? ? 安装使用命令:pip install requests reuqests库详解? ? ? ? ?先从全局的角度去思考requests库。无非分为两种:请求和响应。看一些简单的请求和响应的案例,从全局的角度去思考该库。 请求:
响应:
????????总结来说,requests库只有一个核心的方法,即request方法,其余的方法则是通过request方法来实现各种各样的操作。通过封装调用request方法,加之添加其他代码,减少代码的编写量,所以说request方法一个核心的方法。 当时有思考过一个问题,都是获取返回数据的方法,
response.content :这个是直接从网络上抓取的数据,没有经过任何的编码,所以是一个bytes类型,其实在硬盘上和网络上传输的字符串都是bytes类型 response.text:这个是str的数据类型,是requests库将response.content进行解码的字符串,解码需要指定一个编码方式,requests会根据自己的猜测来判断编码的方式,所以有时候可能会猜测错误,就会导致解码产生乱码,这时候就应该进行手动解码,比如使response.content.decode('utf-8') reuqests库方法get请求
以上是源码分析,下面👇进行举例来说明~~ 1. get请求不带参数
2.??get请求带参数
3.需要传header
4.需要传cookie
5.指定超时
post请求
|
| request.ConnectionError | 网络连接错误异常,如DNS查询失败、拒绝连接 |
| request.HTTPError | HTTP错误异常 |
| requests.URLRequired | URL缺失异常 |
| requests.TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
| requests.ConnectTimeout | 连接远程服务器超时异常 |
个人觉得,以上只是了解,遇到的时候再查询深究即可。
如果出现了异常,该如何判断呢?给出一个方法:r.raise_for_status()
该方法在内部判断r.status_code是否等于200,不是则产生异常requests.HTTPError
利用try-except语句去捕获和处理异常。
以上为学习requests库所学的记录,共勉~~
|
|
| 网络协议 最新文章 |
| 使用Easyswoole 搭建简单的Websoket服务 |
| 常见的数据通信方式有哪些? |
| Openssl 1024bit RSA算法---公私钥获取和处 |
| HTTPS协议的密钥交换流程 |
| 《小白WEB安全入门》03. 漏洞篇 |
| HttpRunner4.x 安装与使用 |
| 2021-07-04 |
| 手写RPC学习笔记 |
| K8S高可用版本部署 |
| mySQL计算IP地址范围 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/29 20:04:22- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |