API自动化 - 是否可以获得帖子调用的响应

时间:2016-10-05 10:55:41

标签: api automation gmail-api frisby.js

我正在学习如何使用gmail.api上的frisby.js自动化API。 我想创建一个测试,我创建和删除(或发送)草稿消息。

所以我编写了一个创建草稿的测试,我的问题是 - 我可以编写一个代码,至少可以从我的Post调用中获取生成响应的ID吗?

    var frisby = require('frisby');
frisby.create('Create Draft Google')
    .post('https://www.googleapis.com/gmail/v1/users/me/drafts?access_token=*my-token-here*', {
        message: {
            raw: "RGFuJ3MgVG9vbHMgYXJlIGNvb2wh",
            id: "1547265285486966899"
        }
        }, { json: true })
        .inspectJSON()
        .inspectBody()
    .expectStatus(200)
.toss();

因此,为了澄清,我想用

编写THIS ^测试的另一部分
.after(function(err, res, body){}

步骤:

  1. 我创建了草稿消息
  2. 我希望我的测试自动获取刚刚创建的草稿的ID
  3. 所以我可以删除它\发送它
  4. 谢谢!

2 个答案:

答案 0 :(得分:1)

创建草稿时,您将在响应中获得新创建的草稿的ID:

请求

POST https://www.googleapis.com/gmail/v1/users/me/drafts?access_token={access_token}

{
 "message": {
  "raw": "RnJ..."
 }
}

<强>响应

{
 "id": "r5019331921817638435",
 "message": {
  "id": "157948187e41b5bb",
  "threadId": "157948187e41b5bb",
  "labelIds": [
   "DRAFT"
  ]
 }
}

然后,您可以将此ID用于senddelete消息。

答案 1 :(得分:0)

.afterJSON(function(json){
    callback(json.id);
})

我使用了这个功能,但它确实有效。感谢我的朋友帮忙:D

如果有人需要,请在这里进行全面测试: 这就是我获取创建草稿的ID的方法

var frisby = require('frisby');
var new_id = function(frisby, callback)
{
frisby.create('Create Draft Google')
    .post('https://www.googleapis.com/gmail/v1/users/me/drafts?access_token=[my_token]', {
        message: {
            raw: "RGFu...",
        }
        }, { json: true })
        .inspectJSON()
        .inspectBody()
    .expectStatus(200)
    .afterJSON(function(json){
        callback(json.id);
    })
    .toss();
};
module.exports = new_id;

这就是我用它来删除这个草稿

的方法
var frisby = require('frisby');
var getid_spec = require("./getid_spec.js");
getid_spec(frisby,function(id){
frisby.create('Delete Google Draft Test')
        .delete("https://www.googleapis.com/gmail/v1/users/me/drafts/" +id +"?access_token=[my_token]", {})
        .expectStatus(204)  
    .toss();
})