在请求级别禁用收集预请求脚本

问题描述 投票:0回答:2

我在邮递员中有一个测试集。我有一个要在集合级别运行的预请求脚本,但集合中有特定请求,我希望预请求脚本不要运行。

我怎样才能实现这个目标?

postman postman-pre-request-script
2个回答
11
投票

您不能这样做,但作为解决方法,只需为收集脚本添加一个条件,例如:

if (pm.info.requestName !== "the request you want to skip") {

}

如果您想动态执行此操作,则必须从要跳过的请求之前运行的请求中执行此操作:


例如:

在请求1中:

pm.variable.set("skip", true) // to skip request 2

在请求2中:

pm.variable.set("skip", false ) // to ensure remaining requests don't skip collection script

并在集合中添加

if (!pm.variable.get("skip")) {
    //then execute
}

0
投票

就我而言,也许不是您的,但我希望这对其他人有帮助,我使用集合级别预请求来获取身份验证令牌,然后设置集合级别变量以供每个端点的使用。在每个端点中,我将配置授权以使用 {{token}}。

这显然不理想,因为这意味着每个请求都会获取一个新令牌,并且意味着将每个请求的身份验证设置为 {{token}}。

我改变了方法,将请求后脚本添加到身份验证端点,以更新集合变量。然后每个端点只需将身份验证设置为从父级继承。

现在,我只需在需要时运行一次获取令牌端点即可。

更干净的方法。

这是获取令牌端点的请求后脚本:

if (response.token) {
    pm.collectionVariables.set("xxx-token", response.token);
} 

然后只需在集合的“变量”选项卡中定义一个“xxx-token”,并在每个请求的“授权”选项卡中将“类型”设置为“继承表单父级”即可。

© www.soinside.com 2019 - 2024. All rights reserved.