You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman中通过JavaScript匹配指定username提取userid的方法

在Postman中匹配指定Username提取对应UserID并存储环境变量

当然可以用JavaScript在Postman里实现这个需求!其实Postman的Tests脚本支持完整的JavaScript语法,完全能实现你要的这种精准匹配——就像你在SoapUI里用的XPath风格过滤逻辑一样。

下面是具体的实现步骤和代码:

  1. 获取并解析JSON响应体
    首先把Postman返回的JSON响应转换成JavaScript对象,方便后续操作:

    // 解析响应体为JS对象
    const responseData = pm.response.json();
    
  2. 匹配指定Username的用户
    使用数组的find()方法遍历Customers数组,找到第一个username匹配目标值(比如"Billy")的用户对象。这个方法和你在SoapUI里用的[?(@.xxx=='yyy')]逻辑完全对应:

    // 匹配username为"Billy"的用户(注意大小写敏感)
    const targetUser = responseData.Customers.find(customer => customer.username === "Billy");
    

    如果需要忽略大小写匹配(比如同时匹配"billy"、"BILLY"),可以改成:

    const targetUser = responseData.Customers.find(customer => customer.username.toLowerCase() === "billy");
    
  3. 将匹配到的UserID存入环境变量
    最后检查是否找到目标用户,如果找到就把对应的userid存入环境变量,避免找不到时出现报错:

    if (targetUser) {
        // 将userid转为字符串存入环境变量(Postman环境变量建议存字符串类型)
        pm.environment.set("targetUserId", targetUser.userid.toString());
        console.log(`成功提取到Billy的userid:${targetUser.userid}`);
    } else {
        console.log("未找到username为Billy的用户,请检查响应数据或匹配条件");
    }
    

把以上代码整合起来,直接粘贴到Postman请求的Tests标签页里,发送请求后就能自动完成提取和存储啦!

如果你的需求是提取所有匹配指定username的userid(而不只是第一个),可以把find()换成filter(),然后遍历结果数组处理即可。

内容的提问来源于stack exchange,提问作者Decypher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:08:08