量角器 - 测试休息终点

时间:2015-04-09 13:31:05

标签: rest testing protractor e2e-testing

我试图从量角器E2E测试中调用休息终点。我已经提到了以下网站,但这篇文章似乎是基于旧的API

例如:protractor.promise.defer();似乎不再适用于最新的API。

http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/

您能否根据最新的量角器API(> = 1.3)建议/提供示例代码以调用休息终点。

我试图编写泛型函数,如下所示。

var executeRequest = function(method, url) {
     var defer = protractor.promise.defer();

     // method can be ‘GET’, ‘POST’ or ‘PUT’
     request({uri: url, method: method, json: true}, function(error, response, body) {

        if (error || response.statusCode >= 400) {
          defer.reject({
            error : error,
            message : response
          });
        } else {
          defer.fulfill(body);
        }
     });

     // Return a promise so the caller can wait on it for the request to complete
     return defer.promise;
};

2 个答案:

答案 0 :(得分:1)

您可以使用request-promise代替。来自他们网站的例子......

var rp = require('request-promise');

var options = {
  uri : 'http://posttestserver.com/post.php',
  method : 'POST'
};

rp(options)
  .then(console.dir)
  .catch(console.error);

答案 1 :(得分:1)

我使用了npm模块 - “needle”来调用restAPI。这有重定向选项,即使在重定向后也有助于验证测试站点。

请查看下面的示例测试以验证休息端点是否正常运行。

it(“检查转发点服务正在运行”,功能(完成){

var restendpointUrl = browser.baseUrl + 'service'; 

needle.get(healthcheckUrl,{follow_max : 5}, function(err,resp) {

        expect(resp.statusCode).toBe(200);
        if (!err && resp.statusCode == 200) {

            expect(true).toBe(true);

        } else {
            expect(false).toBe(true);
        }
            done();

   });

});
布里恩,非常感谢您早些时候的回复。