2017-02-15 33 views
0

残りのAPIをテストしようとしています。私のプロジェクトでは、ログインのためのAPIはありません。 apiを押すたびに、ログインにリダイレクトされ、ユーザー/パスを取得して結果を表示します。Frisbyで投稿要求と一緒に基本認証を渡すには?

私はGETを以下のように試してみましたが、これはうまく動作しています。

私は同じフォーマットのPOSTメソッドを使用しますが、応答は不運です。

var frisby = require('frisby') 
var user= '[email protected]' 
var pass= 'temp' 
var jsonbody = {"group": "a10bbd20", 
     "category":"Attack", 
     "notes":"abcdddd", 
     "criteria":[ {"attribute":"PATH" ,"operator": "EQUALS", "value":"/Account/demo.aspx" }] 
     } 

frisby.create('TEST POST') 
.post('https://localhost:8443/api/v2/rule-settings/pointwise',jsonbody,{ json: true },{ headers: { 'Content-Type': 'application/json' }},{strictSSL: false}) 
.auth(user,pass,false) 

.expectStatus(201) 
.toss(); 

======================

私は、以前の応答からクッキーを保存することにより、POSTリクエストを実行しようとしましたが、ためにまだ同じエラータイムアウト私は取得しています

var frisby = require('frisby') 
var url = 'https://localhost:8443'; 
var api= '/api/v2/events/details' 
var endpoint = '?id=ccce2aef971f' 
var user= '[email protected]' 
var pass= 'temp' 


var loginState = { 
}; 


    frisby.create('GET event details based on eventid from an endpoint') 
    .get(url+api+endpoint,{strictSSL: false}) 
    .auth(user,pass,false) 
     .after(function (body,res) { 
      var cookie = res.headers['set-cookie']; 
      console.log(cookie); 
      loginState.user1 = {}; // build an object for user 1 
      loginState.user1.cookie = cookie;     
      var jsonbody = {"group": "a10bbd20", 
          "category":"Attack", 
          "notes":"abcdddd", 
          "criteria":[ {"attribute":"PATH" ,"operator": "EQUALS", "value":"/Account/demo.aspx" }] 
          } 

     frisby.create('TEST POST') 
     .post('https://localhost:8443/api/v2/rule-settings/pointwise',jsonbody,{ json: true },{strictSSL: false}) 
     .addHeader('cookie', loginState.user1.cookie) 
     .addHeader('Content-Type', 'application/json') 
     .inspectRequest() 
     .expectStatus(201) 
     .toss(); 
     }) 

     .toss(); 

出力は

Message: 
Expected 500 to equal 200. 
Stacktrace: 
Error: Expected 500 to equal 200. 
at null.<anonymous> (C:\Users\Administrator\Documents\TestSuite\node_modules 
\frisby\lib\frisby.js:493:42) 
at null.<anonymous> (C:\Users\Administrator\Documents\TestSuite\node_modules 
\frisby\lib\frisby.js:1074:43) 
at Timer.listOnTimeout (timers.js:92:15) 

答えて

0

ですが、私は、検索とfrisby問題のページのカップルの後に解決策を見つけました。

証明書をバイパスする環境変数を追加する必要があります。 追加process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";投稿方法の前にとすべてが良いです。

もう1つ、定期的なポストリクエストでも動作します。連鎖する必要はなく、クッキーのために一緒に投稿します。

関連する問題