用于测试出站客户端请求的 Mocha 框架
Mocha framework to test outbound client request
我的用例:
实施自动化测试以在浏览器中打开页面后捕获入站客户端请求。例如,使用少量参数打开 http://foo.com that later makes beacon call to http://bar.com。
问题:
如何测试foo.com是否发起了对bar.com的调用?摩卡可以这样做吗?
回答我自己的问题。
我找到了一种使用 phantomjs 捕获页面发出的所有请求的方法,它有一个名为 phantom (https://www.npmjs.com/package/phantom) 的节点模块,可以打开一个页面,监听器会提供所有请求的资源。
示例 javascript 代码,
var phantom = require('phantom');
phantom.create(function (ph) {
ph.createPage(function (page) {
page.open("http://ramcountry.yahoo.com", function (status) {
console.log("opened site? ", status);
});
page.set('onResourceRequested', function(requestData, networkRequest) {
console.log("requested: ", requestData.url);
});
page.set('onResourceReceived', function(requestData, networkRequest) {
console.log("received: ", requestData.url);
});
});
});
Mocha(按设计)不提供此类功能,但可以与其他工具集成(如您在其他答案中所述)以提供测试优势。但是您的回答没有显示任何测试,所以我将在这里放置一些专门用于测试的框架:
我的用例:
实施自动化测试以在浏览器中打开页面后捕获入站客户端请求。例如,使用少量参数打开 http://foo.com that later makes beacon call to http://bar.com。
问题: 如何测试foo.com是否发起了对bar.com的调用?摩卡可以这样做吗?
回答我自己的问题。
我找到了一种使用 phantomjs 捕获页面发出的所有请求的方法,它有一个名为 phantom (https://www.npmjs.com/package/phantom) 的节点模块,可以打开一个页面,监听器会提供所有请求的资源。
示例 javascript 代码,
var phantom = require('phantom');
phantom.create(function (ph) {
ph.createPage(function (page) {
page.open("http://ramcountry.yahoo.com", function (status) {
console.log("opened site? ", status);
});
page.set('onResourceRequested', function(requestData, networkRequest) {
console.log("requested: ", requestData.url);
});
page.set('onResourceReceived', function(requestData, networkRequest) {
console.log("received: ", requestData.url);
});
});
});
Mocha(按设计)不提供此类功能,但可以与其他工具集成(如您在其他答案中所述)以提供测试优势。但是您的回答没有显示任何测试,所以我将在这里放置一些专门用于测试的框架: