Jmeter之Beanshell解析并提取json响应

这篇具有很好参考价值的文章主要介绍了Jmeter之Beanshell解析并提取json响应。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:前置条件

将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误

2:解析思路

利用beanshell获取到json响应,然后通过JSONObject 和JSONArray 将数组解析,遍历数组的length之后,提取参数值

我们需要解析如下的json响应,提取出中间的Name和population

//导入json包
import org.json.*;
//获取获取请求的返回值
String response_data = prev.getResponseDataAsString();
//日志打印获取请求的返回值
log.info(response_data);
//将String类型的返回值构造成JSONObject对象
JSONObject data_obj = new JSONObject(response_data);

//获取作为下一个请求post的参数值Province(两种方式)
//String Provincelist_str = data_obj.get("Province").toString();
JSONArray Provincelist_str = data_obj.getJSONArray("Province");
//log.info(Provincelist_str);

//获取Province数组的长度
int len = Provincelist_str.length();

String strlen = Integer.toString(len);

vars.put("MessageNum",strlen);

log.info(strlen);

int i = 0;

for(;i < len;++i)
{
//获取 data[ i ] 数组对象
JSONObject jsonTemp = (JSONObject)Provincelist_str.getJSONObject(i);

switch(i)

{
case 0:
//两种提取参数的写法
String NameItems = jsonTemp.getString("Name");
// String NameItems = jsonTemp.get("Name").toString();

// 两种打印参数的方法
// vars.put("Name_1", jsonTemp.getString("Name"));
vars.put("Name_1", NameItems);
log.info(NameItems);

}
}

加debug之后,发现提取到了两组数据,分别是省份和人口,之后就可以在后续接口进行调用了文章来源地址https://www.toymoban.com/news/detail-605269.html

到了这里,关于Jmeter之Beanshell解析并提取json响应的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter后置处理器——JSON提取器

    目录 1、简介  2、使用步骤         1)添加线程组         2)添加http请求         3) 添加JSON提取器 1、简介         JSON是一种简单的数据交换格式,允许互联网应用程序快速传输数据。JSON提取器可以从JSON格式响应数据中提取数据、简化从JSON原始数据中提取特

    2024年01月16日
    浏览(39)
  • jmeter常用的提取器(正则表达式和JSON提取器)

    jmeter常用的后置处理器有两种提取数据: 1、JSON提取器    获取后可以将变量token引用到其他所需要的地方 (正则表达式和JSON提取器): 2023接口自动化测试框架必会两大神器:正则提取器和Jsonpath提取器_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1824y1M7GA/?spm_id_from=333.999.0.0vd_s

    2024年02月16日
    浏览(51)
  • 8.3Jmeter使用json提取器提取数组值并循环(循环控制器)遍历使用

    示例:提取所有的值,并遍历删除 响应返回值例如:

    2024年02月07日
    浏览(54)
  • Jmeter-解析返回参数-解析并操作json

    工作中经常会遇到JSON字符串,接口的入参和返回参数也多数是JSON格式,自动化项目中常需要写脚本处理返回结果,本文总结java或jmeter的beanshell脚本中对于json的常用操作 简单的JSON字符串:{“key”:“value”,“key”:“value”…} 如:{“id”:“1001”,“name”:“晓春”,“sex”:“

    2024年01月25日
    浏览(37)
  • “jmeter使用xpath提取器获取请求响应中的value值作为下一个请求的输入”案例

    使用jmeter5.2.1的xpath提取器获取请求响应结果中值作为下一个请求的输入,并在Bean Shell后置处理器中编写通过日志打印 XPath提取器 提取的内容。 提取内容为请求响应结果中的 input type=\\\"hidden\\\" name=\\\"execution\\\" value=\\\"a6cd.........................................................\\\" ,需要提取的为 v

    2023年04月11日
    浏览(81)
  • jmeter--7.BeanShell

    目录 1. beanshell常用语法 1.1 log:日志写入 1.2 vars:设置和引用局部变量(同线程组) 1.3 props:设置和引用全局变量(跨线程组) 1.4 prev:获取前一个请求返回的信息 2. beanshell调用java代码 2.1 beanshell直接调用java文件(针对单个文件) 2.2 beanshell直接调用jar包 3. beanshell调用py

    2024年01月20日
    浏览(46)
  • jmeter使用beanshell

    1.使用jar包需要将依赖和脚本放在安装路径下的lib/ext中,这样可以避免很多问题产生 pip3 install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com allure_pytest-2.13.2-py3-none-any.whl 通过docker安装的Jenkins容器 需要再Jenkins容器中安装python3环境以及周边插件,上面的命令和处理

    2024年02月04日
    浏览(45)
  • Jmeter 中 Beanshell 的使用

    目录 前言: Beanshell 介绍 常用内置变量 log vars 和 props vars 常用方法: props 常用方法: prev 综合运用 JMeter 是一个广泛使用的性能测试工具,它支持许多不同的测试技术和方法。其中,Beanshell 是一种常用的脚本语言,它可以用来自动化测试脚本的执行和参数化测试。 Beanshel

    2024年02月16日
    浏览(63)
  • 【JMeter】使用BeanShell写入内容到文件

    目录 使用BeanShell写入内容到文件 一、前言 二、提取 三、写入 ​在我们日常工作中,可能会遇到需要将请求返回的数据写入到文件中。在我们使用JMeter进行性能测试时,就经常能够遇到这种情况。要想达到这种目的,我们一般采取BeanShell后置处理器来将内容写入到文件。 ​

    2024年02月12日
    浏览(40)
  • 使用BeanShell写入内容到文件【JMeter】

    ​ 在我们日常工作中,可能会遇到需要将请求返回的数据写入到文件中。在我们使用JMeter进行性能测试时,就经常能够遇到这种情况。要想达到这种目的,我们一般采取BeanShell后置处理器来将内容写入到文件。 ​ 在目前大多数的性能测试中,都是以JSON形式返回结果。因此我

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包