【问题标题】:Backend Rest Api testing using Protractor使用 Protractor 进行后端 Rest Api 测试
【发布时间】:2018-04-26 12:56:26
【问题描述】:

在哪里可以找到使用量角器和 jasmine 进行后端 Rest Api 测试的端到端测试示例?

【问题讨论】:

  • 这里的“Backend Rest Api testing”不清楚你的意思;端到端测试会包括涉及任何 API 端点的站点,还是您的意思是更直接地测试 REST API?无论哪种方式,SO 都不是来帮你找东西的
  • 直接使用量角器通过基本身份验证测试 REST API
  • 为什么?这真的不是它的设计目的。这是一个浏览器驱动程序。

标签: angular jasmine protractor


【解决方案1】:

您可以使用 nodeJs 中可用的“http”模块发出 http 请求,然后处理从 api 调用收到的响应。看下面的例子

var http = require('http');

var options = {
   host: 'example.com',
   port: 80,
   path: '/foo.html'
};

http.get(options, function(resp){
   resp.on('data', function(chunk){
   //do something with chunk
  });
}).on("error", function(e){
   console.log("Got error: " + e.message);
}); 

【讨论】:

    【解决方案2】:

    您可以使用“http”或“request”模块来调用服务器。 我建议 api 调用返回一个承诺,以便在测试中您可以使用 browser.wait() 函数并等待调用完成

    let apiCall = function () {
        return new Promise((resolve, reject) => {
            request.get(url, function (error, response, json) {
                if (!error && response.statusCode == 200) {
                   return resolve(JSON.parse(json));
                } else {
                    return reject(error);
                }
            });
        });
    }
    

    在你的测试中

    it("validates something",()=>{
     //...
      browser.wait(apiCall(),timeout).then(json => {
                  //do stuff with json
                });
     // Continue with your test
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多