了解硒+浏览器代理+量角器+ AngularJS

问题描述 投票:3回答:1

我所拥有的:用Jasmine为我的AngularJS应用编写的几个集成测试规范(它们可浏览我的整个应用)

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

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

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

我找到了这个How can I use BrowserMob Proxy with Protractor?,我正在查看这里提供的示例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 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的集成一无所知。

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

angularjs selenium protractor har browsermob
1个回答
0
投票
对于任何https网站,我都将Propertoror与BrowserMob代理集成在一起。请参阅GitHub链接:https://github.com/kalpeshchilka/protractor-browsermob-automation
© www.soinside.com 2019 - 2024. All rights reserved.