[转]FaceBook ATC 弱网测试工具环境搭建

工具简介

ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试。

ATC有两个最吸引人的特点:

  • 在手机上通过Web界面就可以随时切换不同的网络环境。
  • 多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。

搭建步骤

一、基础准备

1. 硬件准备

我这里用的是水星(Mercury)MW150U 150M无线USB网卡(别问为什么,要是你用别的网卡可以支持ap模式且有驱动也是可以的,我之前用Ralink和360wifi因为驱动和网卡本身不支持ap模式踩的坑非常多),还有,如果有树莓派玩一玩就更好了

2. 系统

ubuntu 14.04 LTS 桌面版

二、配置ubuntu下wifi

1. 检查无线网卡连接情况

我的ubuntu是安装vmware下,所以要先点击右键连接到虚拟机上(右下角的USB图标)

图片1.png

连接上之后,在命令行输入:lsusb
如果显示f201:5370就是我们的无线网卡的信息,说明我们识别出我们的usb无线网卡

2. 安装hostapd 和 dhcp

简单的概念解释下:

  • hostapd
    通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络
  • dhcp
    简单的说ip管理
  • 安装
    apt-get install hostapd isc-dhcp-server
  • 验证是否安装成功
    分别敲入hostapd和dhcpd,显示命令详解则为成功

图片6.png

3. 配置hostapd

创建并编辑配置文件 ,在terminal中输入命令:

[email protected]:/#vi /etc/hostapd/hostapd.conf

配置内容如下:

interface=wlan0
driver=nl80211
ssid=autotest  //wifi名字
channel=10
hw_mode=g
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=12345678 //密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

PS:除了wifi名字和密码,其他都可以一样,然后记得注释的反斜杠和内容要删掉

4.运行hostapd

terminal中输入以下命令:

[email protected]:/#nmcli nm wifi off
[email protected]:/#rfkill unblock wlan
[email protected]:/#killall hostapd
[email protected]:/#hostapd -B /etc/hostapd/hostapd.conf

hostapd -B是后台运行,-d是前台运行

图片7.png

5. 查询DNS,下一步备用

 [email protected]:/# nmcli dev list iface eth0 | grep IP4
 IP4.ADDRESS[1]:                         ip = 192.168.200.131/24, gw = 192.168.200.2
 IP4.DNS[1]:                             192.168.200.2
 IP4.DOMAIN[1]:                          localdomain
 IP4.WINS[1]:                            192.168.200.2

查询结果,DNS:192.168.200.2

6.配置dhcpd

[email protected]:/#vi /etc/dhcp/dhcpd.conf

输入以下内容:

subnet 192.168.0.0 netmask 255.255.255.0
    {
        range 192.168.0.2 192.168.0.10;
        option routers 192.168.0.1;
        option domain-name-servers 192.168.200.2;//查询的DNS,前面不用改
    }

7.设置wlan0

[email protected]:/#ifconfig wlan0 192.168.0.1 netmask 255.255.255.0

8.启动dhcp-server

[email protected]:/# touch /var/run/dhcp-server/dhcpd.pid
[email protected]:/# chmod 777 /var/run/dhcp-server/dhcpd.pid
[email protected]:/# dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid

图片8.png

9.IP转发

[email protected]:/#bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"

10.设置NAT

[email protected]:/#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

到这里,如果手机连接wifi,并正常上网则说明成功。

三、下载并配置ATC

1.安装pip

[email protected]:/#apt-get install python-pip

通过pip安装ATC需要的django组件:

[email protected]:/#pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage

2. 创建一个django工程以便使用ATC服务端app

[email protected]:/#django-admin startproject atcui

此时会在当前路径生成actui项目

3.修改ATC配置

切换到项目路径下,编辑配置文件

cd atcui/atcui
vi settings.py

在INSTALLED_APPS里添加如下内容:

‘rest_framework‘,
‘atc_api‘,
‘bootstrap_themes‘,
‘django_static_jquery‘,
‘atc_demo_ui‘,
‘atc_profile_storage‘,

