LivePool

Fiddler Like cross platform debugging proxy for web developers base on NodeJS

LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷的 WorkFlow 以及调试方案。

版本

version: 0.7.9

特性

  • 基于 NodeJS, 跨平台
  • 支持 http 抓包和本地替换调试,Https/WebSockets 直接代理转发(暂不支持本地替换)
  • 便捷的 UI 管理界面,跟 Fiddler 类似,降低学习成本
  • 可以脱离 UI 后台运行,适应于某些不需要抓包,只需要使用替换和简单路由的场景
  • 基于项目的替换规则管理,方便高效,规则支持拖曳排序
  • 支持基于请求路径的本地文件替换,支持基于请求路径的路由转发(host 配置)
  • 替换类型支持:文件/文件夹替换,combo合并替换,qzmin替换(批量combo),delay延时等
  • 支持自动设置系统代理
  • 支持规则过滤,只显示关注的请求
  • 提供构建 http get/post 请求界面,方便接口调试
  • 特色功能:模拟gprs/3g等低网速(mac only)
  • 特色功能:支持离线站点到本地,并自动代码格式化

安装

从 git 下载安装

  • 下载, 运行 livepool
git clone https://github.com/rehorn/livepool
  • 安装依赖
cd ~/livepool
npm install
  • 运行 livepool
node livepool.js

使用 npm 进行全局安装

npm install livepool -g
  • 运行 livepool
livepool

使用

局域网调试(如 wifi局域网)

调试移动 web 页面

  • 将手机的 wifi 连接代理设置为:服务器 192.168.1.*(对应的局域网 ip),端口 8090
  • 打开浏览器测试

网络代理访问

  • 某些网络环境下,比如公司内网,需要配置特定代理才能访问外网,livepool 支持网络代理访问
  • 找到当前运行目录下 rules/global.js 配置文件,加上如下代理配置项目,重启启动即可
  • proxy:'http://proxy.tencent.com:8080'

界面说明

  1. 菜单区
  2. Session(显示所有http请求信息)
  3. TreeView(使用树状结构显示Session信息)
  4. 功能Tab: Pool(按照项目管理本地替换规则)
  5. 功能Tab: Inspector (session查看器,查看请求header,body等信息)
  6. 功能Tab: Composer(http请求模拟器,可以模拟http get/post请求)
  7. 功能Tab: Filter(session过滤器,根据规则过滤session,只保留关注的)
  8. 功能Tab: Log(日志显示)
  9. 功能Tab: Timeline(session时间轴,comming soon)
  10. 功能Tab: Statics(统计,对站点性能进行评估,comming soon)

使用 LivePool 进行抓包

拦截所有的 http 请求,查看分析请求内容

设置代理

浏览器代理

手动将浏览器代理设置为 127.0.0.1:8090, Chrome 可使用 SwitchSharp 等插件进行代理切换,这样浏览器发出的所有的请求就能通过 livepool 中抓取

系统全局代理

livepool 可以设置系统全局代理,实现系统所有 http 请求的抓取

在 Session 中浏览请求

  • 灰色背景:命中本地替换规则,并返回了本地内容的请求
  • 绿色:js 请求
  • 玫红:css 请求
  • 蓝色:json 请求
  • 黑色:其他类型请求

使用 inspector 查看请求内容

http request

可以查看http request的header,cookie等信息

http response

可以查看http response的header,cookie,视图等信息

视图切换

可以查看图片、JSON、文本代码,并且对代码进行格式化,快速添加替换规则

tips: 便捷操作

  • 双击 sesssion 区域请求,快速查看请求内容
  • 在 TreeView 中节点,快速滚动到该请求,并查看对应请求内容
  • 右键复制请求 url
  • 右键在浏览器打开该 url
  • 右键 replay,再次发起该请求

本地替换开发

将浏览器请求替换为本地文件,进行线上调试或本地开发,修改立刻生效

新建项目

填写项目名称和根目录

新建替换规则

填写handler替换规则或router路由规则

文件替换规则

延时规则

将请求阻塞指定的时间,再返回给浏览器,可以用来测试极端网络下资源阻塞的页面表现

combo规则

将本地的多个文件合并为一个之后,返回给浏览器,多个文件路径之间使用“|”作为间隔符,一般用来开发调试站点js/css资源分模块进行文件存储的情况

qzmin规则(批量combo规则)

combo规则批量版本,使用一个json文件指定合并规则,便于替换和管理,文件格式请参考范例,find.all.qzmin

文件替换

将某个请求拦截,并使用本地文件替换,返回浏览器,可以用于本地开发调试

文件夹替换

将指定路径的请求,使用本地文件夹下同名文件进行替换(未找到对应文件则直接代理),返回浏览器,可以用于本地开发调试

tips: 便捷操作

  • 拖曳规则可以将规则进行快速排序
  • 从 session(界面区域1)拖曳请求到 Pool(界面区域4),可以快速创建本地替换规则
  • 快捷键:shift+c 复制当前选中项目或规则
  • 通过工具栏 export/import 进行规则的导入导出

