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

Postman中如何在变量无值时终止后续请求执行?含场景代码

解决Postman中基于环境变量控制请求执行流程的问题

看起来你已经搭好了核心逻辑的框架,我帮你调整和完善代码,确保能精准实现「当环境变量document无值时终止test2执行,仅让test1按CSV循环;有值时才执行test2」的需求。

核心思路

我们要在test1的Tests脚本里完成两个关键动作:

  • 验证响应数据,并在符合条件时设置document环境变量
  • 根据document变量的最终值,决定下一个请求是执行test2还是直接终止(让test1继续CSV迭代)

调整后的完整代码

pm.test("Verify the value: " + data.value + " exist in " + data.source, function() {
    _.each(pm.response.json(), (arrItem) => {
        pm.expect(arrItem.id).to.be.equal(data.value);
        pm.expect(arrItem.source).to.be.equal(data.source);
        findDocument(arrItem);
    })
})

function findDocument(arr) {
    arr.links.forEach(a => {
        // 找到包含'A90'的id,设置到环境变量
        if (a.id.indexOf('A90') > -1) {
            pm.environment.set('document', a.id);
        }
    });
}

// 关键:根据document变量决定下一个请求
const docValue = pm.environment.get('document');
if (docValue) {
    // 变量有值,执行test2
    postman.setNextRequest('test2');
} else {
    // 变量无值,终止后续请求,test1继续CSV迭代
    postman.setNextRequest(null);
}

代码说明

  1. 响应验证逻辑:保留了你原本的测试用例,遍历响应JSON数组验证每个项的id和source是否匹配CSV传入的data.value和data.source,同时调用findDocument函数查找目标链接。
  2. 环境变量设置:在findDocument里,只要找到id包含'A90'的链接,就将其id存入document环境变量(移除了原代码的else分支,因为我们不需要在没找到时立刻终止,而是统一在最后判断全局变量状态)。
  3. 流程控制:脚本最后获取document变量的值——如果存在有效值,就指定下一个请求为test2;如果为null/空,就设置postman.setNextRequest(null),这样Postman就不会执行test2,而是继续用CSV的下一行数据重新执行test1。

注意事项

  • 确保你的集合中test1在test2之前,这样流程控制逻辑才会按预期生效。
  • 运行集合时要正确加载CSV数据文件,并设置合适的迭代次数(或者选择「运行到数据集结束」)。
  • 如果document变量需要跨请求保持状态,确认它的作用域是「集合环境」或「全局环境」,而不是临时变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:00:05