3 回答
TA贡献1818条经验 获得超7个赞
let jsonData = pm.response.json();
let temp = []
jsonData.messages.forEach((b)=>{
temp.push(b.id)
})
pm.environment.set("emailID",temp)
console.log(pm.environment.get("emailID"))
您可以将数组或任何内容存储为环境变量。Postman 的工作方式与 JavaScript 类似。
现在变量已经有了值emailID。现在您可以使用 发送带有 id 请求的消息setNextRequest。
如果您的请求名称和结构如下:
首先获取消息,然后获取带有 ID 的消息:
然后在带有 id 请求的 GET 消息中使用以下预请求脚本:
let emailIDList = pm.environment.get("emailID");
pm.environment.set("id", emailIDList.pop())
pm.environment.set("emailID", emailIDList)
if (emailIDList.length > 0) {
postman.setNextRequest("get Message with id")
}
TA贡献1829条经验 获得超6个赞
我建议迭代 ids 数组并使用 为每个 id 发送 HTTP 请求pm.sendRequest()。
const ids = pm.response.json().messages.map(item => item.id);
for (let id of ids) {
const url = `https://gmail.googleapis.com/gmail/v1/users/user/messages/${id}`
pm.sendRequest(url, (err, result) => {
if(err) {
console.log(err);
} else {
pm.test(`200 OK for id '${id}'`, () => pm.expect(result.code).to.eql(200));
}
})
}
我个人更喜欢使用 pm.sendRequest(),如下所示:
您在脚本执行期间拥有更多控制权;
postman.setNextRequest当您使用“发送”按钮运行请求时无效,它仅在您运行集合时才生效。
TA贡献1785条经验 获得超8个赞
我不确定我是否很好地理解了这个问题,但为了增加 的值messages[1].id
,只需执行以下操作:
Responsedata.messages[1].id++
这将使该值增加(加一)messages[1].id
。
否则,如果您想迭代 Responsedata 对象中包含的超过 100 条消息,您可以这样做(因为 messages 是一个数组):
Responsedata = JSON.parse(responseBody)
for(let i = 0; i < Responsedata.messages.length; i++)
{
Value = Responsedata.messages[i].id
console.log(Value)
// do wathever you want with each message
}
添加回答
举报