求助jmeter正则表达式传参

在模拟注册过程中,手机号由随机函数生成并通过GET请求能在URL中获取。然而,当切换到POST请求进行登录时,无法提取到手机号。寻求解决在POST请求中获取注册手机号的方法。

场景:模拟注册、登录接口,注册手机号是随机函数生成,想用正则表达式取到注册的手机号,然后模拟登录。

问题:用get请求,可以在URL获取到手机号,完成登录,可切换成post请求,获取不到手机号,求大神指点

JMeter 5.6.3 中,使用正则表达式提取器(Regular Expression Extractor)是一种常见的后置处理器,用于从响应数据中提取参数,并将其传递给后续请求。以下是详细的配置方法和操作步骤: ### 添加正则表达式提取器 1. 在测试计划中,找到需要提取参数的 HTTP 请求取样器。 2. 右键点击该取样器,选择 **Add > Post Processors > Regular Expression Extractor**。 ### 配置正则表达式提取器 在弹出的配置界面中,需要填写以下关键参数: - **Field to check**:选择要检查的响应内容字段,例如响应正文(Body)、响应头(Headers)等。 - **Reference Name**:为提取的变量命名,后续请求中将通过 `${变量名}` 的方式引用它。 - **Regular Expression**:输入用于匹配响应内容的正则表达式。确保正则表达式能够正确捕获所需参数。 - **Template**:指定捕获组的编号,通常使用 `$1$` 表示第一个捕获组。 - **Match No. (0 for Random)**:指定匹配的序号,例如 1 表示第一个匹配结果,0 表示随机选择一个匹配项。 - **Default Value**:如果未找到匹配项,则使用该默认值。 例如,假设响应内容中包含一段 HTML 文本,其中包含如下结构: ```html <input type="hidden" name="token" value="abc123xyz" /> ``` 要提取 `value` 中的 `token` 值,可以配置如下: - **Field to check**:`Body` - **Reference Name**:`token` - **Regular Expression**:`name="token" value="(.+?)"` - **Template**:`$1$` - **Match No.**:`1` - **Default Value**:`NOT_FOUND` ### 在后续请求中使用提取的参数 在后续请求中,例如另一个 HTTP 请求,可以直接在参数或请求体中使用 `${token}` 来引用提取的值。 ### 示例代码片段 以下是一个使用正则表达式提取器的简单测试计划结构: ```xml <ThreadGroup> <HTTPSamplerProxy> <stringProp name="HTTPSampler.path">/login</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> </HTTPSamplerProxy> <RegexExtractor> <stringProp name="RefName">token</stringProp> <stringProp name="Regex">name="token" value="(.+?)"</stringProp> <stringProp name="Template">$1$</stringProp> <stringProp name="MatchNo">1</stringProp> <stringProp name="DefaultValue">NOT_FOUND</stringProp> </RegexExtractor> <HTTPSamplerProxy> <stringProp name="HTTPSampler.path">/dashboard?token=${token}</stringProp> <stringProp name="HTTPSampler.method">GET</stringProp> </HTTPSamplerProxy> </ThreadGroup> ``` ### 验证提取结果 1. 添加一个 **View Results Tree** 监听器,运行测试计划。 2. 查看响应数据,确认是否成功提取了目标参数。 3. 在后续请求中,检查是否正确传递了提取的参数值。 ### 注意事项 - 正则表达式的编写应尽可能精确,避免匹配到不相关的数据。 - 如果响应内容较大,建议仅检查必要的字段(如 Body)以提高性能。 - 使用 **Debug Sampler** 和 **View Results Tree** 监听器可以帮助快速调试提取器是否正常工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值