图片5.png

 vi urls.py

将urlpatterns 内容改为一下内容:

from django.views.generic.base import RedirectView
from django.conf.urls import include

urlpatterns = [
        url(r‘^admin/‘,admin.site.urls),
        url(r‘^api/v1/‘,include(‘atc_api.urls‘)),
        url(r‘^atc_demo_ui/‘,include(‘atc_demo_ui.urls‘)),
        url(r‘^api/v1/profiles/‘,include(‘atc_profile_storage.urls‘)),
        url(r‘^$‘,RedirectView.as_view(url=‘/atc_demo_ui/‘, permanent=False)),
    ]

图片4.png

最后切换到manage.py所在目录,更新django数据库,执行以下命令:

python manage.py migrate

图片3.png

4.设置网卡

配置完成然后可以运行了,这里使用网卡eth0作为公网连接,wlan0作为内网连接,启动时通过参数指定,执行以下命令:

atcd --atcd-wan eth0 --atcd-lan wlan0

5.运行ATC UI

执行启动命令:

python manage.py runserver 0.0.0.0:8000

这时通过手机浏览器访问192.168.0.1:8000,会显示没有配置过任何profile的网页,下面提供Facebook已经配置好的文件配置。

6.使用facebook已经配置好的网络配置文件

获取方式如下:

apt-get install git
git clone https://github.com/facebook/augmented-traffic-control.git
apt-get install curl
cd augmented-traffic-control
utils/restore-profiles.sh localhost:8000

好了,这个时候再次在手机浏览器上访问192.168.0.1:8000,就可以看到如下界面:

IMG_1313.JPG

IMG_1314.JPG

基本使用如下:

turn on   //打开
select   //选择
update Shaping  //更新,选择网络之后,点击更新
turn off  //关闭

7.启动脚本

为了方便,把以上操作步骤写在shell脚本中,每次开机之后,只要执行脚本就可以启动项目和wifi,暂时没有配置成开机启动脚本
start-up.sh

#!/bin/bash
nmcli nm wifi off
sudo rfkill unblock wlan
sudo killall hostapd
sleep 2
sudo hostapd -B /etc/hostapd/hostapd.conf
sleep 3
sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
sleep 1
sudo touch /var/run/dhcp-server/dhcpd.pid
sudo chmod 777 /var/run/dhcp-server/dhcpd.pid
sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
sleep 3
sudo bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"
sleep 1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sleep 1
cd /home/lufukeng/Desktop/atcui/
nohup sh atcd.sh >atcd.log &
sleep 3
nohup sh start-atcserver.sh >atcserver.log &
sleep 3

atcd.sh

#!/bin/bash
atcd --atcd-wan eth0 --atcd-lan wlan0

start-atcserver.sh

#!/bin/bash
python manage.py runserver 0.0.0.0:8000

8.最后附上一份网络参数配置

Name (网络名称) 延迟(latency) 网络带宽(bandwidth) 丢包率(packet loss)
GPRS (good) 500 50 2
EDGE (good) 300 250 1.5
3G/HSDPA (good) 250 750 1.5
DIAL-UP (good) 185 40 2
DSL (poor) 70 2000 2
DSL (good) 40 8000 0.5
WIFI (good) 40 30000 0.2
Satellite 1500 - 0.2

可以根据自己的需要进行配置
至此,搭建结束,童鞋们可以根据自己的需要进行使用了。

参考文献

Facebook网络模拟测试工具ATC使用
Facebook/atc环境搭建总结

作者:dancingking
链接:https://www.jianshu.com/p/fb4824fd5bbc
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/didiaoxiong/p/9078139.html

时间: 2024-08-14 20:26:45

[转]FaceBook ATC 弱网测试工具环境搭建的相关文章

弱网测试工具

参考文章:https://www.cnblogs.com/xiao-qing/p/9431600.html    https://blog.csdn.net/zytthappy/article/details/85125772 一.fiddler 1)Rules—>customer rules(或者ctrl+r) 选择Customize Rules 2)Ctrl+F组合键调出搜索对话框,键入m_Simulate进行搜索,找到如下代码框 upload代表 上传速度 download代表下载速度 完

