jmeter-后置处理器-BeanShell PostProcessor-json提取-json值修改-get

1、导入json包

2、import JSON jar包-时间格式的包(修改值用到了)

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
//import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

3、获取系统变量-responsedata

String response_data = prev.getResponseDataAsString();

4、修改json的某个字段  data.param.ciType.description 修改这个字段

JSONObject jsonObject=JSON.parseObject(response_data);
JSONObject paramJson = (JSONObject)((JSONObject) jsonObject.get("data")).get("param");
JSONObject ciTypeJsom = (JSONObject)paramJson.get("ciType");
ciTypeJsom.put("description",ciTypeJsom.get("description")+"_auto_"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")));

//SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmm");
//ciTypeJsom.put("description",ciTypeJsom.get("description")+"_auto_"+sdf.format(new Date()));
String responseData_a=jsonObject.toString();

5、系统时间-两种获取方法,记得导入包--原来description变为description值加+_auto_+时间

import java.text.SimpleDateFormat;

SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmm");
ciTypeJsom.put("description",ciTypeJsom.get("description")+"_auto_"+sdf.format(new Date()));
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

ciTypeJsom.put("description",ciTypeJsom.get("description")+"_auto_"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")));

6、保存变量

vars.put("responseData_b", responseData_a);

7、获取json中的字符串-下面的转的

原文链接:https://blog.csdn.net/aduocd/java/article/details/80351719

1. 场景一:获取请求响应中的数据,并保存

import com.alibaba.fastjson.*;  // 引入包。这个包需要先放在:<安装目录>\apache-jmeter-3.2\lib\ext中

// 获取数据

String response = prev.getResponseDataAsString();  // 获取Response

JSONObject responseObj = JSON.parseObject(response);  // 整个Response作为JSON对象

JSONObject resObj = responseObj.getJSONObject("res");  // 获取某一部分对象。即,json串中{}的内容

JSONArray listArray = resObj.getJSONArray("list");  // 获取列表。即,json串中[]的内容

// 保存数据

// 1) 列表

int len = listArray.size();

for(int i=0; i<len; i++){

    temp[i] = listArray.get(i).getString("name");

}

vars.put("names", Arrays.toString(temp));  // 保存到JMeter变量中,vars.put只能保存字符串,因此这里使用了toString()进行转换

// 2) String类型

String id = resObj.get("id");  // 获取对象中某一字符串的内容。

vars.put("id", id);  // 保存到JMeter变量中,后面的组件可以使用

// 3) Integer类型

Integer no = resObj.get("id"); // 获取对象中某一整型的内容。

vars.put("no", no.toString());   // 保存到JMeter变量中,vars.put只能保存字符串,因此这里使用了toString()进行转换

2. 场景二:获取数据库中查询到的数据,并保存

前提:在JDBC Request中已经获取到数据,详见《JDBCRequest的用法》。

select total_cash from t_cash where user_name="tom";

在Result variable name中的值为:result

String cash_new = vars.getObject("result").get(0).get("total_cash").toString();

vars.put("cash_new", cash_new);  // 操作前与此步骤相同,不再赘述。保存的变量名为cash_old

原文地址:https://www.cnblogs.com/shishibuwan/p/12683455.html

时间: 2024-08-30 14:30:12

jmeter-后置处理器-BeanShell PostProcessor-json提取-json值修改-get的相关文章

Jmeter后置处理器解析unicode 编码转换

使用Jmeter过程中发现,从查看结果树看到部分内容需要decode,此处参考曲线救国的方法. 步骤: 添加后置处理器-BeanShell PostProcessor 在scripts处添加相关代码,之后执行即可 1 //获取响应代码Unicode编码的 2 3 String s2=new String(prev.getResponseData(),"UTF-8"); 4 //---------------以下步骤为转码过程--------------- 5 char aChar; 6

JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应结果中的数据呢?此文以获取类目 手机数码-手机通讯-苹果 结果列表中的第一个商品的系统编号为例演示(脚本基于上篇文章,请知悉). 如下为请求响应数据中的部分数据,我们最终要获取的数据为 "sysNo": "2142717" 中的 2142717. 1 2 3 4 5 6

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获取的数据,均可看做一个变量(单个数据,此处指所需获取的测试相关数据)或数组(多个数据),通过引用变量或者数组的数据,达到应用其数据的目的.下面针对此两种方式进行介绍. 第一种:单数据变量 但数据变量的应用比较简单,同我们日常 shell 脚本引用变量相同,引用样式:引用名称.例如要引用下图中的变量,

jmeter后置处理器,正则表达式提取器的使用

[使用场景]:下一个请求参数需要从上一个请求的响应数据中获取 [jmeter正则表达式说明]:使用perl正则表达式(可参考:http://www.runoob.com/perl/perl-regular-expressions.html) [语法]: () 括起来的部分就是要提取的. .   匹配任何字符串. *  表示任意个字符 + 一次或多次. ? 不要太贪婪,在找到第一个匹配项后停止. \d        数字 \w       数字或者字母 {n}       表示n个字符 {n,m}

Jmeter 后置处理器JSON Extractor 提取json的多个值

json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配,可以一次取多个变量值.$表示响应的根对象.取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始. 示例: 1  找一个响应结果是json格式的,分析响应结果. 比如下面的响应整个是个数组,其中有4个对象.因此取值用$[索引取0-3或*取所有].属性值 如果响应类似{"属性"

六、Jmeter后置处理器JSON Extractor

一.当接口返回是JSON格式的时候,就可以用JSON Extractor来抓取返回的值,用来关联或者断言. 1.首先,到V2EX中找一个接口,地址为:https://www.v2ex.com/p/7v9TEc53 用一个最新主题的接口: https://www.v2ex.com/api/topics/latest.json Method: GET Authentication: None(没鉴权) 这个接口返回的格式是json格式,直接打开浏览器就可以看到 2.Jmeter中新增接口,运行后在查

Jmeter后置处理器

一.什么是关联? 将请求1的输出 作为 请求2 的输入,则称之为关联 二.通过JSON Path Extrator进行关联 1.添加JSON Path Extractor(需要下载安装插件) 2.设置JSON Path Extractor进行关联 注意:JSONPath Expression中指定要提出参数必须存在(即"用户登录"请求中返回的变量中包含该变量) 3."查询用户信息"请求中需要用到"用户登录"请求返回的token

jmeter(五)——后置处理器_JSON提取器

在做接口测试的时候,难免会遇到一个接口的请求参数是另一个接口的响应结果,这个时候就需要用到后置处理器来处理我们的请求参数.后置处理器是处理response信息的元件,JSON提取器是提取以json格式返回的数据. 后置处理器_JSON提取器创建 提取后置处理器需要的字段内容 后置处理器_JSON处理器 原文地址:https://www.cnblogs.com/sunshine-blog/p/12612323.html

【JEMTER】后置处理器JSON Path Extractor获取server端返回的json中某项值

需求1:点击所有报表模板时,server端返回所有报表模板的ID(templateId),测试时需要下载某个模板生成的报表 需求2:点击单个报表模板时,server端返回这个报表模板下的所有报表ID(fileId),获取到fileID以后便可以下载此报表 实现:添加后置处理器 配置后置处理器参数: 配置获取报表ID ---destination variable name:获取到对应的值以后,保存到的变量名 ---JSON PATH Expression 取对应值的json表达式 配置获取文件I