Postman 如果是邮递员401,请授权并重试
为了进行测试,我们大量使用postman来访问我们的API。现在我们调用一个路由进行授权,它将必要的内容存储在环境变量中,然后点击我们真正感兴趣的请求。如果请求得到401,我想使用test选项卡自动调用authorize路由,然后自动重试请求 看起来我可以调用pm.setNextRequest(“Name”),但这只能在集合运行程序的上下文中设置下一个请求。我希望在运行单个请求时自动执行此操作。有没有办法做到这一点 我特别寻找与collection runner无关的答案,因为它离我的用例还很远。谢谢。@Claudekennilo 您可以在请求前脚本中使用以下代码段。请注意,我向您介绍了如何使用请求前脚本调用端点,您可以根据需要更改循环Postman 如果是邮递员401,请授权并重试,postman,Postman,为了进行测试,我们大量使用postman来访问我们的API。现在我们调用一个路由进行授权,它将必要的内容存储在环境变量中,然后点击我们真正感兴趣的请求。如果请求得到401,我想使用test选项卡自动调用authorize路由,然后自动重试请求 看起来我可以调用pm.setNextRequest(“Name”),但这只能在集合运行程序的上下文中设置下一个请求。我希望在运行单个请求时自动执行此操作。有没有办法做到这一点 我特别寻找与collection runner无关的答案,因为它离我的用例还很远
const echoPostRequest = {
url: 'https://jsonplaceholder.typicode.com/posts',
method: 'POST',
header: 'Content-Type:application/json',
body: {
mode: 'application/json',
raw: JSON.stringify(
{
"userId": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
})
}
};
var checker = true;
var iterator = 0;
do {
pm.sendRequest(echoPostRequest, function (err, res) {
if(res.code === 200){
if (err === null) {
var responseJson = res.json();
// Do something here if condition passes
}
}else{
// Do something if condition fails
}
});
iterator++;
}
while (iterator<10);
const echoPostRequest={
网址:'https://jsonplaceholder.typicode.com/posts',
方法:“POST”,
标题:“内容类型:application/json”,
正文:{
模式:“应用程序/json”,
raw:JSON.stringify(
{
“用户ID”:1,
“标题”:“除可选择的补救措施外,必须重新制定计划”,
“正文”:“要求和支持\n要求专业人员和\n专业人员在设计和施工前对环境进行保护\n要求建筑设计师在设计和施工前对环境进行保护”
})
}
};
var checker=true;
var迭代器=0;
做{
发送请求(echoPostRequest,函数(err,res){
如果(资源代码===200){
if(err==null){
var responseJson=res.json();
//如果情况好转,在这里做点什么
}
}否则{
//如果条件失败,做点什么
}
});
迭代器++;
}
while(迭代)您可以使用请求的Pre-request script部分中的Postman脚本来检查收到的响应是否为401,然后重试。如果得到预期的响应,将调用实际请求。如何在Pre-request中获得请求的响应?