python获取响应某个字段值的3种实现⽅法
近期将要对两个接⼝进⾏测试,第⼀个接⼝的响应值是第⼆个接⼝的查询条件。为了⼀劳永逸,打算写个⾃动化测试框架。因为请求和响应都是xml格式的,遇到的问题就是怎么获取xml响应的某⼀个值。
尝试了很多博客的⽅法,最终代码实现如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import re
import unitest
xmlhead=('xml格式报⽂头')
xmlhead=('xml格式报⽂体')
result =request.post(url,data={'xmlhead':xmlhead,'xmlbody':xmlbody})
#获取响应字符串的某⼀个值(可以对字符串采取下标切⽚⽅式,此处采⽤的是正则表达式)
data='<key值>(.*?)</key值>'
#将想要的值先⽤正则表达式替代
result_data=re.findall()
#引⼊re模块,利⽤正则表达式finall函数去响应字符串⾥匹配。
最好⽤re.match()或re.search()函数,因为我调⽤这两个函数⼀直报不存在此函数属性,所以调⽤了re.findall函数
⽽今天在看视频时,获悉了两种更简单获取响应字符串某个值的⽅法,
个⼈感觉⽐正则表达式思维给简洁,在此分享:
result_json=result.json()
#引⼊json模块,将响应结果转变为字典格式
response_data=result_json[⽗元素1][⼦元素2]
#获取想要的值
python新手代码userid或
result_json=)[⽗元素1][⼦元素2]
#利⽤eval函数将字符串转变为字典,在字典中获取想要的value值
补充知识:python进⾏接⼝请求,第⼀个接⼝返回的数据作为第⼆个参数的⼊参
直接看代码吧!
from operator import pos #导⼊包定义要使⽤那个类
import requests
import json
url = '123.56.22.39:48083/web/v2/user/userLogin'
date={
'userName':'admin',
'password':'admin'
}
r=requests.post(url=url,data=date)
print(r.status_code)
)
print(r.json()['data']['token'])
url2 = '123.56.22.39:48083/web/v2/user/logout'
date1={
'userId':1,
'token':r.json()['data']['token']
}
r2 = requests.post(url=url2,data=date1)
print(r2.status_code)
)
返回数据为
200
{"code":0,"msg":"请求成功","userId":0,"token":null,"data":{"role":1,"videoPower":"1","snAuthPower":"1","userId":1,"token":"9f88cdad3c3b4e748e5367fb55cba90e"}} 9f88cdad3c3b4e748e5367fb55cba90e #第⼀个接⼝返回的数据
200
{"code":0,"msg":"请求成功","userId":0,"token":null,"data":null}
第⼀个接⼝返回的token数据作为第⼆个接⼝token的⼊参。
以上这篇python获取响应某个字段值的3种实现⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论