时间:2021-05-22
近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件。为了一劳永逸,打算写个自动化测试框架。因为请求和响应都是xml格式的,遇到的问题就是怎么获取xml响应的某一个值。
尝试了很多博客的方法,最终代码实现如下:
#!/usr/bin/python# -*- coding: UTF-8 -*-import requestsimport reimport unitestxmlhead=('xml格式报文头')xmlhead=('xml格式报文体')result =request.post(url,data={'xmlhead':xmlhead,'xmlbody':xmlbody})#获取响应字符串的某一个值(可以对字符串采取下标切片方式,此处采用的是正则表达式)data='<key值>(.*?)</key值>' #将想要的值先用正则表达式替代result_data=re.findall(data,result.text) #引入re模块,利用正则表达式finall函数去响应字符串result.text里匹配。最好用re.match()或re.search()函数,因为我调用这两个函数一直报不存在此函数属性,所以调用了re.findall函数
而今天在看视频时,获悉了两种更简单获取响应字符串某个值的方法,
个人感觉比正则表达式思维给简洁,在此分享:
或
result_json=eval(result.text)[父元素1][子元素2]
#利用eval函数将字符串转变为字典,在字典中获取想要的value值
补充知识:python进行接口请求,第一个接口返回的数据作为第二个参数的入参
直接看代码吧!
from operator import pos #导入包 定义要使用那个类import requestsimport jsonurl = 'http://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.text)print(r.json()['data']['token'])url2 = 'http://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)print(r2.text)返回数据为
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种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需求查询某个字段的时候需要给一个字段同样的值。这个值你可以写死,也可以从数据库获取1、写死值SELECTmfr_idASmfrId,mfr_nameASmfrN
ORA-01438:valuelargerthanspecifiedprecisionallowedforthiscolumn实际值的长度大于了数据库里某个字段
以数据库为例,Null是某个字段中完全没有值,并且表示字段值未知。Null与数字字段,文本字段或空间值的零值不同。Null表示尚未存储数据库字段值。 数据库(
mysql根据多个字段查找在mysql中,如果要实现根据某个字段排序的时候,可以使用下面的SQL语句SELECT*FROM'TABLE_NAME'ORDERBY
前言:在MySQL中,我们可以为表字段设置默认值,在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。关于默认值,有些知识还是需要