为了账号安全,请及时绑定邮箱和手机立即绑定

邮递员获取 Gmail 电子邮件 ID,遍历电子邮件 ID?

邮递员获取 Gmail 电子邮件 ID,遍历电子邮件 ID?

慕盖茨4494581 2023-08-18 16:10:32
对于邮差来说,我还很陌生,在链接 API 请求时,我从来没有完全专注于迭代消息 ID。我有一个简单的 GET 请求,如下所示https://gmail.googleapis.com/gmail/v1/users/user/messages这没问题,可以检索收件箱中的前 100 条消息,我使用索引链接到另一个命令来打开该电子邮件并使用以下代码检查内容Responsedata = JSON.parse(responseBody)Value = Responsedata.messages[1].idconsole.log(Value)pm.environment.set("email_id", Value); 我不明白的是如何在下一次迭代中迭代并将 message[1].id 从 1 增加到 2?我从来没有完全专注于递增变量,如果这就是你所描述的方式的话。
查看完整描述

3 回答

?
qq_笑_17

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 的消息:

https://img1.sycdn.imooc.com//64df27a50001dcfc11310474.jpg

然后在带有 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")

}

https://img1.sycdn.imooc.com//64df27b200012a7f10540465.jpg

查看完整回答
反对 回复 2023-08-18
?
肥皂起泡泡

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当您使用“发送”按钮运行请求时无效,它仅在您运行集合时才生效。


查看完整回答
反对 回复 2023-08-18
?
慕的地10843

TA贡献1785条经验 获得超8个赞

我不确定我是否很好地理解了这个问题,但为了增加 的值messages[1].id,只需执行以下操作:

Responsedata.messages[1].id++

这将使该值增加(加一)messages[1].id

https://img1.sycdn.imooc.com//64df27c60001afda02590137.jpg

否则,如果您想迭代 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

}



查看完整回答
反对 回复 2023-08-18
  • 3 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信