Jmeter JSON提取器的使用

Jmeter接口测试的使用及用户定义的变量进行参数化关联:https://blog.csdn.net/dhfaksljdfksajdnks/article/details/108456773

jmeter 正则表达式提取器的使用请访问:https://blog.csdn.net/dhfaksljdfksajdnks/article/details/108551693

Jmeter JSON提取器的使用

应用场景:个人理解同正则表达式差不多,通过JSON提取器来获取上一个接口返回的某个参数 作为下一个接口的请求参数

HTTP请求右键:添加--后置处理器--JSON提取器

JSON提取器的详情页面及页面参数的解释

Apply to:应用范围

Main sample and sub_samples: 匹配范围包括当前父取样器并覆盖至子取样器

Main sample only:匹配范围是当前父取样器

sub-samples only: 仅匹配子取样器

Jmeter Variable:支持对Jmeter变量值进行匹配

Names of created veriables:根据自己的风格随便填写,在后面引用需要用到

JSON Path expressions: 从json相应中提取内容的表达式(下面会有案例来理解)

Match No.(0 for Random): 0 随机的,n对于第n个,也就是想取第几个就填写几

Compute concatenation var(suffix_ALL):

Default Valies: 如果表达式不适用于正在处理的json文档使用此处的默认值

接下来我们用一个实际json来演示Json提取的表达式:如下json

{
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}

$.store.book[*].author     所有书籍的作者  结果:Nigel Rees,Evelyn Waugh,Herman Melville,J. R. R. Tolkien

$..author    所有作者     结果:Nigel Rees,Evelyn Waugh,Herman Melville,J. R. R. Tolkien

$.store..price    结果:所有的价格

$..book[2].price    第三本书的价格    结果:8.99

$..book[2]    结果:第三本书

$..book[-2].price    倒数第二本书的价格    结果:12.99

$..book[1,2].price    第二本书和第三本书的价格    结果:12.99,8.99

$..book[:3].price    从索引0到索引3书的价格 包含索引0但不包含索引3 也就是第一本第二本第三本的价格因为数组是从0开始的   结果:8.95,12.99,8.99

$..book[1:3].price    从索引1到索引3书的价格 包含索引1但不包含索引3 也就是第二本第三本的价格   结果:12.99,8.99

$..book[-1:].price    最后一本书的价格    结果:22.99

$..book[?(@.isbn)].price    所有带isbn编号图书的价格    结果:8.99,22.99

$.store.book[?(@.price<10)]    价格低于10 的图书    结果:第一本和第三本

$..*    结果:返回所有的内容

$..book.length()    结果:4

内容提取出来了但是怎么关联呢很简单在下一个接口需要这个参数的时候直接引用即可,括号里面的引用内容就是在json提取器详情页面在  Names of created veriables  填写的内容  

以上基本可以满足使用了,如果有其他需求自行百度一下吧,感谢阅读,如有什么疑问可在留言区留言 谢谢

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter中,可以使用内置的JSON提取提取JSON响应中的数据。要使用JSON提取,您可以按照以下步骤进行操作: 1. 在测试计划中添加HTTP请求,以获取包含JSON响应的数据。 2. 在HTTP请求之后,添加一个后置处理,并选择"JSON提取"。 3. 在JSON提取的参数设置中,将"JMeter变量名称"字段设置为您要在提取的值中使用的变量名。这个变量名是在后续测试步骤中引用提取的值的标识符。 4. 在"JSON路径表达式"字段中,您可以使用XPath或JSONPath表达式来指定要提取的数据。例如,如果要提取JSON响应中的"name"字段的值,您可以使用表达式"$.name"来指定。 5. 如果要提取多个子节点作为一个子JSON对象,您可以在表达式中使用数组格式,例如"$['key1', 'key2']"。 6. 确保勾选"Match No."复选框,并设置提取无法找到匹配项时的行为。您可以选择将结果设置为空或设置默认值。 通过按照上述步骤配置JSON提取,您将能够提取JSON响应中的指定数据,并将其存储在JMeter变量中,以便在后续的测试步骤中使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [jmeterjson提取详解](https://blog.csdn.net/qq_42623386/article/details/120446985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值