做接口测试的时候,经常需要json处理,那么json处理到底什么情况下需要用到了
一、在做接口测试传参的时候,我们往往需要定义一个字典,含有key和value的值,如下:
data={
"gameId": "2",
"issueType": "5",
"operatorId": "87"
}
然后请求的时候,会把data赋值给post请求,然而这样是错误的,data的数据类型为dict,接口请求的数据类型为字符串,只不过是json格式的字符串,但是本质是字符串是不会改变的,故需要通过json.dunps(data)转化成json格式的字符串,然后传递给post请求
二、在接口请求后返回值的时候,往往看到后面加一个“.json()”,为什么呢,如图:
import requests,json
data={
"gameId": "2",
"issueType": "5",
"operatorId": "87"
}
# print(type(data))
header={'Content-Type': 'application/json'}
url='http://10.12.103.12:8889/v1/game/queryGameIssue'
re= requests.post(url=url,data=json.dumps(data),headers=header).json()
print(type(re)) #<class 'dict'>
发现在返回值后加“.json()”后,返回的数据类型变成了dict,这样就方便我们按照字典的操作去拿数据,如果不加“.json()”的话,返回值为:<class ‘requests.models.Response’>
三、如何拿到响应头里的cookie和其他信息呢
接口测试中,接口返回的cookie一般为cookiejar类,管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。实际工作中一般通过如下方式把响应的cookie转化成cookie的字符串:
cookies = requests.get(url).cookies
cookie = requests.utils.dict_from_cookiejar(cookies)
此时我们可以将cookie写入json文件,供后续接口使用