BeanShell实现正则和JSON提取

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提取较灵活,但是用什么方式要根据实际情况确定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容