JMeter元件系列(一)---jmeter常用后置处理器详解

常用的后置处理器:

  • 正则表达式提取器
  • Debug PostProcessor
  • BeanShell PostProcessor

1、正则表达式提取器

  • 作用:将上一个请求中的一部分发送到下一个请求中,看运行是否成功,也就是jmeter的关联。
  • 界面如下:
    在这里插入图片描述
  • 引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。
  • 正则表达式:要提取的正则表达式,()中的是要提取的部分。
    注意:如果匹配的内容类似于<a class ='ksks' onclick="start('55645645SDFSDFSDF','5421313SFDGFHGJG')">AAA</a> ,外层括号会影响匹配的正则表达式导致匹配不到。
  • 模板:用美元符号引用起来。$1 $代表匹配第一个值,$2 $代表匹配第二个值
  • 匹配数字:0代表随机取值,1代表全部取值,通常情况下填0。
  • 缺省值:如果参数没有取得到值,那默认给一个值让它取,一般写null。

示例:提取百度页面的title<百度一下,你就知道>
在这里插入图片描述
提取成功
将提取的title应用到另一个请求,由于我本地没有项目,http请求2就是举例,并无实际意义。
在这里插入图片描述

2、Debug PostProcessor

  • 作用:这个我理解的和Debug Sampler差不多,都是调试用的。
  • 界面如下:
    在这里插入图片描述
  • 用法:正则里提取的还是百度的title
    在这里插入图片描述

3、BeanShell PostProcessor

  • 用法和BeanShell Sampler类似。都是写脚本执行。
  • 界面如下:
    在这里插入图片描述
  • 使用BeanShell PostProcessor组件获取Response中的内容
    代码如下:
  1. 场景一:获取请求响应中的数据,并保存
    import com.alibaba.fastjson.*; // 引入包。这个包需要先放在jmeter的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串中[]的内容

    // 保存数据
    【列表】
    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()进行转换

    【String类型】
    String id = resObj.get(“id”); // 获取对象中某一字符串的内容。
    vars.put(“id”, id); // 保存到JMeter变量中,后面的组件可以使用

    【Integer类型】
    Integer no = resObj.get(“id”); // 获取对象中某一整型的内容。
    vars.put(“no”, no.toString()); // 保存到JMeter变量中,vars.put只能保存字符串,因此这里使用了toString()进行转换

  2. 场景二:获取数据库中查询到的数据,并保存
    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);

示例:
test数据库中有两个表,tab_city表存放cityname和cityid;wea表存放food、cityname和cityid。

在jmeter中创建脚本,我想通过BeanShell PostProcessor把jdbc1返回的cityname用于jdbc2中来查food。需要了解JDBC请求的点击这里哦!
在这里插入图片描述
JDBC1:
在这里插入图片描述
在这里插入图片描述
JDBC2:
在这里插入图片描述
执行结果:
在这里插入图片描述
参考博客:https://blog.csdn.net/aduocd/article/details/80351719

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter后置处理器(Post-Processor)是一种用于处理采样器(Sampler)的响应数据的工具。后置处理器常用于从响应中提取关键数据,并将提取的数据应用于后续的请求或其他操作。 JMeter提供了多种后置处理器常用的包括: 1. 正则表达式提取器(Regular Expression Extractor):通过正则表达式从响应中提取指定的文本数据。可以使用正则表达式定义要提取的数据的模式,并将提取的结果保存到变量中。 2. XPath提取器(XPath Extractor):通过XPath表达式从XML响应中提取指定的节点或属性值。可以使用XPath表达式指定要提取的节点或属性,并将提取的结果保存到变量中。 3. JSON提取器(JSON Extractor):通过JSON路径表达式从JSON响应中提取指定的数据。可以使用JSON路径表达式指定要提取的数据,并将提取的结果保存到变量中。 4. Boundary Extractor:从响应中提取两个边界之间的文本数据。可以指定开始和结束边界,并将边界之间的内容保存到变量中。 使用后置处理器的步骤如下: 1. 在测试计划中选择需要添加后置处理器的采样器。 2. 右键单击采样器,选择"Add",然后选择"Post-Processor"。 3. 在弹出的对话框中,选择要使用的后置处理器类型。 4. 配置后置处理器的参数,如正则表达式、XPath表达式或JSON路径等。 5. 可选:将提取的数据应用于后续的请求或其他操作,可以使用变量引用方式。 后置处理器可以帮助我们从采样器的响应中提取所需的数据,并在后续的测试步骤中使用。这对于模拟用户登录、提取会话ID、动态生成参数等场景非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值