您当前的位置: 首页 >  json

寒冰屋

暂无认证

  • 3浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JMeter——ForEach控制器中的JSON变量

寒冰屋 发布时间:2022-07-26 22:20:14 ,浏览量:3

目录

介绍

背景

使用代码

  • 下载源代码 - 1.7 KB
介绍

我将向您展示如何 在JMeter上访问json变量中的属性值。

背景

在使用JMeter时,我发现JMeter并不容易确定json变量的属性值。你想知道我的意思吗?

举个例子:

您有返回此json的HTTP请求:

{
   "page":1,
   "per_page":6,
   "total":12,
   "total_pages":2,
   "data":[
      {
         "id":1,
         "name":"cerulean",
         "year":2000,
         "color":"#98B2D1",
         "pantone_value":"15-4020"
      },
      {
         "id":2,
         "name":"fuchsia rose",
         "year":2001,
         "color":"#C74375",
         "pantone_value":"17-2031"
      },
      {
         "id":3,
         "name":"true red",
         "year":2002,
         "color":"#BF1932",
         "pantone_value":"19-1664"
      },
      {
         "id":4,
         "name":"aqua sky",
         "year":2003,
         "color":"#7BC4C4",
         "pantone_value":"14-4811"
      },
      {
         "id":5,
         "name":"tigerlily",
         "year":2004,
         "color":"#E2583E",
         "pantone_value":"17-1456"
      },
      {
         "id":6,
         "name":"blue turquoise",
         "year":2005,
         "color":"#53B0AE",
         "pantone_value":"15-5217"
      }
   ],
   "support":{
      "url":"https://reqres.in/#support-heading",
      "text":"To keep ReqRes free, contributions towards server costs are appreciated!"
   }
} 

如果您想获取一个包含id和name的数组,请使用JSON Extractor获取此信息:

这将在json上返回一个数组:

知道您想使用Foreach Controller访问数组中的每个属性值。

您无法访问执行此操作的属性:

${d.id} ${d.name}

因为JMeter d不是JSON,它是一个字符串。

使用代码

这种情况的解决方法是使用JSR223采样器进行一些操作。我们可以做的是读取d变量并提取我们需要的信息并将此信息添加到另一个变量中。

def data2 = vars.get("d");

def json = com.jayway.jsonpath.JsonPath.parse(data2);
def name = json.read('$.name');
def id = json.read('$.id');

vars.put("id", String.valueOf(id));
vars.put("name",name);

有了这个,我们可以在下一个HTTP请求中访问id和name。

这是一个JMeter演示如何执行此操作的测试。

https://www.codeproject.com/Tips/5323656/JMeter-JSON-variable-in-a-ForEach-Controller

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0489s