在Postman中多次运行具有不同数据的请求仅运行一次

yx2lnoni  于 2022-11-23  发布在  Postman
关注(0)|答案(2)|浏览(410)

我刚接触Postman,遇到了一个反复出现的问题,我无法解决。我试图使用Pre-request脚本中建立的数据数组多次运行同一个请求,但是,当我转到runner时,请求只运行了一次,而不是3次。
请求前脚本:

var uuids = pm.environment.get(“uuids”);

if(!uuids) {
uuids= [“1eb253c6-8784”, “d3fb3ab3-4c57”, “d3fb3ab3-4c78”];
}

var currentuuid = uuids.shift();
pm.environment.set(“uuid”, currentuuid);
pm.environment.set(“uuids”, uuids);

测试项目:

var uuids = pm.environment.get(“uuids”);

if (uuids && uuids.length>0) {
postman.setNextRequest(myurl/?userid={{uuid}});
} else {
postman.setNextRequest();
}

我已经查看了有关文档,我找不到我的代码有什么问题。
谢谢你!

mv1qrgav

mv1qrgav1#

预请求脚本不是测试不同数据的API的好方法。最好使用Postman runner来测试。
首先,准备一个请求与 Postman 与可变数据。例如

然后单击“流道”选项卡

准备包含数据的csv文件

uuids
1eb253c6-8784
d3fb3ab3-4c57
d3fb3ab3-4c78

并作为数据文件提供,并运行示例。
它将允许你运行相同的api,多次使用不同的数据类型,并且可以检查测试用例。

cbeh67ev

cbeh67ev2#

你差一点就成功了!问题是你没有取消设置环境变量uuids,所以每次运行开始时它都是一个空列表。只需将pm.environment.unset("uuids")添加到你的exit语句中,它就应该运行三次。所有这些都指定你的下一个请求应该通过将其设置为null来停止执行。
因此,您的新“测试”将变为:

var uuids = pm.environment.get("uuids");

if (uuids && uuids.length>0) {
    postman.setNextRequest(myurl/?userid={{uuid}});
} else {
    postman.setNextRequest(null);
    pm.environment.unset("uuids")
}

相关问题