Facebook网络模拟测试工具ATC使用

发表于:2015-7-03 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderZh    来源:51Testing软件测试网采编

  Facebook在其工程博客(原文)上宣布开源移动网络测试工具Augmented Traffic Control(ATC),我迅速试用了一番,非常不错,对手游或者其他APP的调试和测试都非常有帮助,介绍给大家。
  ATC
  现在已经是APP时代了,由于手机网络的特殊性,移动APP需要面临更加复杂的网络环境。在设计之初就要考虑如何应对各种网络环境,比如很高的延迟,经常丢包,频繁的断线。特别是手游,断线重连机制设计的好坏直接影响到游戏的体验。
  所以,在开发过程中模拟各种网络环境进行测试变得越来越重要。在ATC出来之前,微软曾经有一个网络模拟工具NEWT(Network Emulator for Windows Toolkit),使用起来也是方便。(NEWT的诞生也蛮有意思,见:NEWT的前世今生)
  NEWT
  那么,对比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手机搜到。我折腾了好一阵,最后发现这篇文章最靠谱:http://my.oschina.net/eechen/blog/227230,照着设置一般就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
urlpatterns = patterns('',
...
# Django ATC API
url(r'^api/v1/', include('atc_api.urls')),
# Django ATC Demo UI
url(r'^atc_demo_ui/', include('atc_demo_ui.urls')),
# Django ATC profile storage
url(r'^api/v1/profiles/', include('atc_profile_storage.urls')),
url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
)
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号