jmeter关联 正则表达式提取器

正则表达式提取器(后置处理器)

1、比如需要提取如下响应文本中的 “百度一下,你就知道” 里面的 “百度一下,你就知道”:

这里写图片描述

2、设置正则表达式提取器:
这里写图片描述

说明:

  (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

  (2)正则表达式:

    ():括起来的部分就是要提取的。
    .:匹配任何字符串。
    * :匹配0次或者多次。
    +:一次或多次。
    ?:不要太贪婪,在找到第一个匹配项后停止。
    
  (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

  (4)匹配数字:0代表随机取值,-1代表全部取值,其余正整数代表将第几个匹配的内容提取出来。

  (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

### JMeter 正则表达式提取器的使用方法 #### 什么是正则表达式提取器正则表达式提取器是一种后置处理器,主要用于从服务器响应中提取动态变化的数据,例如 Session ID 或 token 等。这些数据可以在后续请求中被重用[^2]。 #### 如何添加正则表达式提取器? 要向 HTTP 请求中添加正则表达式提取器,可以右键单击目标 HTTP 请求节点,依次选择 **【添加】 -> 【后置处理器】 -> 【正则表达式提取器】** 完成添加操作。 #### 配置正则表达式提取器 以下是正则表达式提取器的主要配置项及其含义: - **引用名称**: 设置一个变量名,用于存储提取的结果。在后续请求中可以通过 `${variableName}` 的形式引用该值。 - **正则表达式**: 输入能够匹配目标数据的正则表达式。需要注意的是,如果响应中的特殊字符(如 `\`)需要转义,则应在正则表达式中进行相应的处理[^4]。 - **模板**: 指定提取哪个捕获组的内容。通常情况下,设置为 `$1$` 即可提取第一个捕获组的内容[^4]。 - **匹配数字**: 控制如何选取多个匹配结果。常见的选项包括 `0`(随机)、`1`(首个匹配)以及 `-1`(所有匹配)。 - **缺省值**: 当未找到任何匹配时使用的默认值。 #### 示例:提取 userSession 值 假设我们需要从某个接口返回的 HTML 页面中提取名为 `userSession` 的值。以下是一个具体的实现过程: 1. **添加正则表达式提取器** 在对应的 HTTP 请求下添加正则表达式提取器。 2. **填写参数** | 参数 | 描述 | |--------------|----------------------------------------------------------------------| | 引用名称 | 设为 `userSession` | | 正则表达式 | 使用类似于 `"name='userSession' value='(.+?)'"` 的模式来定位目标字段 | | 模板 | 设置为 `$1$` | | 匹配数字 | 设置为 `1` | | 缺省值 | 可选,默认为空字符串 | 3. **验证提取结果** 添加 Debug Sampler 并运行测试计划。通过查看结果树组件确认是否成功提取到了预期的 `userSession` 值[^2]。 4. **调用提取的值** 在其他依赖于 `userSession` 的请求中,可以直接使用 `${userSession}` 替代硬编码的值。 #### 注意事项 - 对于复杂的响应内容,可能需要调整正则表达式的复杂度以适应不同的情况。 - 如果响应是 JSON 格式,推荐优先考虑使用 JSON 提取器代替正则表达式提取器,因为后者更适合解析结构化数据[^3]。 ```python import re # 示例代码展示如何手动模拟正则表达式提取逻辑 response = 'name="userSession" value="abc123"' pattern = r'name="userSession"\svalue="(.+?)"' match = re.search(pattern, response) if match: extracted_value = match.group(1) print(f"Extracted Value: {extracted_value}") else: print("No Match Found") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值