json响应如下:

{
"code":0,
"data":{
"data":[
{
"amount":50000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"" },
{
"amount":50000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时15小时 11分钟",
"createTime":"2019-12-05 18:24:56" },
{
"amount":50000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时15小时 54分钟"
}
{
"amount":50000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"" },
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时209小时 44分钟",
"createTime":"2019-11-27 15:51:44"
},
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时1917小时 0分钟"
},
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时1917小时 56分钟",
"createTime":"2019-09-17 11:39:22"
},
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时1984小时 54分钟",
"createTime":"2019-09-14 16:41:58"
},
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时1989小时 53分钟",
"createTime":"2019-09-14 11:42:29"
},
{
"amount":300000,
"appointmentInfoState":"00",
"appointmentState":"",
"appointmentTime":"",
"auditTime":"审核耗时2369小时 45分钟",
"createTime":"2019-08-29 15:50:46"
}
]
},
"mask":"c7d2f67d-a5e8-45a3-8f4b-0149c4a7e434",
"msg":"success",
"timestamp":1575596175
}

取出data对象下data数据的长度

1、首先导入alibaba的fastjson-1.2.59.jar包,放置lib\ext下,版本号自选

2、在接口之后添加BeanShell PostProcessor工具

编写代码如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; String jsonContent = prev.getResponseDataAsString(); JSONObject response = JSON.parseObject(jsonContent);
JSONArray dataList = response.getJSONObject("data").getJSONArray("data");
int length = dataList.size(); vars.put("m_length",length.toString());

注意:一下这样写是错误的

vars.put("m_length",length);

报错信息如下:

Error in method invocation: Method put( java.lang.String, int ) not found in class'org.apache.jmeter.threads.JMeterVariables'

没有找到put( Java.lang.String, int )这个方法。此处put的value应该是String

所以需要将values转换为String类型

最后正确代码如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; String jsonContent = prev.getResponseDataAsString(); JSONObject response = JSON.parseObject(jsonContent);
JSONArray dataList = response.getJSONObject("data").getJSONArray("data");
int length = dataList.size(); vars.put("m_length",length.toString()); log.info("m_length=${m_length}");

五、Jmeter中提取JSON响应中数组的长度的更多相关文章

  1. JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  2. 如何使用JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  3. Jmeter(三十四)_Beanshell解析并提取json响应

    1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration ...

  4. 如何解决jersey框架中以json格式返回数组,当数组中元素一个时json格式不对

    原文地址:http://www.cnblogs.com/swpk/p/3566536.html?utm_source=tuicool jersey 是oracle 出的一个较好的REST框架.使用此框 ...

  5. Jmeter_Beanshell解析并提取json响应

    1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration ...

  6. 提取json响应结果值_后置处理器JSON Extractor

    Json响应格式 json串中{}表示对象,[]表示数组 JSON Extractor使用json path表达式匹配,可以一次取多个变量值. $表示响应的根对象. 取子对象或对象的属性用. 取数组里 ...

  7. Jmeter正则提取请求响应数据

    前言 在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookie 或 token 或 Authorization授权码 会返回在 Response headers(响应头)中,这时我们便需 ...

  8. Jmeter4.0 _Beanshell解析并获取json响应数据数组长度

    我们在做jmeter接口测试的时候,有时候碰到开发没返回数据total,只返回了一条条记录,可是呢,我们又需要知道到底返回了多少条数据时,咋办呢?咋办呢?咋办呢? 不要急,接下来,让我们见证奇迹是如何 ...

  9. Jmeter - 把提取的响应结果设置成全局变量

    1. 用正则表达式从响应结果中提取需要的字符 2.添加BeanShell 后置处理程序,${__setProperty(setcookies,${cookies},)} 用函数定义其为全局变量 3.调 ...

随机推荐

  1. java web中 8080端口号被占用的问题处理,终于明白了 Address already in use: JVM_Bind(端口冲突)

    1.错误描述 2011-7-20 11:05:18 org.apache.catalina.core.StandardServer await严重: StandardServer.await: cre ...

  2. 第十五章·Kibana深入-Dev Tools及Lucene语法

    Dev Tools介绍 Dev Tools 页面包含开发工具,您可以使用这些Dev Tools与Kibana中的数据进行交互. 原先的交互式控制台Sense,使用户方便的通过浏览器直接与Elastic ...

  3. vim复制到剪切板

    作者:whinc链接:https://www.zhihu.com/question/19863631/answer/89354508来源:知乎 转载文章 Vim 中的复制.删除的内容都会被存放到默认( ...

  4. Hive动态分区和分桶(八)

    Hive动态分区和分桶 1.Hive动态分区 1.hive的动态分区介绍 ​ hive的静态分区需要用户在插入数据的时候必须手动指定hive的分区字段值,但是这样的话会导致用户的操作复杂度提高,而且在 ...

  5. 【安徽集训】Entropy

    出题人罗哲正是神爷 Orz Description 这是一道披着交互题外衣的通信题,只支持 C++. 你需要实现 \(2\) 个函数. 交互库先给第一个函数传入一个参数 \(n\),你加密得到的 \( ...

  6. JavaScript设计模式与开发实践(二)——apply&&call

    call和apply的用途 改变this指向 先看个例子: var obj1 = { name: 'sven' }; var obj2 = { name: 'anne' }; window.name ...

  7. JAVA面试/笔试经典题

    1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时 ...

  8. uboot驱动模型(DM)分析(二) (转)

    上篇分析了两个关键宏U_BOOT_DRIVER及U_BOOT_DEVICES的作用,有了上篇的基础,本文将分析: 1.上篇中的uboot_list段中的信息如何被用起来? 2.uclass,uclas ...

  9. vue-cli中模拟数据的两种方法

    我所使用的是新版vue-cli 首先进行所需插件的安装,vue-resource,json-server,proxyTable. 目录结构如图 在main.js中引入vue-resource模块,Vu ...

  10. pd.dataframe和series以及np.narray的维度升降

    1.第一步读入泰坦尼克号数据集 import pandas as pd data = pd.read_csv(r".\Narrativedata.csv" ,index_col=0 ...