推荐一个不错的弱网模拟框架

简介: 在《APP网络性能测试白皮书》中我们已经探讨了为什么要做弱网测试以及弱网测试中需要关注的一些指标,在《弱网环境搭建方案选型》这篇文章中我们讨论了各种弱网模拟方案的优缺点,其中在预算有限的情况下我是比较推荐基于ATC和树莓派去搭建弱网模拟平台的,这块的内容可以参考《树莓派搭建弱网测试环境全纪录(1)》和《树莓派搭建弱网测试环境全纪录(2)》,基于ATC的方案其实已经可以满足绝大部分场景的需求,但是原生的ATC方案易用性比较差,每次修改网络场景需要把被测APP置于后台,切换到网络模拟界面改参数,然后再切回被测APP,影响被测APP的操作连贯性,今天我要推荐的是一个基于ATC改造后的弱网模拟工具

TrafficShark介绍


拿目前我们自己的业务来说,在投屏播放、车载播放、应用页面渲染等场景下都有比较强烈的弱网测试需求,今天介绍的这个框架可以帮助我们快速生成不同的弱网配置以及对指定设备进行指定网络的设置,很好的解决了之前原生ATC方案在修改网络场景时影响被测APP操作连贯性的问题,废话不多说我们开始进入正题。


先来看看我部署好的效果图:

image.png

TrafficShark主界面由2部分组成:

  • Machine Settings - 测试设备管理和配置
  • Network Profiles - 弱网配置管理

Network Profiles


网络配置管理可以创建、编辑、删除相关配置,目前网络配置能力与 ATC 的基本一致,可以设置Bandwidth、Latency、Loss、Corruption、Reorder等,保存后即可在主页面看到相应配置。

image.png

Machine Settings


设备管理页面会自动扫描并列出当前已经连入AP的设备MAC和IP,之前有扫描过的但是当前没有在线的设备会显灰,如果超过2天都没有出现,则会直接删除。

image.png

设备控制功能:

  • 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地址即可看到最终的效果图。

相关文章
|
1天前
|
人工智能 自然语言处理
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
WebDreamer是一个基于大型语言模型(LLMs)的网络智能体框架,通过模拟网页交互来增强网络规划能力。它利用GPT-4o作为世界模型,预测用户行为及其结果,优化决策过程,提高性能和安全性。WebDreamer的核心在于“做梦”概念,即在实际采取行动前,用LLM预测每个可能步骤的结果,并选择最有可能实现目标的行动。
12 1
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
|
27天前
|
机器学习/深度学习 人工智能 算法
从数据增强的隐藏作用出发,揭示视觉强化学习可塑性损失的独特机制
【10月更文挑战第22天】视觉强化学习(VRL)通过智能体与环境的交互学习最优策略,但可塑性损失是其关键挑战。近期一篇论文《Revisiting Plasticity in Visual Reinforcement Learning: Data, Modules and Training Stages》通过实证研究,揭示了数据增强、评论家可塑性损失及早期干预在维持智能体可塑性方面的作用,并提出了一种动态调整重放率的方法,为解决高重放率困境提供了新思路。
31 2
|
1月前
|
人工智能 人机交互 智能硬件
从大模型的原理到提示词优化
本文介绍了大语言模型(LLM)的基本概念及其工作原理,重点探讨了AI提示词(Prompt)的重要性和几种有效技巧,包括角色设定、One-shot/Few-shot、任务拆解和思维链。通过实例解析,展示了如何利用这些技巧提升LLM的输出质量和准确性,强调了提供高质量上下文信息对优化LLM表现的关键作用。
48 0
|
3月前
|
机器学习/深度学习 监控
在进行多任务学习时,如何确保模型不会过度拟合单一任务而忽视其他任务?
在进行多任务学习时,如何确保模型不会过度拟合单一任务而忽视其他任务?
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
PVG:用小模型验证大模型输出,解决“黑盒”难题
【8月更文挑战第4天】随AI技术的发展,机器学习系统广泛应用,但在高风险领域如医疗和金融中,其决策需可验证与解释。为此,提出了“Prover-Verifier Games”(PVG)框架,通过两个学习者——证明者与验证者的博弈,前者提供决策及证据,后者评估证据真伪并做决策,以此提升决策透明度。实验显示,在图像分类和自然语言推理任务中,验证者能有效区分真假证据,即便证明者提供虚假信息。不过,PVG也面临计算成本高和适用范围有限等问题。
65 1
|
6月前
|
算法 Java 测试技术
【算法系列篇】模拟算法-1
【算法系列篇】模拟算法(-1
|
6月前
|
算法 Java
【算法系列篇】模拟算法-2
【算法系列篇】模拟算法-2
模型评估过程中,主要的验证方法与优缺点。
模型评估过程中,主要的验证方法与优缺点。
|
机器学习/深度学习 自然语言处理 算法
一种基于神经网络的策略,可增强量子模拟
一种基于神经网络的策略,可增强量子模拟
|
缓存 网络协议
Clumsy 弱网络环境模拟工具使用介绍
Clumsy 弱网络环境模拟工具使用介绍
1206 0