美文网首页
BeanShell实现正则和JSON提取

BeanShell实现正则和JSON提取

作者: circle_hyy | 来源:发表于2024-01-03 18:34 被阅读0次

JMeter提取参数除了使用正则提取器或者JSON提取器,也可以用万能BeanShell。
假设需要从数据库查到短信记录,再提取验证码,短信记录表中短信内容字段为
{"BATNO":"11100","CODE":"001912"}

1、正则提取

import java.util.regex.Matcher;
import java.util.regex.Pattern;

code_content = vars.getObject("code_content").toString();
pattern = "\"CODE\":\"(.+?)\"";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(code_content);
m.find();
code = m.group(1);
vars.put("verifyCode",code);

2、JSON提取

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import java.io.*;

code_content = vars.get("code_content_1").toString();
JSONObject jsonObject = JSON.parseObject(code_content);
code = jsonObject.getString("CODE");
vars.put("verifyCode",code);

如果json中有数组

code_content = "{\"data\": {\"codeList\": [{\"BRCH_NO\": \"09100\",\"CODE\": \"766607\",\"NAME\": \"登录\"},{\"BRCH_NO\": \"09101\",\"CODE\": \"766608\",\"NAME\": \"退出\"}]}}";
JSONObject jsonObject = JSON.parseObject(code_content);
JSONArray arrayObject = jsonObject.getJSONObject("data").getJSONArray("codeList");
JSONObject codeObject = (JSONObject)arrayObject.get(0);
code = codeObject.getString("CODE");

BeanShell提取较灵活,但是用什么方式要根据实际情况确定。

相关文章

网友评论

      本文标题:BeanShell实现正则和JSON提取

      本文链接:https://www.haomeiwen.com/subject/fogmndtx.html