自学内容网 自学内容网

jmeter学习(4)提取器

同线程组https://blog.csdn.net/vikeyyyy/article/details/80437530

不同线程组

JMeter中,正则表达式提取的参数可以跨线程组使用。 通过使用Beanshell后置处理器和属性设置函数,可以将提取的参数设置为全局变量,从而在多个线程组之间共享这些参数。

https://mp.weixin.qq.com/s/4X_WCeVWDkiXXX_YWlPnDg

1)正则表达式提取

 引用名称(Reference Name):Jmeter变量的名称,存储提取的结果;即下个请求需要引用的值、字段、变量名(例子中我提取的是SOCIAL_NO)
正则表达式(Regular Expression):使用正则表达式解析响应结果,“()”表示提取字符串中的部分值,请不要使用“||”,除非你本身需要匹配这个字符。

模板:代表从正则表达式结果引用的样式,其实结果是一组,而不是一个。$0$代表这一组结果的全部,$1$代表这一组结果的第1个,以此类推;$1$$2$代表该正则表达式一组结果中的第1个和第2个,俩结果挨在一起中间没有间隔;$3$,$4$代表该正则表达式一组结果中的第3个和第4个,俩结果间有一个逗号相连。
匹配数字:0代表正则表达式结果组中随机,1代表全部。
缺省值:当引用不对时显示传递的信息,通常写一个ERROR。

表达式注意空格!!!

2)json提取

位置:在线程组中,则位置随意,保证接受参数的请求在获取参数请求后面就行;在获取请求下

3)beanshell 提取

jmeter后置处理器之BeanShell PostProcessor - qiaoli - 博客园 (cnblogs.com)

jmeter BeanShell 后置处理器 - 三只松鼠 - 博客园 (cnblogs.com)

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

String response = prev.getResponseDataAsString();
log.info("~~~~~~~~~~~~~~~~~~~打印响应报文1"+ response);
//System.out.println("response:"+response)
JSONObject jso = JSON.parseObject(response);
log.info("~~~~~~~~~~~~~~~~~~~打印响应报文2"+jso);
JSONObject data =  jso.getJSONObject("data");
//String tmp1 = jso.getJson("data")
log.info("~~~~~~~~~~~~~~~~~~~打印响应报文3"+data);
JSONObject nlpResult =  data.getJSONObject("nlpResult");
log.info("~~~~~~~~~~~~~~~~~~~打印响应报文4"+ nlpResult);
String userQuery =nlpResult.getString("userQuery");
log.info("~~~~~~~~~~~~~~~~~~~打印响应报文5"+ userQuery);
vars.put("userQuerynew",userQuery)

用到fastjson 需要下载jar包,放到lib/ext

获取着将路径在test plan 加到classpath 

获取json   jsonObject.getJSONObject

获取数组  jsonObject.getJSONArray

获取string    jsonObject.getString

使用getString获取字符串值,getInt获取整数值,getDouble获取浮点数值,getBoolean获取布尔值等


原文地址:https://blog.csdn.net/daxiashangxian/article/details/142694398

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!