2016-06-16 9 views
0

テストを実行する前に、ユーザーを作成する必要があるe2eテストを実行する前にセットアップ手順があります。私は休憩APIポスト呼び出しを行うためにAPIを分度器の要求」を使用してではなく、私は、要求にデータ(ボディ)とヘッダを渡すことができますどのように確信している:私の要求は次のようになります。分度器:ヘッダーと本文でAPI POSTを呼び出す方法

URL : 'rest/users', Headers : {'Content-Type' : 'application/json'}, body: {"userName": "user1", "domain": "1", "password": "password1", "userID": "1"}

は、任意の助けに感謝しますこれに。前もって感謝します。

私はこのような何かをしようとしています:

`var request = require('request'); 

function createuser(url){ 
console.log("complete url = ", browser.baseUrl+url); 
request({ 
    method: 'POST', 
    uri: browser.baseUrl+url, 
    multipart: [{'Content-Type': 'application/json'}, 
       {body: {'userName': 'test3', 'tenantKey': '0', 'password': 'Test3', 'userID': '3'}}],  
    function(error, response, body) { 
    if (error) { 
      return console.error('User Creation failed:', error); 
     } 
     console.log('User Creation successful! Server responded with:', body); 
    } 
}) 
}; 
createuser('rest/1.0/dev/users'); ` 

そのは私が私が間違って何をやっているかわからないエラー投げ:

 `Error: Body attribute missing in multipart.[0m 
Stack: 
Error: Body attribute missing in multipart. 
    at C:\code\ui\dgui\node_modules\request\lib\multipart.js:35:36 
    at Array.forEach (native) 
    at Multipart.isChunked (C:\code\ui\dgui\node_modules\request\lib\multipart.js:33:11) 
    at Multipart.onRequest (C:\code\ui\dgui\node_modules\request\lib\multipart.js:104:22) 
    at Request.multipart (C:\code\ui\dgui\node_modules\request\request.js:1176:19) 
    at Request.init (C:\code\ui\dgui\node_modules\request\request.js:424:10) 
    at new Request (C:\code\ui\dgui\node_modules\request\request.js:142:8) 
    at request (C:\code\ui\dgui\node_modules\request\index.js:55:10) 
    at createuser (C:\code\ui\dgui\tests\e2e\TestSuites\_BVT\_CreateNewUsers2.js:36:2) 
    at Suite.<anonymous> (C:\code\ui\dgui\tests\e2e\TestSuites\_BVT\_CreateNewUsers2.js:49:3) 

答えて

1

私はこの使用して「たSuperAgent」を達成することができています、

CallRestAPI: 

var request = require("superagent"); 
var PostUrl = browser.baseUrl + 'rest/1.0/dev/users'; 

exports.CreateUsers = function(body){ 
console.log("Executing CreateUsers"); 
var data = '{' +body + '}'; 
console.log("Send data in post request = ", data); 

request.post(PostUrl).set('Content-Type', 'application/json').send(data).end(function(err,res){ 
    if(err){ 
      console.log("CreateUsers post error= ", err) 
     } else{ 
      console.log("CreateUsers post response = ", res.status) 
     } 
});    
}; 

この機能を使うと::これは私が使用している方法です

var Common = require('../.././helpers/CallRestAPI'); 
Common.CreateUsers('"userName": "test1", "tenantKey": "0", "password": "Test1", "userID": "1"'); 
0

たとえば、リクエストの検証で自分のコードで管理しています。アクセストークンが間違っているかアプリが応答しません。あなたの命題が常に偽陽性を与える可能性のあるものをテストに渡すので、より良いアプローチです。

exports.authorize = function (login, pass) { 
    var action = function() { 
     return getToken().then(function (token) { 
      var dfd = protractor.promise.defer(); 
      req.post(getBackendUrl() + '/authorize/authenticate') 
       .set('Content-Type', 'application/json').set('RequestId', uuid.v4()).set('Authorization', token) 
       .send({"login": login, "pass": pass}) 
       .end(function (err, res) { 
        if (err) { 
         dfd.reject(res) 
        } else { 
         dfd.fulfill(res.body); 
        } 
       }); 
      return dfd.promise; 
     }) 
    }; 
    return browser.controlFlow().execute(action); 
}; 

エンドポイントAUTHORIZEは、両方のために200ステータスコードを返す - 有効有効でない資格情報を特定のテストでは、それは簡単なジャスミンによってdistinctedできるようにように期待:

 var Initialize = require('..initialize'); 
     var successResponse = {status: 'success'}; 
     expect(Initialize.authorize('some_login', 'some_password')).toEqual(successResponse); 
関連する問題