59.1 Facebook网络模拟测试工具ATC使用
转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html
实际步骤本人并没有操作过。因为考虑再过一段时间马上就需要用到了,所以转载过来,当做自己的备忘录
正文
Facebook在其工程博客(原文 )上宣布开源移动网络测试工具Augmented Traffic Control(ATC),我迅速试用了一番,非常不错,对手游或者其他APP的调试和测试都非常有帮助,介绍给大家。
现在已经是APP时代了,由于手机网络的特殊性,移动APP需要面临更加复杂的网络环境。在设计之初就要考虑如何应对各种网络环境,比如很高的延迟,经常丢包,频繁的断线。特别是手游,断线重连机制设计的好坏直接影响到游戏的体验。
所以,在开发过程中模拟各种网络环境进行测试变得越来越重要。在ATC出来之前,微软曾经有一个网络模拟工具NEWT(Network Emulator for Windows Toolkit),使用起来也是方便。(NEWT的诞生也蛮有意思,见:NEWT的前世今生)
http://blog.sina.com.cn/s/blog_4caedc7a0100g9y6.html
那么,对比NEWT,ATC有些什么特点呢?
ATC有两个最吸引人的特点:
在手机上通过Web界面就可以随时切换不同的网络环境。
多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。
可以想象一下这个场景:一群程序猿和测试猴子热火朝天的在办公室忙活着,这时有一个叫ATC WiFi的热点,任何人都可以将手机连接上去,通过Web界面随意切换到各种不同的网络环境下进行调试和测试……
想想都有点小激动呢,接下来就来试用一把,感受一下ATC的威力。
ATC只能运行在Linux上,所以搭建部署稍显麻烦一些。本文将介绍在虚拟机里如何搭建ATC环境。大致有以下几个步骤:
VMWare装个Ubuntu系统吧(以前我常用VirtualBox,各种兼容性问题被坑惨了不敢用了)。
除非你的机器有无线网卡,不然找一个USB无线网卡,用来设置WIFI热点。
部署ATC
Ubuntu中设置WiFi热点功能,在系统自带的工具里可以直接开启。但是,由于是Ad-hoc模式,Android手机根本搜不到信号。所以必须设置AP模式才能让Android手机搜到。我折腾了好一阵,最后发现这篇文章最靠谱,照着设置一般就OK了。
接下来是部署ATC,其实也很简单,官方文档上写的也很清楚:https://github.com/facebook/augmented-traffic-control
首先,必须安装Python2.7以上版本,然后安装pip:
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
然后,使用pip直接安装好ATC所有组件:
pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
接下来部署Django的web工程,提供手机访问并用来配置和切换网络用的。
1.使用django-admin生成一个新的django工程:
django-admin startproject atcui
cd atcui
2.修改atcui/settings.py,加入ATC相关的内容:
INSTALLED_APPS = (...# Django ATC API'rest_framework','atc_api',# Django ATC Demo UI'bootstrap_themes','django_static_jquery','atc_demo_ui',# Django ATC Profile Storage'atc_profile_storage',
)
3.修改atcui/urls.py,urlpatterns 中加入atc的url页面:
...
...
from django.views.generic.base import RedirectView
from django.conf.urls import includeurlpatterns = patterns('',...# Django ATC APIurl(r'^api/v1/', include('atc_api.urls')),# Django ATC Demo UIurl(r'^atc_demo_ui/', include('atc_demo_ui.urls')),# Django ATC profile storageurl(r'^api/v1/profiles/', include('atc_profile_storage.urls')),url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
)
4.更新一下数据库:
python manage.py migrate
万事俱备,就差启动了……
前面设置WiFI热点时,你还记得设置的无线网卡的名字吗?嗯,就是wlan0,这个很重要。接下来要启动网络控制的核心组件atcd,需要通过参数指定提供Wifi热点的内网用的网卡名字,外网访问的网卡名默认是eth0(如果不是也需要通过–atcd-wan指定)
#原文给的
sudo atcd --atcd-lan wlan0
#因没有无线网卡驱动,前辈给的命令
sudo atcd --atcd-lan enp3s0 --atcd-wan enp3s0
然后,启动Django的工程:
sudo python manage.py runserver 0.0.0.0:8000
用手机连接上去试试吧。看看虚拟机的IP,比如我设置的是192.168.6.1,手机浏览器里访问:http://192.168.6.1:8000
在手机的界面里,你可以分别对网络上行下行进行设置,主要设置的参数有:
网络带宽(bandwidth)
延迟(latency)
丢包率(packet loss)
错包率(corrupted packets)
乱序率(packets ordering)
通过设置上面的参数,可以模拟出各种常用的网络环境,比如:2G,3G,4G,WiFi等等,同时也可以模拟一些异常情况,比如信号很差,延迟很大,丢包率高的情况。具体有哪些场景和参数设置,欢迎大家一起交流交流,下面是Comcast提供的一份参数配置(国外的网络和国内的很不一样吧,仅供参考,欢迎大家修正和补充)
59.1 Facebook网络模拟测试工具ATC使用相关推荐
- Facebook网络模拟测试工具ATC使用
转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html 实际步骤本人并没有操作过.因为考虑再过一段时间马上就需要用到了,所 ...
- 弱网络模拟测试工具---易测app
易测功能介绍 易测是一款基于无线客户端研发场景的通用测试工具, 它通过在研发人员的自持机上提供各种辅助能力&标准化的专项测试服务来提升研发质量&效率. 易测app是阿里巴巴做的 ...
- 弱网测试工具-ATC和NEWT
据目前了解的 模拟弱网,如2G,3G,4G网络信号的,工具主要有两个 1个是微软出的Network Emulator for Windows Toolkit. 可以参考http://blog.csdn ...
- facebook网络环境模拟工具atc
本来想自己制作一个atc的images,搜了一下docker hub,发现2015.5.15日有人发布了该工具的镜像,这下方便了. Docker hub地址 Image 启动镜像 docker run ...
- Facebook网络环境模拟工具ATC的使用
在我们之前的网络测试中,主要是限制网速来模拟弱网络环境,而实际中弱网络时,网络延时,丢包率都会有变化,所以使用网速+丢包率+延时来定义一种网络环境更加合理 本篇文章介绍ATC工具环境的搭建和使用,搭建 ...
- FaceBook ATC 弱网测试工具环境搭建
原址 工具简介 ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试. ATC有两个最吸引人的特点: 在 ...
- 弱网工具ATC使用总结
Facebook网络模拟测试工具ATC使用 就在上周,Facebook在其工程博客(原文)上宣布开源移动网络测试工具Augmented Traffic Control(ATC),我迅速试用了一番,非常 ...
- 【优测干货分享】微信测试工程师手把手教你做弱网络模拟测试
小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用户用着性能卓越的手机,连着畅通无阻的wifi网络. "哇塞!这个app好用到飞起!" ...
- 微信测试工程师手把手教你做弱网络模拟测试
微信测试工程师手把手教你做弱网络模拟测试 Posted by 腾讯优测 | 3,152 views 小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用 ...
最新文章
- 出现这四种情况,才是考虑分库分表的时候!
- Grunt 新手一日入门
- 简单struts,spring,mybatis组合使用
- iOS应用软件沙盒sandbox相关知识(整理)
- IDEA 同一个工程下不同模块之间的类相互调用
- krpano漫游加方向性3D声音(这篇文章已被移到krpano中国网站 krpano360.com)
- 爬虫之scrapy环境安装
- Docker 数据管理
- Fortran95学习总结
- AP注册不上线(现网中存在其它厂商的控制器)
- UI——day15.H5和小程序的设计
- 软件测试的类型有哪些?
- Teams Tab App 分析
- 适合发朋友圈的高情商文案
- HTML中添加点击链接 进行Skype、QQ、微信对话的问题
- 如何获取两个经纬度点之间的中心点的经纬度
- 期货开户公司交返怎么申请?
- 开发必备的图片格式——.9图的原理和陷阱
- DOS命令:cd显示当前目录名或改变当前目录
- JavaScript权威指南-总结
热门文章
- 资本频频下注,为什么是江小白?
- NOIP2017普及组:棋盘
- 硬盘位置不可用无法访问X:/指定不存在的设备?
- lisp 河道水面线计算_天然河道水面线计算表
- Spring中的scope配置和@scope注解
- astash制作UML类图 简单入门教程
- Reaveal + iPhone(越狱)分析第三方app的UI视图结构
- 目标检测扩散模型DiffusionDet登场,扩散模型正在不同任务中“扩散”
- 2016国赛A题——系泊系统问题粒子群算法求解
- php视频播放地址,视频网站播放地址获取方法