pylot测试工具环境搭建

1.下载Pylot:www.pylot.org/ 2. 安装Python 2.5 + (必须) 3. 安装wxPython(可选 - 用于GUI模式) 4. 安装numpy的(可选 - 用于报告以图表) 5. 安装matplotlib的(可选 - 用于报告以图表) 下载:http://sourceforge.net/projects/matplotlib 依赖库:six:https://pypi.python.org/pypi/six dateutil:https://pypi.python.o

移动端弱网测试

工具选型 弱网测试工具有如下几种: 1. Fiddler 2. Network Emulator for Windows Toolkit(NEWT) 3. Augmented Traffic Control(ATC) Fiddler是一个抓包工具,显然不是专门用来进行弱网测试的,术业有专攻,我希望有一个专门进行弱网测试并持续维护的工具. NEWT和ATC分别是微软和Facebook推出的网络模拟工具.其中,ATC是一个搭建在linux上的一个web服务,搭建一套之后可以给多人使用,而且是开源的.

APP弱网测试

弱网测试背景 用户体验 APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验 非正常情况下,Bug出现几率会增加 在解决日常支持需求中,经常出现一些用户反馈的Bug无法复现,有很大部分是因为用户的网络不稳定导致,导致出现一些意想不到的BUG APP异常 crash/崩溃:应用在使用是会有对话框提示(应用已经停止运行) 闪退:在使用应用时,无征兆退出返回桌面(native层体现,不易抓取Log) ANR:应用无响应 网络测试要点 热启动与冷启动: 后台有没有对应程序在

Android-APP流量测试及弱网测试

流量篇 概念 中等负荷:应用正常操作 高负荷:应用极限操作 流量测试中的测试子项: 1.应用首次启动流量值 2.应用后台连续运行 2 小时的流量值 3.应用高负荷运行的流量峰值 4.应用中等负荷运行时的流量均值 获取流量数据: 1.tcpdump+wireshark 2./proc/net/目录下相关文件 cat /proc/net/dev 获取系统的流量信息 3.查询应用的pid: adb shell ps | grep tataufo #如:31002 通过PID获取该应用的流量数据: ad

移动APP需要重视弱网测试

什么是弱网测试 在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式.不同的协议.不同的制式.不同的速率,使移动应用运行的场景更加丰富. 从测试角度来说,需要额外关注的场景就远不止断网.网络故障等情况了.对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分.按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网.除此之外,弱信号的Wifi通常

charles 设置弱网测试

Charles简介:Charles支持抓去http.https协议的请求,不支持socket. 然后charles会自动配置IE浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了. 这里打开百度抓包下,工具界面和相关基础功能. 下载与安装 首先是工具下载和安装 首先需要下载Java的运行环境支持(一般用burp的人肯定也都有装java环境).装好java环境后,可以直接去百度搜索并下载charles的破解版,下载到破解版之后,里面一般会有注册的jar文件,然后注册后就可以永久使用了(p

使用fiddler进行app弱网测试

转自:http://www.51testing.com/html/01/n-3727001.html APP弱网模拟测试 移动端测试区别于PC端测试的一点就是网络的多变性:不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响. 例如:进地铁.上公交.进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退.ANR.数据丢失等问题.因此,app网络测试,特别是弱网测试显得尤为重要. 利用fiddler的Simulate Modem Speeds功能,可

fiddle进行弱网测试

参考:https://blog.csdn.net/eleven521/article/details/19089671 近期因为要对手机app进行弱网测试,所以用到fiddle这个工具,fiddle是一个强大的工具,不仅可以抓包,同时可以对pc端和web端进行限速模拟,这里我就简单的用fiddle尝试一下怎么用fiddle给app做弱网测试. fiddle模拟限速的原理 我们可以通过fiddle来模拟限速,因为fiddle本来就是个代理,它提供了客户端请求前和服务器响应前的回调端口,我们可以在这