JMeter---JSON提取器

  • 专注于分享软件测试干货内容,欢迎点赞 收藏 ⭐留言 如有错误敬请指正!
  • 交流讨论:加入1000人软件测试技术学习交流群
  • 资源分享:进了字节跳动之后,才发现师兄给的这份资料有多重要!
  • 最困难的时候,也就是我们离成功不远的时候!

JMeter的JSON提取器是一个用于从JSON响应中提取数据的元件。它可以从JSON响应中提取特定字段的值,并将这些值用于后续的测试步骤。

使用JSON提取器的步骤如下:

  • 添加一个HTTP请求,用于获取包含JSON响应的数据。

  • 在HTTP请求之后添加一个JSON提取器元件。

  • 在JSON提取器中配置相关字段。

JMeter---JSON提取器_第1张图片

JSON提取器的配置包括以下几个字段:

  • “name of created variables”:指定一个变量名,用于存储提取的值。

  • “JSON Path expression”:指定一个JSON表达式,用于定位要提取的值。可以使用点号(.)来访问嵌套的字段,例如:“user.name”。

  • “Match Numbers(匹配号)”:指定要提取的值的索引号。如果JSON表达式返回多个匹配项,可以使用匹配号来选择其中一个。(0代表随机,1代表第一个,-1代表所有),可为空即默认第一个。

  • “Compute concatenation var(suffix_ALL)”:是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

  • “Default Value”:未取到值的时候默认值。

当配置完JSON提取器后,它将会在每次执行HTTP请求后提取指定字段的值,并将其存储在指定的变量中。可以在后续的测试步骤中使用这些变量。

当使用JMeter的JSON提取器时,可以使用JSONPath语法来定位和提取JSON响应中的特定字段值。

以下是JSONPath语法的详细说明:

  • $:根节点。使用$表示JSON的根节点。

  • .:当前节点。使用.表示当前节点。

  • ..:递归下降,用于查找当前节点及其子节点中的匹配项。例如,$.store..price表示查找根节点下的store节点及其子节点中的所有price字段。

  • *:通配符,匹配任意字段。例如,$.store.*表示匹配根节点下的store节点中的所有字段。

  • []:下标操作符,用于选择数组中的元素或对象中的属性。例如,$.store.book[0]表示选择根节点下的store节点中的book数组的第一个元素。

  • [n]:选择数组中的第n个元素。例如,$.store.book[2]表示选择根节点下的store节点中的book数组的第三个元素。

  • [start:end]:选择数组中从start到end的元素范围。例如,$.store.book[0:2]表示选择根节点下的store节点中的book数组的前三个元素。

  • [?(expression)]:过滤器,用于根据表达式的结果筛选匹配项。例如,$.store.book[?(@.price < 10)]表示选择根节点下的store节点中的book数组中价格小于10的元素。

    示例:假设有以下JSON响应:

{  "store": {    "book": [      {        "title": "Book 1",        "price": 10      },      {        "title": "Book 2",        "price": 15      },      {        "title": "Book 3",        "price": 5      }    ]  }}

如果想提取第二本书的价格,可以使用JSONPath表达式$.store.book[1].price。这将返回15作为提取的值。

除了上述基本语法外,JSONPath还支持一些其他高级功能,如函数、条件表达式等。可以根据具体需求在JSONPath中使用这些功能。

 

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

你可能感兴趣的:(jmeter,软件测试,程序员,接口测试,自动化测试,性能测试,面试)