3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
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"))
您可以將數(shù)組或任何內(nèi)容存儲(chǔ)為環(huán)境變量。Postman 的工作方式與 JavaScript 類似。
現(xiàn)在變量已經(jīng)有了值emailID?,F(xiàn)在您可以使用 發(fā)送帶有 id 請(qǐng)求的消息setNextRequest。
如果您的請(qǐng)求名稱和結(jié)構(gòu)如下:
首先獲取消息,然后獲取帶有 ID 的消息:
然后在帶有 id 請(qǐng)求的 GET 消息中使用以下預(yù)請(qǐng)求腳本:
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貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
我建議迭代 ids 數(shù)組并使用 為每個(gè) id 發(fā)送 HTTP 請(qǐng)求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));
}
})
}
我個(gè)人更喜歡使用 pm.sendRequest(),如下所示:
您在腳本執(zhí)行期間擁有更多控制權(quán);
postman.setNextRequest當(dāng)您使用“發(fā)送”按鈕運(yùn)行請(qǐng)求時(shí)無效,它僅在您運(yùn)行集合時(shí)才生效。

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
我不確定我是否很好地理解了這個(gè)問題,但為了增加 的值messages[1].id
,只需執(zhí)行以下操作:
Responsedata.messages[1].id++
這將使該值增加(加一)messages[1].id
。
否則,如果您想迭代 Responsedata 對(duì)象中包含的超過 100 條消息,您可以這樣做(因?yàn)?messages 是一個(gè)數(shù)組):
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
}
添加回答
舉報(bào)