TrafficShark介绍
拿目前我们自己的业务来说,在投屏播放、车载播放、应用页面渲染等场景下都有比较强烈的弱网测试需求,今天介绍的这个框架可以帮助我们快速生成不同的弱网配置以及对指定设备进行指定网络的设置,很好的解决了之前原生ATC方案在修改网络场景时影响被测APP操作连贯性的问题,废话不多说我们开始进入正题。
先来看看我部署好的效果图:
TrafficShark主界面由2部分组成:
- Machine Settings - 测试设备管理和配置
- Network Profiles - 弱网配置管理
Network Profiles
网络配置管理可以创建、编辑、删除相关配置,目前网络配置能力与 ATC 的基本一致,可以设置Bandwidth、Latency、Loss、Corruption、Reorder等,保存后即可在主页面看到相应配置。
Machine Settings
设备管理页面会自动扫描并列出当前已经连入AP的设备MAC和IP,之前有扫描过的但是当前没有在线的设备会显灰,如果超过2天都没有出现,则会直接删除。
设备控制功能:
- Profile - 可以为设备选择已保存的网络配置
- Turn On - 把当前设备的网络配置启用,立即对设备的网络环境进行限制
- Update - 把当前设备的网络配置选择保存下来,如果已经Turn On则立马生效到设备网络环境中
- Capture - 打开该设备的抓包管理页面(不是很好用)
TrafficShark部署
TrafficShark的安装部署主要分两部分,首先你需要准备一个具有AP功能的树莓派,然后给它配置好WIFI热点服务,这部分内容可以参考《树莓派搭建弱网测试环境全纪录(1)》和《树莓派搭建弱网测试环境全纪录(2)》这两篇文章。
接下来就是TrafficShark的安装部署了,这个项目主要由两大块组成:
- TrafficSharkService - 用于后台运行的service,负责核心的设备网络设置、抓包、记录等功能
- TrafficSharkConsole - 用于前台展示的Web控制台,负责展示并与TrafficSharkService通讯
Git、Python环境的准备我就不说了,先来安装部署TrafficSharkService:
pi@raspberrypi:~ $ git clone git@github.com:kenlist/traffic-shark-service.git pi@raspberrypi:~/traffic-shark-service $ sudo ./install.sh pi@raspberrypi:~/traffic-shark-service $ sudo ./run.sh
接着安装部署TrafficSharkConsole:
pi@raspberrypi:~ $ git clone git@github.com:kenlist/traffic-shark-console.git pi@raspberrypi:~/traffic-shark-console $ sudo ./install.sh pi@raspberrypi:~/traffic-shark-console $ sudo ./run.sh
在浏览器中访问{树莓派ip}:8080地址即可看到最终的效果图。