我有一个有三个端点的Collection。第一个创建资产,第二个创建资产,第三个列出所有资产。
如何运行第二个,即每个迭代的Runner多次向资产添加文件?
我喜欢测试来创建资产并为每次迭代添加多个文件。
有什么建议吗?我知道我可以复制端点,但我想知道是否有一种编程方式来实现它。
答案 0 :(得分:2)
到目前为止,使用Postman没有直接的解决方案,可以在文件夹/集合中为同一个请求配置多个匹配。
尽管如此,您可以在Pre-request script部分编写一些代码,添加一个包含所需匹配数量的计数器并调用postman.setNextRequest("request_name")
方法(从here了解更多相关内容)与您当前的请求。
Out of Postman应用范围,您可以导出您的收藏集(作为 JSON 文件)并使用newman
编写一些javascript代码,run
是Postman的命令行伴随工具(更多关于来自here 的newman,它获得了一个带有大量迭代计数的Beanstalk
方法和可以帮助你的数据选项(例如,将你的第二个请求放在文件夹中并迭代通过它)。
希望有所帮助!
答案 1 :(得分:2)
创建2个环境变量:
将此代码添加到您要多次运行的请求的测试部分:
var counter = postman.getEnvironmentVariable("Counter");
var requestNumber = postman.getEnvironmentVariable("RequestNumber");
if (requestNumber < counter) {
postman.setNextRequest("RequestName");
requestNumber ++;
postman.setEnvironmentVariable("RequestNumber", requestNumber);
}
else {
postman.setEnvironmentVariable("RequestNumber", 1);
}
答案 2 :(得分:1)
使用postman.setNextRequest()
代替使用pm.sendRequest()
,更干净的方法来达到相同的端点。
在 Test 或预请求脚本中,您可以创建一个请求对象,该对象将描述您要发送的请求 (URL,HTTP方法,标头主体等),并将其放在pm.sendRequest()
function 中。
考虑:
const requestObject = {
url: 'https://postman-echo.com/post',
method: 'POST',
header: 'headername1:value1',
body: {
mode: 'raw',
raw: JSON.stringify({ key: "this is json" })
}
}
pm.sendRequest(requestObject, (err, res) => {
console.log(res);
});
要多次运行同一请求,只需将函数放在for
/ for..in
/ for..of
/ forEach
循环中。
考虑:
for(let iteration = 0; iteration < 5; iteration++) {
pm.sendRequest(requestObject, (err, res) => {
console.log(res);
});
}
如果需要,可以在循环中修改requestObject
。
查看Postman Documentation以获得更多详细信息。