我试图从量角器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;
};
答案 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();
});
});
布里恩,非常感谢您早些时候的回复。