2016-12-14 4 views
1

私はjasmine-protractor e2eフレームワークを使用してデスクトップアプリケーションをテストしています。私は全く新しいです。だから何かが明確でない場合は質問してください。jasmine-protractorからnon-angleアプリケーション用のrestapiコールを作成する方法

これは私がサーバーにログインする方法です。サーバーは認証にSSOを使用します

describe('Protractor', function() { 
    beforeEach(function() { 
    browser.ignoreSynchronization = true 
    browser.get('https://myserver.com/login.html',60000); 
}); 


it('hi', function() { 
    var btn = element(by.css('.loginFormGroup')).element(by.partialLinkText('Tegile')); 
    btn.click(); 
    // browser.ignoreSynchronization = false; 
    var user = element(by.css('.UsernamePasswordTable')).element(By.id('ctl00_ContentPlaceHolder1_UsernameTextBox')); 
    user.sendKeys('user'); 

    var pass = element(by.css('.UsernamePasswordTable')).element(By.id('ctl00_ContentPlaceHolder1_PasswordTextBox')); 
    pass.sendKeys('passwd'); 

    var SignIn = element(by.css('.UsernamePasswordTable')).element(By.id('ctl00_ContentPlaceHolder1_SubmitButton')); 
    // browser.pause(); 
    SignIn.click(); 
}); 

これ以降、同じサーバーでrestapiを実行したいと考えています。可能であれば同じセッションを使用したいと思っています。

リクエスト/リクエストを使用しようとしましたが、動作しませんでした。たぶん私はそれを正しく使用していませんでした。

答えて

0

私はSuperAgentを使用して自分のアプリケーションのREST APIコールを作成しましたが、以下の というリンクは、スーパーエージェントの使い方を説明しています。

npm package superagent

+0

それはme.Itのために働いているようだが基本authentication.Iを使用してアプリのために働いた1つの以上のデスクトップアプリを持っていますSSOを使用してログインします。したがって、認証サーバーにリダイレクトされ、認証が完了すると、アプリケーションサーバーにリダイレクトされます。私はアプリケーションサーバーにログインするために分度器を使用していますが、正常に動作しています。ログイン後、私は同じサーバー上でいくつかのrestapiを実行したいと思います。私はすでにサーバーにログインしているので、同じブラウザセッションを使用してrestapiを実行する方法はありますか?私はrestapiを使ってこのサーバを認証する方法を知らないので、これを求めています。何かが明確でない場合は教えてください。 –

0

あなたは、単に両方がプレゼントする方法の例以下でAPI calls.Lookを作るためにhttpモジュールnodejs使用することができますし、POSTは、HTTPモジュールを使用して呼び出します。

GETコール:

var http = require('http'); 

var headerObj = { Cookie : 'cookie-value' } 
var options = { 
      host: "localhost" , 
      path: "/someurl", 
      port: 8080, 
      headers : headerObj 
     }; 
var req= http.request(options,function(response) { 
       var body = ''; 
       response.on('data', function(d) { 
        body += d; 
       }); 
       response.on('end', function() { 
        console.log(body); 
       }); 

      }).on('error', function (err) { 
       console.log(err); 
      }); 

      req.end(); 

POSTコール:

var http = require('http'); 

    var data = { name : "somename" }; //data that need to be posted. 
    var options = { 
      "method": "POST", 
      "hostname": "localhost", 
      "port": 8080, 
      "path": "/someurl", 
      "headers": { 
       "content-type": "application/json", 
       "cache-control": "no-cache", 
       cookie: 'cookie-value' 
      } 
     }; 

     var req = http.request(options, function (res) { 
      var body = ''; 

      res.on("data", function (chunk) { 
       body = body + chunk; 
      }); 

      res.on("end", function() { 
       console.log(body); 
      }); 
     }); 

     req.write(JSON.stringify(data)); 
     req.end(); 
+0

どのようにしてクッキーの価値を得るのですか?上記の例では、ユーザー名とパスワードが認証のために渡されます。 –

+0

また、データは常にハッシュリファレンスとは限りません。そのarrayrefはその要素としてhashrefを持つかもしれません –

関連する問題