如何在Protractor中进行HTTP GET + POST请求

Jat*_*eth 6 jquery node.js jasmine protractor

我在Protractor中发送HTTP get请求时遇到问题.实际上,我需要在UI中执行某些操作后检查数据库中的数据.

如果我能够使用JQuery做到这一点将非常有用,但我无法找到如何在Protractor中使用JQuery的方法.

需要帮忙 !!

实际上,我们确实尝试使用Node.js lib,如下所示,但面临问题.

var http = require('http');

var json_data;

http.get('SiteUrl', function(response) {
    var bodyString = '';
    response.setEncoding('utf8');

    response.on("data", function(chunk) {
        bodyString += chunk;
    });

    response.on('end', function() {

        json_data = bodyString;
        console.log("1---->" + json_data);
    });

}).on('error', function(e) {
    console.log("There is an error in GET request");
});
console.log("2---->" + json_data);
Run Code Online (Sandbox Code Playgroud)

在调试之后,我们发现问题是Protractor没有等待HTTP请求完成并且只是传递.我们2---->先在控制台中获得第一名1---->.

Igo*_*ych 5

我也使用http模块(用于不同的目的,用于重新初始化数据库)。

要使量角器等待结束请求,请使用承诺

var http = require('http');

var json_data;

http.get('SiteUrl', function(response) {
    var bodyString = '';
    response.setEncoding('utf8');

    response.on("data", function(chunk) {
        bodyString += chunk;
    });

    response.on('end', function() {
        json_data = bodyString;
        console.log("1---->"+json_data);
        // All the processing and Angular code should be here
        console.log("2---->"+json_data);
    });

}).on('error', function(e) {
    console.log("There is an error in GET request");
});
Run Code Online (Sandbox Code Playgroud)

如果你不喜欢把所有的数据处理放到response.on('end')回调中,那就让回调成为一个单独的函数。

另外我不得不说,量角器不是用来直接检查数据库的。它用于端到端测试。您最好构建一个复杂的场景,在其中一个页面上写入一些数据,然后转到另一个页面并期望数据被更新。


小智 0

我认为这不是您正在寻找的正确答案。您还没有提到该数据库名称。

我正在使用http://frisbyjs.com/从量角器项目中的 couchdb(文档数据库)获取文档,它很好地实现了我的目的。