requests 接口测试【 入门到精通】只要三分钟

前言

在讲解之前,我们首先要了解一下什么是接口测试?接口测试顾名思义就是对测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

python 接口测试入门

一、requests 库安装

pip install requests

二、http 请求类型

get: 获取资源
post :增加资源
put: 修改资源
delete: 删除资源
head: 查看响应头
options: 查看可用请求方法

三、Content-Type 编码方式

application/x-www-form-urlencoded

默认地,表单数据会编码为 “application/x-www-form-urlencoded”。就是说,在发送到服务器之前,所有字符都会进行编码,空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值。 窗体数据被编码为:名称/值对,这是标准的编码格式。

application/json
数据以 JSON 形式进行编码

multipart/form-data
窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到。在使用包含文件上传控件的表单时,必须使用该值。

text/html
文本方式的网页文件。

text/xml
文本方式的 XML 文件,text/xml 忽略 XML 头所指定编码格式而默认采用 US-ASCII 编码。

text/plain
窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。

application/xml
数据以 XML 形式进行编码,application/xml 会根据 XML 头指定的编码格式来编码。
在这里插入图片描述
四、get 请求

语法
requests.get(url, params=None, **kwargs)
参数 url
调用接口地址
如:url=“http://httpbin.org/get” params
为可选参数,该参数是一个字典类型,数据会以键/值对的形式置于 URL 中,跟在一个问号的后面
如: https://api.github.com/events?key1=value1&key2=value2 **kwargs
其他可选参数
如 headers,files,cookies,auth,timeout,JSON 等 headers
请求头信息,与浏览器交互的参数
代码演示

import requests
import pprint
get_url='http://httpbin.org/get'
get_params={'key1':'value1','key2':'value2'}
res=requests.get(url=get_url,params=get_params)
pprint.pprint(res.json())	

五、post 请求

语法
requests.post(url, data=None, json=None, **kwargs)
参数
url
调用接口地址
如:url=“http://httpbin.org/post”
data
为可选参数
如:字典、元组列表、字节或类似文件
JSON
可选参数,JSON 数据
**kwargs
其他可选参数
如 headers,files,cookies,auth,timeout,JSON 等
headers
请求头信息,与浏览器交互的参数
data 与 JSON 区别 传入 dict,不设置 content-type 值
data:默认使用 application/x-www-form-urlencoded 编码方式处理
JSON:默认使用 application/json 编码方式处理 传入 dict,设置 content-type 值
data&json 都按照设置的编码方式处理
代码演示

import requests
import pprint
#data 接收,传入 dict,不设置 content-type 值
post_url='http://httpbin.org/post'
post_data={'key1':'value1','key2':'value2'}
res=requests.post(url=post_url,data=post_data)
pprint.pprint(res.json())
import requests
import pprint
#json 接收,传入 dict,不设置 content-type 值
post_url='http://httpbin.org/post'
post_data={'key1':'value1','key2':'value2'}
res=requests.post(url=post_url,json=post_data)
pprint.pprint(res.json())
import requests
import pprint
#data 接收,传入 dict,设置 content-type:application/json
post_url='http://httpbin.org/post'
post_data={'key1':'value1','key2':'value2'}
header={'Content-type':'application/json;charset=UTF-8'}
res=requests.post(url=post_url,data=post_data,headers=header)
pprint.pprint(res.json())
import requests
import pprint
#json 接收,传入 dict,设置 content-type:application/x-www-form-urlencoded
post_url='http://httpbin.org/post'
post_data={'key1':'value1','key2':'value2'}
header={'Content-type':'application/x-www-form-urlencoded;charset=UTF-8'}
res=requests.post(url=post_url,json=post_data,headers=header)
pprint.pprint(res.json())

六、POST 与 GET 区别

参数传递

GET:从服务器获取数据,将数据按照 variable=value 的形式,添加到行为所指向的 URL 后面,并且两者使用“?”连接, 而各个变量之间使用“&”连接
POST:向服务器传送数据,将表单中的数据放在请求体中,按照变量和值相对应的方式传递。

长度限制

GET:GET 是通过 URL 提交数据,因此 GET 可提交的数据量就跟 URL 所能达到的最大长度有直接关系。

实际上 HTTP 协议对 URL 长度是没有限制的,限制 URL 长度大多数是浏览器或者服务器的配置参数。

POST:HTTP 协议没有对 POST 进行任何限制,一般是受服务器配置限制或者内存大小。
可以通过修改配置文件来设置。

安全性

GET:GET 请求参数放在 URL 后面,可以直接看到,明文传输。

POST:POST 请求参数放在请求体里面,需要通过抓包工具或者浏览器调试模式才能看到。

幂等性

幂等主要是为了处理同一个请求重复发送的情况。
比如在请求响应前失去连接,如果方法是幂等的,重复发送对结果没有影响。
通常情况下 GET 请求是幂等的,POST 请求非幂等的。

基本的接口测试入门就给大家介绍到这里了,感谢您的认真阅读,我也会写出更优质的文章的,敬请期待哦!

学习安排上!

感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几个月时间整理的非常全面的,希望也能帮助到有需要的你!
在这里插入图片描述
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流,同时我也把上面花几个月整理的资料放里边了,赶快加入吧。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值