范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

推荐一款接口自动化测试数据提取神器JSonPath

  在之前分享中,给大家介绍过一篇: 如何快速审核接口返回值全部字段解决方案 ,详见原文:接口自动化测试,一键快速校验接口返回值全部字段 。当时,提到解决这类问题,市面上常见的解决方案有两种:  根据业务校验需求,自定义开发校验规则库  借助现有的第三方库
  而文章中介绍到的方案,就是借助现有的第三方库来实现:DeepDiff 。对于一些特殊业务或者复杂的测试场景来说,这类 通用方案 ,总会有一些需求无法满足。因此往往还需要根据这类业务校验需求,自定义开发校验规则库。
  我们今天不讲如何开发一款自定义开发校验规则库,而是给大家分享一款在开发自定义校验规则库或者常规的接口自动化测试时,经常会用到的一款数据提取神器:JSonPath。  1. JSonPath 介绍
  JSonPath 是一种简单的方法来提取给定JSON文档的部分内容。 JSonPath 有许多编程语言,如Javascript,Python和PHP,Java等。
  JSonPath 提供的 json 解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的 JSON 内容。
  项目地址:  https://github.com/json-path/JsonPath
  一句话概括: JsonPath 就是用来解析提取 Json 数据用的 。  2. JSonPath 语法
  JSONPath 是参照,Xpath 表达式来解析 XML 文档的方式,JSON 数据结构通常是匿名的并且不一定需要有根元素。JSONPaht 用一个抽象的名字 $ 来表示最外层对象,即 $ 代表整个 JSON 数据的值。
  JSonpath 的语法如下: jsonpath.jsonpath()  参数:json 对象,jsonpath 表达式  返回值:列表
  JSONPath 表达式可以使用. 符号如下:  $.store.book[0].title
  或者使用 [] 符号  $["store"]["book"][0]["title"]
  JSONPath 允许使用通配符 * 表示所以的子元素名和数组索引,还允许使用 ".." 。
  表达式在下面的脚本语言中可以使用显示的名称或者索引:  $.store.book[(@.length-1)].title
  使用"@"符号表示当前的对象,?(<判断表达式>) 使用逻辑表达式来过滤。  $.store.book[?(@.price > 100)].title
  其中 XPath 和 JSONPath 语法区别如下:
  需要额外注意的是 :  [] 在 xpath 表达式总是从前面的路径来操作数组,索引是从 1 开始。  使用 JOSNPath 的 [] 操作符操作一个对象或者数组,索引是从 0 开始。  3. JsonPath 实战使用
  安装:  pip install jsonpath
  例如:待提取的 json 数据变量名为: json_datas。  json_datas = {"store": {     "book": [       { "category": "测试开发技术",         "author": "狂师",         "title": "公众号:测试开发技术",         "price": 129       },       { "category": "自动化测试",         "author": "狂师1",         "title": "《自动化测试实战宝典》",         "price": 109       },       { "category": "Python",         "author": "狂师2",         "title": "Python实战教程",         "isbn": "0-110-234567-30",         "price": 99       },       { "category": "Java",         "author": "狂师3",         "title": "小白学Java",         "isbn": "0-13095-19295-8",         "price": 89       }     ],     "info": {       "color": "red",       "price": 88     }   } } 1. 查找 book 下面所有的 authorimport jsonpath datas = jsonpath.jsonpath(json_datas, "$.store.book[*].author") print(datas)
  输出结果为:["狂师", "狂师1", "狂师2", "狂师3"]
  上述提取表达式,可以改为如下:  datas = jsonpath.jsonpath(json_datas, "$..author") print(datas)
  具备同等效果,输出所有 author,结果同样为:["狂师", "狂师1", "狂师2", "狂师3"]  2. 查找 store 下面 book 所有节点数据datas = jsonpath.jsonpath(json_datas, "$.store.book.*") print(datas)
  输出结果为:  [{"category": "测试开发技术", "author": "狂师", "title": "公众号:测试开发技术", "price": 129}, {"category": "自动化测试", "author": "狂师1", "title": "《自动化测试实战宝典》", "price": 109}, {"category": "Python", "author": "狂师2", "title": "Python实战教程", "isbn": "0-110-234567-30", "price": 99}, {"category": "Java", "author": "狂师3", "title": "小白学Java", "isbn": "0-13095-19295-8", "price": 89}] 3. 查找 book 下面第三个 bookdatas = jsonpath.jsonpath(json_datas, "$.store.book[2]") print(datas)
  输出结果为:  [{"category": "Python", "author": "狂师2", "title": "Python实战教程", "isbn": "0-110-234567-30", "price": 99}] 4. 查找 book 下面最后个 book,返回的是一个列表datas = jsonpath.jsonpath(json_datas, "$.store.book[(@.length-1)]") print(datas)
  输出结果:  [{"category": "Java", "author": "狂师3", "title": "小白学Java", "isbn": "0-13095-19295-8", "price": 89}] 5.查找 book 下面前 3 本书datas = jsonpath.jsonpath(json_datas, "$.store.book[0,2]") print(datas)
  输出结果为:  [{"category": "测试开发技术", "author": "狂师", "title": "公众号:测试开发技术", "price": 129}, {"category": "Python", "author": "狂师2", "title": "Python实战教程", "isbn": "0-110-234567-30", "price": 99}] 6. 查找所有的包含 isbn 这个键的所有 bookdatas = jsonpath.jsonpath(json_datas, "$.store.book[?(@.isbn)]") print(datas)
  输出结果为:  [{"category": "Python", "author": "狂师2", "title": "Python实战教程", "isbn": "0-110-234567-30", "price": 99}, {"category": "Java", "author": "狂师3", "title": "小白学Java", "isbn": "0-13095-19295-8", "price": 89}] 7. 查找价格大于 100 的所有书datas = jsonpath.jsonpath(json_datas, "$.store.book[?(@.price>100)]") print(datas)
  输出结果:  [{"category": "测试开发技术", "author": "狂师", "title": "公众号:测试开发技术", "price": 129}, {"category": "自动化测试", "author": "狂师1", "title": "《自动化测试实战宝典》", "price": 109}] 4. 最后,JsonPath 小技巧
  最后再给大家推荐一个技巧,如果一开始对 JSONPath 表达式不太熟悉,可以将需要提取的 JSON 数据,通过 jsonpath 在线解析工具测试一下,在线解析 JSONPath 网址很多,例如:  http://www.e123456.com/aaaphp/online/jsonpath/
  在接口自动化测试中,只有你懂得利用好JSONPath,那么至少可以让你在自动化测试数据提取这块,随心所欲的提取自己要想的数据。
  好了,今天的干货分享就到这了,你学会了吗?

