python的接口串联方式:jsonpath、re

前言

在使用python搭建接口测试框架时,不能不面对的一个场景就是接口的串联,分享两个常见的串联方式:jsonpathre

jsonpath的安装

使用pip install jsonpath 完成jsonpath库的安装,博主已经安装好了,所以没有贴安装完成的图

jsonpath的功能介绍

JsonPath提供了类似正则表达式的语法,基本上可以满足所有对于json格式内容的正则取值

操作符号含义
$标识符,通过这个符号确定正则模板
.[name]表示json数据的第一层,name为第一层需要正则的字段名
…[name]表示json数据的第二层,name为第二层需要正则的字段名
.[name1]…[name2]表示name1下的name2 的值

完整写法

例如: $.access_token
$.data…access_token

代码执行

json内容

{
“xhr”: [{
“id”: 5,
“req”: “POST https://event.csdn.net/logstores/csdn-pc-tracking-page-exposure/track”,
“start”: 1596447502491,
“du”: 657,
“cb”: 3,
“status”: 200,
“err”: 0,
“rec”: 0,
“send”: 7441,
“type”: “XHR”
}]
}

代码
import jsonpath
str1 = {
	"xhr": [{
		"id": 5,
		"req": "POST https://event.csdn.net/logstores/csdn-pc-tracking-page-exposure/track",
		"start": 1596447502491,
		"du": 657,
		"cb": 3,
		"status": 200,
		"err": 0,
		"rec": 0,
		"send": 7441,
		"type": "XHR"
	}]
}
value = jsonpath.jsonpath(str1,"$.xhr..id" )[0]# 得到的结果是数组,所以需要用索引取值
print(value)

在这里插入图片描述

re的使用

re的介绍

re模块是python自有的库,不需要安装,直接import导入即可

常用方法注释备注
re.findall()在字符串中匹配,如果成功返回match对象,如果失败返回None返回的对象是列表
re.search()在整个字符串中查找,返回第一个匹配内容,如果找到返回match对象,没找到返回None返回的是字符串
re.split()在整个字符串中查找,以匹配模板为切割线进行切割返回的是列表

代码的执行

拿re.findall() 举例,实际操作中也是该方法使用的最方便

import re

str1 = '{"pid": "280", "storeId": "1640280"}'
value = re.findall('"pid": "(.+?)"', str1)[0]
print( value)

结果

280

Process finished with exit code 0

值得注意的

如上例子所示,str1 必须为字符串类型,博主亲测str()装换数据类型也不行,最好是单双引号括起来

结尾

然后将正则出来的结果赋值给变量,然后在下一个接口中引用该变量,即可完成接口的串联

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值