路由规则

  • 使用 ‘-’ 表示直接代理:将请求直接代理转发到目标机器
  • ip 路由:将命中的请求路由到指定机器(相当于配置 host)

请求构建器

模拟 http 请求,可以修改get/post请求参数

过滤器

使用规则过滤不重要的请求

日志

显示系统信息、错误日志等

模拟低网速[mac]

模拟网络质量较差网络,查看站点表现

  • GPRS: 48kbit/s
  • Edge: 64kbit/s
  • 3g: 348kbit/s
  • ADSL: 768kbit/s
  • WIFI: 2048kbit/s

离线站点到本地

  • 将站点内容离线到本地,并自动代码格式化,便于查看
  • 站点保存到当前文件夹 Sites 下

快捷键

TODO

  • 完善 Timeline时间轴、Stat统计界面
  • LiveReload、AlloyDesinger集成,
  • 支持构建工具 task 管理与运行,如 Grunt, Gulp, Mod
  • More....

Thanks

  • extjs(sencha)
  • http-proxy
  • express
  • socket.io
  • underscore

http://rehorn.github.io/livepool/

http://www.alloyteam.com/2014/07/nodejs-debug-proxy-livepool/

Livepool的更多相关文章

  1. 用Web抓包分析工具Livepool 实现本地替换开发

    这是官方的介绍: LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷 ...

  2. 『重构--改善既有代码的设计』读书笔记----Replace Array with Object

    如果你有一个数组,其中的元素各自代表不同东西,比如你有一个 QList<QString> strList; 其中strList[0]代表选手姓名,strList[1]代表选手家庭住址,很显 ...

  3. node anyproxy ssi简易支持

    在项目中,ssi include是一个比较常用的功能,这样我们就可以通过web服务器的支持,将公用的html提取出来,改一个文件就会修改全部内容 但是这也带来了问题,在开发的时候没办法的刷新查看,需要 ...

  4. 豌豆夹Redis解决方式Codis源代码剖析:Proxy代理

    豌豆夹Redis解决方式Codis源代码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描写叙述: Codis is a proxy b ...

  5. 豌豆夹Redis解决方案Codis源码剖析:Proxy代理

    豌豆夹Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy base ...

  6. [转] whistle--全新的跨平台web调试工具

    whistle是基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler+Willow,基于Java实现的Charles,及公司同事基于Node实现的Livepoo ...

  7. Omi框架学习之旅 - 插件机制之omi-touch 及原理说明

    这个插件也能做好多好多的事,比如上拉下拉加载数据,轮播,等一切和运动有关的特效. 具体看我的allowTouch这篇博客,掌握了其用法,在来看它是怎么和omi结合的.就会很简单. 当然使用起来也比较方 ...

  8. whistle--全新的跨平台web调试工具

    版权声明:本文由吴文斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/151 来源:腾云阁 https://www.qclo ...

  9. 一些官方的github地址

    阿里巴巴开源github地址:https://github.com/alibaba 腾讯开源github地址:https://github.com/Tencent 奇虎360github地址:http ...

随机推荐

  1. [SQL]查询某一个字段在某一段时期数据库中使用到的记录

    有些时候我们常常须要哪里用到了一些表,又或者什么时候运行了某一个存储过程.整理出了在某段时期内数据库运行的sql查询.也能够查询到数据库中某些字段的存放处.非常好非常强大.希望能帮到大家~ SELEC ...

  2. Ubuntu 源码方式安装Subversion

    使用到的安装包: apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz pcre-8.35.tar.gz httpd-2.4.9.tar.bz2 subversion-1.8. ...

  3. yml 配置文件注入

    配置文件 JavaBean 自动提示 测试

  4. 前端框架(二)DIV多选复选框框的封装和MySql数据库存取

    图能够包括的寓意和含义是文字不能比拟的,先有一个效果图你也就知道这篇文章的主要内容是关于什么问题的.省去了一大堆文字的累述.看以下这张图: watermark/2/text/aHR0cDovL2Jsb ...

  5. java 中文转拼音之pinyin4j

    一.简介 有时候,须要将汉字编程相应的拼音.以方便数据的处理.比方在Android手机应用的开发上.要查询联系人的姓名.通常都是用拼音进行查询的. 比方要查询"曹孟德",就能够输入 ...

  6. 单机多实例MYSQL主从复制

    今天有时间写写,不然心坎里总有点不爽.单机多实例一直都是屌丝的处事风格... 实验环境 RHEL6.5 172.24.0.130  3306 172.24.0.130  3307 01.本次采用的MY ...

  7. aop注解 自定义切面的注解写法

    spring.xml中 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  8. HDUOJ---(1995)汉诺塔V

    汉诺塔V Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. 【LeetCode】142. Linked List Cycle II (2 solutions)

    Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cyc ...

  10. web development blog(转)

    Top 10 jQuery Mobile Code Snippets that you need to know jQuery Mobile is a framework for mobile web ...