使用不同的数据在 Postman 中多次运行请求只运行一次

Posted

技术标签:

【中文标题】使用不同的数据在 Postman 中多次运行请求只运行一次【英文标题】:Running a request in Postman multiple times with different data only runs once 【发布时间】:2019-07-29 10:08:48 【问题描述】:

我是 Postman 的新手,遇到了一个我无法解决的反复出现的问题。 我正在尝试使用在 Pre-request 脚本上建立的数据数组多次运行相同的请求,但是,当我转到运行器时,请求只运行一次,而不是 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();

我查看了有关文档,但找不到我的代码有什么问题。

谢谢!

【问题讨论】:

【参考方案1】:

你离得太近了!问题是您没有为uuids 取消设置环境变量,因此在每次运行开始时它是一个空列表。只需添加 pm.environment.unset("uuids") 到您的退出语句,它应该运行所有三次。全部指定您的下一个请求应通过将其设置为 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")

【讨论】:

【参考方案2】:

预请求脚本不是使用不同数据测试 api 的好方法。最好使用 Postman runner。

首先,使用带有可变数据的邮递员准备一个请求。例如

然后点击 Runner 标签页

用数据准备 csv 文件

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

并作为数据文件提供,并运行示例。

它将允许您使用不同的数据类型多次运行相同的 api,并且可以检查测试用例。

【讨论】:

有没有办法可以将 Run 保存为作业? @Saurabhcdt,是的,使用Newman 你好,你能给我一个真实的例子吗,因为你的图片没有正确加载。 @monti 我可以看到图片,你能换个网络看看吗? 我已经把网络改成公共wifi了,但是还是不能正常加载

以上是关于使用不同的数据在 Postman 中多次运行请求只运行一次的主要内容,如果未能解决你的问题,请参考以下文章

Postman内置的动态变量

如何根据 Postman 中运行的迭代增加变量值

使用 Postman 和 Newman 发送二进制数据

Postman 内置的动态变量

邮递员多次运行相同的请求

podtman怎么打印请求参数