zoukankan      html  css  js  c++  java
  • Jmeter Json提取器 通过线程号来取值

    谈到jmeter 数据依赖 可能大家都不陌生,就是前面请求的返回值,需要作为后面请求的参数,获取返回值 也有很多方法,比如正则匹配,JSON提取器,或者直接beanshell 写代码等等,,

    但是当遇到前面一个请求的返回值时数组的时候,后面的请求需要 反复的取值的时候改怎么处理呢,

    1.方法一:可以把前面请求的返回数组手动提取,放到文件里面,然后读文件作为后面请求的变量,,这个数据量小的时候可以,但是当返回的数组长度上百就比较麻烦了。

    2.方法二:通过JSON提取器来取,具体方法 下面一一道来:

    如果有下面的这样返回的请求,,items[] 是个数组,每个{}对象里面都有一个 srfkey,,需要能够循环的去取这个srfkey值

    JSON 提取器可以这样写,items[0].srfkey 取第一个,items[1].srfkey 取第二个。。。

    但是如何循环它呢,这个时候需要引入 jmeter 线程变量,,

    jmeter 获取当前线程号变量:${__threadNum} 

    这个时候 JSON 提取器,可以这样写:

    通过后置处理器 beanshell 我们来打印出来看一下:

    log.info("线程号: ${__threadNum}");
    log.info("srfkey_v1: ${srfkey_v1}");

    跑3个线程来做个简单测试,看到log 打印出来结果如下,(当然items[]数组下标从0开始,而线程号是从1开始,所以还得做线程号-1操作,这个就不详述):

    当然也可以 通过beanshell 直接写代码来操作:

    在json中{}是对象,用getJSONObject方法
    []是数组,用getJSONArray方法

    通过for 循环来以此取数

  • 相关阅读:
    c#中的构造方法
    c# Dictionary拓展2个key得到1个value
    虚拟主机的提权两个小技巧
    teamviewer提权
    域渗透:mstsc连接记录清理
    linux之 vim 常用命令
    Linux之 find 命令学习
    域渗透:MS14-068
    学习:脱壳之Anti Dump和修复PE
    学习:KiUserExceptionDispatcher之寻找OEP
  • 原文地址:https://www.cnblogs.com/sucretan2010/p/14602766.html
Copyright © 2011-2022 走看看