我拥有:使用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与量角器和brosermob的整合,我完全迷失了。
任何想法或替代方案?谢谢!