Facebook Augmented Traffic Controller - A POV on network testing tool
Kalilur Rahman
Director @ Novartis | IT Strategy, IT Management, Business Transformation
Facebook Augmented Traffic Control
Have you ever felt the need to simulate various network and mobile performance conditions for testing your new digital/mobile application or a responsive online system you want to test? Field emulation, network simulation and special condition testing is a challenging puzzle to crack. If you have a popular online portal or a mobile application with a massive reach, you need to ensure that the system behavior is acceptable across network conditions, across platform and devices. Digital content verification and validation comes to the foray.
One of the excellent tools available for you to accomplish this task is available freely from the most popular digital company in the world at the moment – Facebook. Facebook’s – Augmented Traffic Control - https://facebook.github.io/augmented-traffic-control/ is a brilliant tool to simulate network conditions, latency, packet loss/corruption/reordering for simulating testing and running the tests smoothly in a short span of time.
How it works?
Following link is a brilliant diagram explaining how it works - https://facebook.github.io/augmented-traffic-control/images/atc_overview.png
How to Install?
Landing page for wealth of information is available at
- https://facebook.github.io/augmented-traffic-control/
- User guide and manual for installation is available at
Skills Needed to Install and Test
- Good know-how of Linux and basic Linux Admin skills to configure processes/daemons
- It is available only in a LINUX build due to features available
- Basic Python Skills
- Basic know-how to understand Django – No coding required
- Very good problem solving skills
First Person POV on the experience of a proof-of-concept and usage
- Installation was a charm for our installation in a UBUNTU
- Configurations were followed in a seamless manner.
- A wired network with a high-speed DSL was setup.
- A wireless router with high-speed internet
- Deployment instructions followed as per guides
- It would be hard to believe a seamless installation/configuration isn’t it. We encountered issues while configuring the setup.
- A setup issue was encountered for running of daemon process and GUI invocation
- An email was sent to the developers and a query to SME helped resolve the issue within 9 hours
- A setup issue was encountered for running of daemon process and GUI invocation
Post configuration of the daemon process, use of 10 ATC sample profiles were available to test. We added a few additional configuration parameters to ensure we are able to emulate different configurations. It worked like a charm.
For ATC profile invocation, you can do the following.
- Invoke the ATC Daemon GUI
- Choose the profile you want to setup
- Turn-on the Profile
- Once done with testing, Turn-off the profile
What was the outcome?
We were able to configure setup for various speeds, throttle network speed, validate with speed testing tools, and carry on with the testing for expected conditions.
Original network speed in the device
Speed Throttled to 50% with profile activation in ATC
Server Logs for invocation and API Calls for profile invocation
What else can you do?
- Given this is delivered under BSD license, within the permissible limits, you can build your own test infrastructure, extend the interfaces for different purposes (i.e. build a better GUI for configuration, throttling, monitoring and reporting).
- You can also script an automated test execution scripting suite and run various simulation conditions in a sequential / parallel mode (based on setup and need).
Conclusion/Summary
I found ATC to be an excellent open source tool for simulating bandwidth and network conditions. It is a cost effective tool if you want to setup test infrastructure quickly for your project requirement.
This document can be referred to at Slideshare.
Hope it was useful. Thank you for reading this post. If you enjoyed reading it, please Like, Comment and Share!
Note:- Title Image created using CANVA tool. Authors of the quote referred where known. Most of the information shared is generic and available in various forms in the Internet. Respective trademarks are owned by corresponding firms.
Staff Engineering Manager at InMobi
8 年Thanks Kalilur for the details. I have setup the ATD server on my linux machine but i don't have any idea how to connect my testing device to this server to throttle the speed. Please assist me on this.
Lead Product Test Engineer || Process Intelligence || Process Improvement || Automation || Digital Transformation || Data Mining || Skan.ai
9 年Hi Kalilur, i'm trying to configure ATC in my ubuntu desktop. But i'm facing an issue like "One of the interface eth0 or eth1 is missing" so please help me put to solve this issue
Canadian PR | Quality Assurance |Generative AI/ML | RPA | ISTQB-CTFL? | SFC? | Web, Mobile and Desktop Application Testing | QA Automation | Software Tester | API Testing | JMeter
9 年Hi Kalilur, thanks for sharing. I have one question is can we setup this Facebook ATC on some virtual linux OS which have host OS MAC and our MAC is sharing its internet from Ethernet to WiFi ?
Thanks Kalilur for sharing this article!
Director @ Novartis | IT Strategy, IT Management, Business Transformation
9 年Naveen.. Yes it is.. It is open source and easy to use..