2015-04-09 3 views
0

Я пытаюсь вызвать конечную точку отдыха из теста Protractor 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); 
0

Я использовал модуль npm - «игла» для вызова restAPI. У этого есть опция для перенаправления, которая помогла проверить тестовый сайт даже после перенаправления.

Ниже приведен пример тестового теста для проверки работоспособности конечной точки отдыха.

это ("проверка restendpoint служба работает", функция (сделано) {

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

    }); 

}); 

раствором соли, большое спасибо за ваш ответ ранее.

Смежные вопросы