2016-12-14 70 views
1

我正在使用茉莉花量角器e2e框架来测试我们的桌面应用程序之一。我对此完全陌生。所以,如果有什么不明确的,请问。如何使茉莉花量角器为非角度应用程序调用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调用,下面是 这个链接描述了superagent的用法。

npm package superagent

+0

这似乎是工作me.It工作了,它使用基本authentication.I应用多了一个桌面应用程序它使用SSO登录。因此它重定向到auth服务器,auth完成后,它将重定向回到应用服务器。我使用量角器登录到应用服务器,它工作正常。登录后,我想在同一台服务器上执行一些restapi。由于我已经登录到服务器,有没有办法使用相同的浏览器会话来执行restapi。我问这是因为我不知道如何使用restapi验证此服务器。如果有什么不清楚,请告诉我。 –

0

您可以简单地使用的NodeJS http模块,使API calls.Look低于上如何使GET和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

如何获得cookie的价值。同样在上面的例子中,用户名和密码通过认证。 –

+0

数据并不总是hashref。它的arrayref反过来可能有hashref作为它的元素 –