| |
|
开发:
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请求
1. 传data数据 #要发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据:
2. 传json数据
【data】: 数据报文:dict字典类型,默认情况下请求头:application/x-www-form-urlencoded,表示以form表单方式传参,格式:a=1&b=2&c=3 数据报文:str类型。默认情况下请求头:text/plain,表示以文本方式传参(如果是字典格式需要转换为str格式传参) 【json】: 数据报文:不管是dict还是str类型,默认都是application/json,请求的格式{"a":1,"b":2} ????????总的来说:data只能传简单的只有键值对的dict或者str格式。json一般只能传dict格式(简单和嵌套都可以)。。理解了这些,在日常使用中遇到问题就能很好的定位。 3. 传文件
4.还会有特殊情况,比如 一些接口使用代理 只要在请求的方法中(比如get或者post)传递proxies参数就可以了。
5. 处理不信任的SSL证书 对于那些已经被信任的SSL证书的网站,比如https://www.baidu.com/,那么使用requests直接就可以正常的返回响应。示例代码如下:
put和delete请求把post()方法替换为put(),delete()等,就可以以PUT或DELETE方式请求资源。就不一一赘述。 requests库的异常机制????????上面的内容足以让我们使用起来requests库啦,但是,作为编程人员,我们最关注程序的部分应该是运行的稳定性,而不是性能等问题,所以一个合格的程序必须要有对各种异常产生的处理机制),下面就浅写一下requests库的异常机制。
个人觉得,以上只是了解,遇到的时候再查询深究即可。 如果出现了异常,该如何判断呢?给出一个方法: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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:47:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |