3

我所拥有的:用 Jasmine 为我的 AngularJS 应用程序编写的几个集成测试规范(它们在我的整个应用程序中导航)

我想要什么:对我的应用程序执行网络监控并使用 HAR 导出数据

简单的解决方案:只需编写一个接收 URL 并使用 HAR 导出数据的脚本。这很容易,但不是自动的(我需要手动提供网址)

增强解决方案:自动化提到的过程。一个脚本,它浏览我的应用程序的所有页面并为每个页面提取网络数据。但是由于我已经通过集成测试(量角器 + Jasmine)浏览了我的应用程序的所有页面,所以我只想“插入”有关导出网络流量的部分。

我发现了这个如何将 BrowserMob 代理与量角器一起使用?,我正在查看此处提供的示例 example,但我不太确定它是如何工作的。

  • 我应该把什么作为代理的主机和端口?
  • 我正在使用 Selenium,并且我已经为它指定了主机和端口,但是我遇到了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):

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 的集成非常迷茫。

有什么想法或替代方案吗?谢谢!

4

0 回答 0