如何将OS Process Sampler的执行结果保存到JMeter变量
可以实现,无需写入文件,操作配置如下
OS Process Sampler执行命令的标准输出会直接作为采样器的响应数据返回,你只需要通过后置处理器提取响应数据即可存入JMeter变量,无需经过文件中转。
前置准备
先调整你的PowerShell脚本,确保最终仅将需要的token输出到标准输出,删除所有多余的打印、日志内容,避免冗余内容干扰提取。你可以在输出token的行添加参数去掉多余换行:Write-Output $targetToken | Out-String -NoNewline
方案1:使用正则表达式提取器(无需写代码)
给你已配置好的OS Process Sampler添加子级正则表达式提取器,配置如下:
- 应用范围:选择
主样本 - 要检查的响应字段:选择
响应数据 - 引用名称:填写你要使用的变量名,例如
generated_token - 正则表达式:如果输出仅有token没有其他内容,直接填写
(.*)即可完整匹配 - 模板:填写
$1$ - 匹配数字:填写
1 - 缺省值:可填写
TOKEN_GET_FAILED方便后续调试定位问题
方案2:使用JSR223后置处理器(更稳定,避免正则匹配误差)
给OS Process Sampler添加子级JSR223后置处理器,语言选择groovy,在脚本框输入以下代码:
// 去掉响应内容前后的空白符、换行符后存入变量 vars.put("generated_token", prev.getResponseDataAsString().trim())
说明:代码中prev是JMeter内置对象,代指前一个采样器(也就是你的OS Process Sampler),vars是JMeter变量操作对象
验证方式
你可以添加调试采样器,运行后查看generated_token变量的值,也可以直接在任意位置通过${generated_token}引用该变量。
注意事项
- 你可以在OS Process Sampler的配置页将
Expected exit code设置为0,确保只有PowerShell脚本执行成功时才提取变量 - 如果脚本存在标准错误输出,你也可以调整后置处理器的提取字段,选择
响应代码/响应信息对应提取错误内容
内容的提问来源于stack exchange,提问作者Nadezhda T
相关产品推荐
相关产品推荐

