首页 > 其他分享 >MeterSphere接口自动化系列之JSONPath常用提取方式

MeterSphere接口自动化系列之JSONPath常用提取方式

时间:2024-03-15 10:59:22浏览次数:34  
标签:name items price 接口 item JSONPath MeterSphere id desc

一、使用场景

        针对接口返回结果,提取相应的信息,用于后续接口输入或用于执行结果断言,对应平

台的后置操作、断言规则页签。

        

二、常用方式实例

接口返回结果

{
    "code": 0,
    "data": {
        "cart": {

            "id": "342536277542256634",
            "items": [
				{
					"name":"测试名称1",
					"item_id":"3356",
					"item_desc":"花花世界",
					"price":2000
				},
				{
					"name":"测试名称2",
					"item_id":"1987",
					"item_desc":"大千世界无奇不有",
					"price":1000
				},
				{
					"name":"测试名称3",
					"item_id":"7642",
					"item_desc":"元宇宙世界",
					"price":3000
				},
				{
					"name":"新奇大陆",
					"item_id":"1000",
					"item_desc":"元宇宙世界",
					"price":5000
				}
                
            ],
            "itemsCount": 0,
            "joinOrderStatus": 0
        },
        "cartAmount": {
            "delivery": 0,
            "giftSupportGoods": 0,
            "goods": 0,
            "orgPrice": 0,
            "totalDiscount": 0
        },
        "status": 0
    },
    "syncTime": 1710327597461
}

1. 逐级节点获取信息

需求:

  • 获取cart中的id

jsonpath写法: 

  • $.data.cart.id

2. 相对路径获取信息

需求:

  •  获取items数组中的任意一个name

jsonpath写法: 

  • $.data..items[*].name

语法解析:

  • ' .. '  表示子、孙层级,
  • ' * ' 表示数组中的任意一个

3. 文本模糊匹配

需求:

  • 获取items中item_desc以 '元宇宙'开始对应的item_id

jsonpath写法: 

  • $.data..items[*].[?(@.item_desc =~ /元宇宙.*/)].item_id

语法解析:

  • [?(表达式)] :条件筛选
  • @.item_desc =~ /xxx.*/ :属性信息模糊匹配以xxx开始,后面跟随任意字符

4. 多条件组合筛选

需求:

  • 获取item_desc为 '元宇宙世界' 和price大于4000对应的name

jsonpath写法: 

  • $.data..items[*].[?(@.item_desc == '元宇宙世界' && @.price>4000)].name

标签:name,items,price,接口,item,JSONPath,MeterSphere,id,desc
From: https://blog.csdn.net/zhangshanjia01/article/details/136700530

相关文章

  • 【Java面试题-基础知识02】Java抽象类和接口六连问?
    1、抽象类和接口分别是什么?抽象类是一种类,可以包含抽象方法和非抽象方法,抽象方法是没有具体实现的方法,需要在子类中被具体实现。接口是一种完全抽象的类,其中的所有方法都是抽象方法,没有方法体,它只是定义了一组方法的契约。2、接口中一定不可以有实现方法吗?不一定,Java8引入......
  • Go语言中接口和函数的用法
    函数:在Go语言中,函数是一等公民,可以像其他变量一样被传递、赋值和使用。函数可以单独定义,也可以作为匿名函数或闭包使用。可以定义带有参数和返回值的函数,函数可以作为参数传递给其他函数,也可以作为返回值返回给其他函数。函数也可以被用来实现接口中的方法。接口:接口是......
  • Spring揭秘:Aware接口应用场景及实现原理!
    内容概要Aware接口赋予了Bean更多自感知的能力,通过实现不同的Aware接口,Bean可以轻松地获取到Spring容器中的其他资源引用,像ApplicationContext、BeanFactory等。这样不仅增强了Bean的功能,还提高了代码的可维护性和扩展性,从而让Spring的IoC容器变得更加强大和灵活。核心......
  • Spring揭秘:BeanDefinition接口应用场景及实现原理!
    BeanDefinition接口灵活性高,能够描述Bean的全方位信息,使得Spring容器可以智能地进行依赖注入和生命周期管理。同时,它支持多种配置方式,简化了Bean的声明和配置过程,提高了开发效率和可维护性。技术应用场景BeanDefinition接口定义了一个Bean的元数据,它包含了用于创建Bean对......
  • 淘口令解析源头api接口
    淘口令网提供淘口令解析功能,淘口令解密工具可一键将淘口令文本解析还原成URL链接,可把淘口令转换成网址链接,方便查看口令图片,口令标题,口令有效期等,不限制1.口令解析工具可一键将加密的淘口令代码解析还原成正常链接。2.主要给用户提供电脑端查看口令内容,和打开口令里面......
  • Python实现http接口请求数据后,往RabbitMQ里面插入数据
    python实现http接口请求数据服务后,往RABBITmq里面插入数据importtimeimportrequestsimportpikaimportdatetimebase_url='https://www.okx.com'api_url='/api/v5/market/history-mark-price-candles'#时间颗粒度[1m/3m/5m/15m/30m/1H/2H/4H]time_unit=[......
  • 问题记录:Vue3的watch,如何做到在监听值没变化的情况下调用相关函数去请求接口?
    一般来说Vue的watch属性只在监听到值发生变化了,才会去执行相关代码。可是最近在做项目(Vue3+TS+Vite)的时候,遇到了这种情况:标题如图所示:Modal是在父组件里写的,Modal里的折线图是在子组件里写的。点击按钮后会获取到pid和vid的值传给子组件。子组件通过watch属......
  • 身份证查询-身份认证-javascript实名认证接口
    翔云身份证实名认证接口将与网络平台携手共筑信息安全防线,守护每一笔交易的真实可信,助力您的企业在数字化浪潮中稳健前行!以下是javascript语言调用翔云身份证实名认证API的代码:varform=newFormData();form.append("img","/9j");form.append("key","M***********g");fo......
  • 【JS】Promise.all实现所有接口加载完成loading关闭
    将每个请求封装成promise对象,当请求到数据后都resolve出去,再调用Promsie.all方法将每个promise对象作为参数传入进去。这样每个api的promise对象状态都resolve“解决后”,就能在Promise.all([p1,p2…p]).then中拿到所有api请求完成的状态,从而实现效果。created(){t......
  • MeterSphere接口自动化系列之动态设置全局变量
    一、问题描述:    所有场景接口参数中需要token,token是由登录生成,每次登录后token会改变,该如何动态获取token并提供给后续场景使用?二、问题分析:    针对该问题,需要考虑,每个场景执行前登录一次,还是所有场景执行前只登录一次。    基于上述的分析,......