如何从jasmine-protractor为非角度应用程序进行restapi调用

时间:2016-12-14 15:56:08

标签: rest jasmine protractor

我正在使用jasmine-protractor e2e框架来测试我们的桌面应用程序之一。我对此完全陌生。所以,如果问题不明确,请询问。

这就是我登录服务器的方式。服务器使用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。如果可能,我希望它使用相同的会话。

我尝试使用请求/请求,但没有工作。也许我没有正确使用它。

2 个答案:

答案 0 :(得分:1)

我使用SuperAgent为我的应用程序进行REST API调用, 下面是链接描述了superagent的用法。

npm package superagent

答案 1 :(得分:1)

您可以简单地使用nodejs http模块进行API调用。请参阅以下示例,了解如何使用http模块进行GET和POST调用。

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();

发布电话:

  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();