如果您指的是 Postman 桌面应用程序,我认为您无法进行设置。正如 @Barney 在 cmets 中建议的那样,您可以尝试使用 browsermob-proxy。
我过去曾尝试过类似的事情,但后来放弃了(我们的后端团队编写了自己的测试),所以我并不肯定所有代码仍然有效,但这是要点(也记不起我的原始信息来源,但可能是因为我的配置看起来几乎相同:https://github.com/afternoon/protractor-browsermob-test/blob/master/protractor.conf.js)
在您的配置中,您需要在配置中使用 browsermob-proxy 并设置一些参数。
// conf.js
var Proxy = require('browsermob-proxy').Proxy,
Q = require('q'),
proxy;
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
browserName: 'chrome',
proxy: {
proxyType: 'manual',
httpProxy: 'localhost:8888',
sslProxy: 'localhost:8888'
},
}
onPrepare: function () {
var deferred = protractor.promise.defer();
proxy = new Proxy();
Q.ninvoke(proxy, 'start', 8888).then(function (data) {
browser.params.proxy = proxy;
browser.params.proxyData = data;
return data;
}, function (err) {
deferred.reject(err);
}).then(function (data) {
proxy.startHAR(browser.params.proxyData.port, 'test', function (err, resp) {
console.log('Start HAR');
deferred.fulfill();
});
});
return deferred.promise;
},
onComplete: function () {
return proxy.getHAR(browser.params.proxyData.port, function (err, harData) {
if(err) throw err;
// HERE IS YOUR LIST OF HTTP CALLS
var data = JSON.parse(harData);
console.log(data);
});
},
onCleanUp: function () {
return Q.ninvoke(proxy, 'stop', 8888).then(function (err) {
if(err) throw err;
console.log('Stopped server!');
});
}
};
剩下的就看你自己了。您的 HTTP 调用将在 onComplete 中创建的 data 变量中。这将包括所有 http 调用,因此您可能需要过滤掉一些不需要的数据。