Facebook網路模擬測試工具ATC使用
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)),
)4.更新一下資料庫:
python manage.py migrate
萬事俱備,就差啟動了……
前面設定WiFI熱點時,你還記得設定的無線網路卡的名字嗎?嗯,就是wlan0,這個很重要。接下來要啟動網路控制的核心元件atcd,需要通過引數指定提供Wifi熱點的內網用的網路卡名字,外網訪問的網路卡名預設是eth0(如果不是也需要通過--atcd-wan指定)
sudo atcd --atcd-lan wlan0
然後,啟動Django的工程:
sudo python manage.py runserver 0.0.0.0:8000
用手機連線上去試試吧。看看虛擬機器的IP,比如我設定的是192.168.6.1,手機瀏覽器裡訪問:http://192.168.6.1:8000
NewStart
在手機的介面裡,你可以分別對網路上行下行進行設定,主要設定的引數有:
網路頻寬(bandwidth)
延遲(latency)
丟包率(packet loss)
錯包率(corrupted packets)
亂序率(packets ordering)
通過設定上面的引數,可以模擬出各種常用的網路環境,比如:2G,3G,4G,WiFi等等,同時也可以模擬一些異常情況,比如訊號很差,延遲很大,丟包率高的情況。具體有哪些場景和引數設定,歡迎大家一起交流交流,下面是Comcast提供的一份引數配置(國外的網路和國內的很不一樣吧,僅供參考,歡迎大家修正和補充)
|
相關文章
- [ATC]Facebook開源弱網模擬工具
- Mock 工具使用 - 模擬弱網測試Mock
- 弱網測試工具-ATC和NEWT
- 視訊弱網測試及常用模擬工具
- ---ios模擬弱網測試---iOS
- winShaper:Win10下真實網路環境模擬測試工具Win10
- 網路效能測試工具iperf的使用
- 模擬弱網測試方法總結
- 網路流量測試工具
- 使用Iperf工具進行網路效能測試
- 虛擬機器快速搭建弱網測試環境 ATC (適合新手)虛擬機
- 車聯網模擬測試解決方案
- 模擬測試框架-Mockito框架Mockito
- 網路基礎-常用網路測試工具
- WebRTC通話質量調優:三個弱網模擬測試工具的使用與對比Web
- netperf網路效能測試工具的使用詳解
- 智駕模擬測試實戰之自動泊車HiL模擬測試
- 英特佩斯匯流排採集測試模擬工具
- [原創]用Charles模擬App各種網路頻寬測試介紹APP
- 測試需要連線外網,這種情況下如何模擬弱網測試
- 【硬體】無線感測網實訓——Proteus8模擬工具使用
- 模擬測試生成Apache Kafka負載的最佳工具:KLoadGenApacheKafka負載
- 測試網路效能的小工具
- 【網路】效能指標與測試工具指標
- 安卓小程式模擬定位測試安卓
- 單元測試模擬框架Mockito框架Mockito
- android按鍵模擬測試Android
- Cisco Packet Tracer Student(思科網路模擬器)模擬搭建VLAN網路
- 由國產效能測試工具WEB壓力測試模擬能力對比讓我想到的Web
- Android單元測試與模擬測試詳解Android
- 用UiAutomator測試工具模擬輸入操作的幾種方式UI
- Facebook測試新支付工具 將挑戰PayPal
- 常見網路測試命令使用
- 用於網路協議測試的工具協議
- 維也納大學LTE鏈路模擬工具使用方法
- dd模擬asm磁碟容災測試ASM
- 初三奧賽模擬測試1
- 初三奧賽模擬測試5