接口自动化测试-python-笔记

概念

接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。

自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程。

实现方式

使用接口测试工具来实现,比如:JMeter

通过编写代码来实现

接口测试工具的不足

1.测试数据不好控制

2.不方便测试加密接口

3.扩展能力不足

Requests库

介绍

Requests库是用Python编写的,基于urllib,采用Apache2Licensed开源协议的HTTP库;相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求;

安装

pip install requests

发送请求

常见的HTTP请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS

使用requests发送网络请求非常简单,只需要调用HTTP请求类型所对应的方法即可。

GET请求
import requests
response = requests.get("http://www.baidu.com")

请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。

POST请求
import requests
#:paramurl:请求的URL
#:paramdata:(可选)要发送到请求体中的字典、元组、字节或文件对象
#:paramjson:(可选)要发送到请求体中的JSON数据
#:rtype:requests.Response
response=requests.post(url,data=None,json=None)
其他请求类型
import requests

response=requests.put("http://www.baidu.com",data={"key":"value"})
response=requests.delete("http://www.baidu.com")
response=requests.head("http://www.baidu.com")
response=requests.options("http://www.baidu.com")

传递URL参数

如果需要在URL的查询字符串中传递数据,可以使用params参数来定义,params传递的参数可以是字符串或字典。

import requests

response=requests.get("http://www.baidu.com",params="kw=python")
print(response.url)#http://www.baidu.com/?kw=python

params={"k1":"v1","k2":["v2","v3"]}
response=requests.get("http://www.baidu.com",params=params)
print(response.url)#http://www.baidu.com/?k1=v1&k2=v2&k2=v3

响应内容

请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。

response.status_code 状态码
response.url 请求url
response.encoding 查看响应头部字符编码
response.headers 头信息
response.cookies cookie信息
response.text 文本形式的响应内容
response.content 字节形式的响应内容
response.json() JSON形式的响应内容
JSON响应内容

如果请求响应的内容为JSON格式的数据,则可以直接调用response.json()方法获取数据,因为requests中内置了JSON解码器,帮助我们处理JSON数据。

response=requests.get("http://www.baidu.com")
json_data=response.json()

如果JSON解码失败,response.json()就会抛出一个异常

定制请求头

如果需要为请求添加请求头数据,只需要传递一个字典类型的数据给headers参数就可以了。

headers={"area":"010"}
response=requests.get("http://www.baidu.com",headers=headers)

Cookie

获取响应信息中的cookie数据:

response=requests.get("http://www.baidu.com")
print(response.cookies)

发送请求时添加cookie数据,可以使用cookies参数:

requests.get("http://www.baidu.com",cookies={"c1":"v1"})

Session

在requests里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。会话能让我们在跨请求时候保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie。

创建session对象

session=requests.Session()

得到session对象后,就可以调用该对象中的方法来发送请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值