接口自动化测试利器:推荐一款数据校验神器

图片[1]-接口自动化测试利器:推荐一款数据校验神器-山海云端论坛

今天我们不讲如何开发自定义校验规则库,而是分享一款在开发自定义校验规则库或者常规接口自动化测试时经常使用的数据提取神器:JsonPath。

1. JsonPath简介

JsonPath是一种简单的方法,用于从给定的JSON文档中提取部分内容。它支持多种编程语言,如JavaScript、Python、PHP、Java等。

JsonPath提供了强大的JSON解析能力,其语法类似于正则表达式,几乎可以满足所有提取JSON内容的需求。

项目地址:https://github.com/json-path/JsonPath

简单概括:JsonPath用于解析和提取Json数据。

2. JsonPath语法

JsonPath语法类似于XPath,用于解析XML文档。Json数据结构通常是匿名的,不需要有根元素。JsonPath使用抽象名称$表示整个JSON数据的值。

JsonPath的语法包括:

  • 使用.[]符号进行路径表示
  • 使用*表示通配符,..表示递归
  • 使用@表示当前对象
  • 使用?()进行过滤
图片[2]-接口自动化测试利器:推荐一款数据校验神器-山海云端论坛

3. JsonPath实战使用

安装JsonPath库:

<code>pip install jsonpath</code>

示例数据:

<code>json_datas = { "store": { "book": [ {"category": "测试开发技术", "author": "xx", "title": "关注公众号:测试开发技术", "price": 129}, {"category": "自动化测试", "author": "xx1", "title": "《自动化测试实战宝典》", "price": 109}, {"category": "Python", "author": "xx2", "title": "Python实战教程", "isbn": "0-110-234567-30", "price": 99}, {"category": "Java", "author": "xx3", "title": "小白学Java", "isbn": "0-13095-19295-8", "price": 89} ], "info": {"color": "red", "price": 88} } }</code>

示例用法:

<code>import jsonpath # 查找book下面所有的author authors = jsonpath.jsonpath(json_datas, '$.store.book[*].author') print(authors) # 查找store下面book所有节点数据 books = jsonpath.jsonpath(json_datas, '$.store.book.*') print(books) # 查找book下面第三个book book = jsonpath.jsonpath(json_datas, '$.store.book[2]') print(book) # 查找价格大于100的所有书 expensive_books = jsonpath.jsonpath(json_datas, '$.store.book[?(@.price>100)]') print(expensive_books)</code>

4. JsonPath小技巧

如果对JsonPath表达式不熟悉,可以使用在线解析工具进行测试,例如 JsonPath Online。

在接口自动化测试中,熟练运用JsonPath可以轻松提取所需数据,极大提高测试效率。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容