我所拥有的:用Jasmine为我的AngularJS应用编写的几个集成测试规范(它们可浏览我的整个应用)
我想要的:对我的应用程序执行网络监视并使用HAR导出数据
天真的解决方案:只需编写一个脚本即可接收URL并使用HAR导出数据。很简单,但不是自动的(我需要手动提供网址)
增强解决方案:自动化上述过程。脚本可浏览我应用程序的所有页面,并提取每个页面的网络数据。但是,由于我已经通过集成测试(量角器+ Jasmine)浏览了应用程序的所有页面,因此我只想“插入”有关导出网络流量的部分。
我找到了这个How can I use BrowserMob Proxy with Protractor?,我正在查看这里提供的示例example,但是我不太确定它是如何工作的。
ECONNREFUSED
错误。这是我的量角器文件配置:
var Proxy = require('browsermob-proxy').Proxy;
...
protractorConf = exports.base = {
//... more things
onPrepare: function() {
... more things....
browser.params.proxy = new Proxy({ // my selenium config for browsermob
selHost: '10.243.146.33',
selPort: 9456
});
//... more things
}
}
并且在我的集成测试规范之一中(它是CoffeeScript btw):
beforeEach ->
browser.get BASE_URL
browser.params.proxy.doHAR 'some/page/of/my/app', (err, data) ->
if err
console.log err
else
console.log data
但是我说的是ECONNREFUSED错误。我对Selenium与Protractor和brosermob的集成一无所知。
有什么想法或替代方法吗?谢谢!