金融科技创新监管试点首批4个项目出箱银行参与度100本报记者李冰日前,中国版金融科技监管沙箱的部分创新应用,在完成相应的创新测试后,顺利出箱。具体来看,此次公示出箱项目主要聚焦于区块链大数据物联网等前沿技术,并突出了提升金融服务效能华强北的苹果新机,太逆天了近期好文十年了,苹果还在吃iPhone4S的老本微信里最沙雕的功能,果然被玩坏了某些国产机,你凭什么敢玩这种操作这才是真正的舔狗级App啊相信机友们都知道,这几年AirPods已经DELPHI学习之核心编程第一讲类在Delphi的作用,包括三个方面1类是Delphi组件和VCL控件设计的基础,深入了解和掌握类的特性和使用方法,可以为下一步编写控件打下良好的基础。2类的理解和掌握,是我们学好RadeonRX6700XT终在Steam单独显示,AMDCPU份额创新高在此前的Steam硬件调查里,英伟达仅GeForceRTX3090一款显卡已超过AMDRadeonRX6000系列所有型号的总和,而且GeForceRTX3090是英伟达整个GeF风行S50EV重新诠释新能源风行S50EV重新诠释新能源,美好生活尽在掌握近年来,关于新能源汽车热度居高不下,尤其是特斯拉小鹏蔚来等新能源车品牌的崛起,新能源车俨然已经是大势所趋。目前,市场上各种新能源车层出C图形用户界面开发框架Qt6。1入门级教程入门指南Qt是目前最先进最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业数千家企业,支持估值逼近330亿美元美餐饮软件公司IPO受热捧据马来西亚星报网站报道,总部位于波士顿的美国软件公司Toast不久前在纽约证交所首次公开募股(IPO),甫一亮相即获资本市场热捧,当日股价涨幅高达63。据介绍,Toast公开募股价评论把新能源车主的痛点化为商机本报首席评论员胡蓉在刚刚过去的国庆假日期间,新能源车主在高速公路服务区排队4小时充电的新闻上了热搜。国庆长假出现的充电难现象,虽然与新能源车流量陡增有关,但也足以表明,新能源车的充苹果突然宣布新品,15日正式开卖,网友幸福来得太突然如今苹果推出的主要产品中,iPhone手机以及AppleWatch非常流行,因为很多使用iPhone手机的用户,都会给自己配一部AppleWatch。在上个月的发布会上,除了iPh南卡枕中宝助睡黑科技生活在大城市的上班族们,每天都是忙忙碌碌的,大脑每时每刻都在不停地思考问题,但每当夜幕降临,失眠成为了大部分人的困扰,这时很多人会选择听音乐,用手机或MP3外放会影响身边人,用耳机关停潮席卷币圈多家涉虚拟币企业退出中国市场随着监管日趋加码,虚拟货币正在全球范围内掀起一波关停潮。日前,人民银行等十部门联合发布关于进一步防范和处置虚拟货币交易炒作风险的通知,与此同时,国家发改委等十一部门也发布了关于整治
给你的牙刷找一个家,得途婴觅牙刷架相信大多数家庭的牙刷,无论智能与否一定都是被放在卫生间的吧,可随着大家的生活水平不断提高,就就开始满满的去关注,被放在卫生间的牙刷真的不会被污染吗?所以今天小奈就带大家来看一款,能首发大作画质惊艳!任天堂新一代Switch曝光,配置飙升对于任天堂来说,吊足了玩家的胃口,当然推迟塞尔达荒野之息2发售日,可能也是在为SwitchPro做准备。据外媒最新报道称,任天堂官方推迟塞尔达荒野之息2发售日时,放出的新预告片,相一加Ace曝光极米Z6XPro超薄投影仪开卖九号超级滑板车GT2发布电动狗今天下午,又有博主曝光了一加Ace官方宣传海报的图片,根据图片显示,一加Ace与此前一加手机的设计差距非常大,采用了完全直角边框的方案,后摄部分与一加10Pro的处理有些异曲九号公司宣布智能电动滑板车累计量产突破千万台中国已成全球主要研发制造商中国网科技4月13日讯九号公司今日宣布,旗下智能电动滑板车累计量产突破1000万台。九号公司总裁兼CTO陈中元称,产量突破1000万台对于公司而言,在智能电动滑板车这一细分领域取得三星S22FE将继续使用Exynos芯片或高通的骁龙芯片相信国内的消费者对于三星这个品牌还是非常熟悉的,因为当年的三星也是占了我们国家手机市场的大半江山,但是因为种种原因在中国市场逐渐淡化了。但是三星在海外市场的成绩还是很不错的,最近三微信对手来了,5G手机拨号即可视频通话!苹果手机暂时不行继5G消息后,又一面向C端的5G应用面世了。4月12日,中国移动发布5G新通话产品。中国移动方面表示,这是基于5G网络环境推出的新一代通话产品,与互联网的语音视频通话相比,它更稳定2022年已经过去3个月,综合体验让人满意的手机,就属它们三了如今来到了四月中旬,看看2022年第一季度发布的所有新机当中让人满意的手机其实并不多,不少厂商出产的手机与其说是内卷,不如说是谁好就抄谁,真正的性价比手机对于用户来说的真香机是越来OPPO高颜值千元新机上线,5000mAh顶级外观,很难不心动就在昨天,OPPO正式在官方商城以及京东等各大电商平台开始推出A系列新机OPPOA575G,售价为1499元。众所周知,大家对于千元中端机的印象无外乎配置不足,外观平庸等,但其实随我国走在电动汽车无线充电标准最前沿最近,获得新一轮融资的创业公司纵目科技,其最新发展情况也随之公布。值得一提的是,这家专注于自动驾驶发展的企业,还自主研发了13kW无线充电系统11kW电动汽车无线充电系统,可实现即芒格割肉阿里巴巴,又一位投资大师陨落?根据美国证券交易委员会披露,投资大师查理芒格旗下的DailyJournal第一季度的阿里巴巴持仓由27。65大幅降低至15。35,几乎割了一半。于是各种段子手们蜂拥而出了,什么查理移动免费宽带,竟比不上电信收费安装的人多,为啥?在当代我们对于网络的需求逐渐加大,而网络的供应者就来源于国内的三大运营商,中国移动中国电信中国联通,我们的通讯与这三家运营商离不开联系。现在几乎所有的家庭都会安装宽带,移动的宽带是