This post is also available in: English polski (Polish)

How to Test Your App on a Slow or Unstable Internet Connection (Windows)

 

If you’re wondering how to test your app on a slow or unstable internet connection in Windows, you can simulate poor network conditions using Bean Network Tester, a free network chaos testing tool for Windows.

First download the exe file: (it’s Free for personal and commercial use), we need admin rights and x64 operating system:

Download Here (GitHub)

 

After launching the .exe file, we will see window with various options, by design, when we start the app it does nothing. For quick start, we can just scroll to the bottom of the Window, then we can choose the desired profile from the dropdown, and we can click the “Start” button:

Bean Network Tester - lag simulation tool, presets

After we clicked the “Start” button, by default ALL NETWORK TRAFFIC is begin affected by the chosen profile/settings. but the program allow you to chose various targets, we can chose exe files, ports, ip, we can give ranges, one value, multiple values, exclude things. There are tooltips near the input fields, so you can read them 🙂

Bean Network Tester - target

If you would like to change the profile, then after choosing a different profile from the dropdown, you need to click “Apply changes” button, same goes for custom edit’s of the network values.

Bean Network tester - network conditions profiles for network chaos testing

If you have edited the field values, you can use the “save” button (green outline on this screen) to save the values as a profiles, profiles are limited to only few values, they are a simpler version of the full chaos testing engine.

On the screen we can also see buttons marked with red outline. Those buttons export all network engine settings (NAT/Advanced one too). The full files and simple profiles can be saved and loaded on different machines too.

Network chaos testing tool for QA, profiles and presets system

 

Network testing automation

That’s the quick start. there are tons of other options, but let’s be honest, for most of the case, we will use the one I had mention, but there is also a scenarios system, if from program directory we go to directory: \_internal\scenarios we can see there scenarios files in .json format.

    { “at”: 20, “settings”: { “latency”: 110, “jitter”: 55, “up”: 180, “spike_prob”: 15, “spike_ms”: 400 } },
    { “at”: 60,  “action”: “reset_tcp” },

We can write own scenarios  or use the created ones, at (time in seconds) we can do “x” or set “y”. So we just click the “Load Scenario” button, we chose scenario and click the start button.

Network test automation using network chaos engine with steps

There is also full CLI mode, which we can even integrate with CI/CD:

“BeanNetworkTester.exe –loss 0.5 –latency 35 –jitter 10 –down 1536 –up 256 –syn-drop 5 –spike-prob 6 –nat-timeout 7 –rst-prob 2 –seed 397344625”

*If you run CLI command, it’s always worth adding “–duration <seconds>” flag to it, so the command won’t have infinite run.

 

What you can simulate

Real networks fail in more ways than “slow”. Bean Network Tester lets you recreate all of them:

  • High latency and jitter – the lag and unpredictable delay of mobile or long-distance connections.
  • Packet loss – the dropped data behind stalls, retries and timeouts.
  • Bandwidth limits – a genuine 3G or DSL-speed cap on upload and download.
  • Corruption, duplication and connection resets – the weird, rare failures that crash code nobody tested for.

 

If you are QA engineer, game developer, software tester, game tester <anything else> you can simulate poor network conditions with Bean Network Tester,

 

Why this tool name is “Bean Network Tester”? That’s simple, I had created this tool with AI-Assisted workflow, but from a small project, it grown to a bigger one, but the tool is 100% free, and testing, support, marketing, development costs a lot of time + cash for AI tokens, so in next few months I will have to eat beans as a dinner. So if you like the tool, please

Consider Donation

 

*Nah, to best honest I just love beans :D, no bean have been hurt during the development of this tool. In future I will bring a full documentation to the tool.

 

Follow me on:

 

Don't miss interesting content

Information about the premiers of my new Games and blog posts + gamedev tips + games giveaways. I won't spam you:-}