Clumsy 0.2

Contents
Introduction
Clumsy Review
Default Rules
Block Specific IP
Sources
More Testing Tools

Introduction

Most Internet users strive to have a reliable network connection to the Internet, as it enables them to enjoy what it has to offer without most of the issues that may occur otherwise.

If you are a gamer, you may want to avoid lag more than anything else, while P2P users may dislike throttling and users who stream media the dropping of packets.

If you are a network administrator, or a developer whose creations rely on network connections, you may want to test how it behaves when conditions worsen.

What happens to your app when you are experiencing lags drops or throttling?

Are those events properly taken care of, or will they crash the service or application instead?

Clumsy Review

Clumsy for Windows has been designed to provide you with the answers to that. The free program, available as a 32-bit and 64-bit version, can simulate bad network connections.

clumsy 0.2 default

When you start the portable program after unpacking the graphical user interface that you see on the screenshot above launches.

The top lets you select a preset for your tests, for instance all IPv4 localhost traffic, all sending packets, or against specific IP addresses.

After packets are captured, you can choose to enable provided functions to worsen perspective network condition:

  1. Lag, hold the packets for a short period of time to emulate network lagging.
  2. Drop, randomly discard packets.
  3. Throttle, block traffic for a given time frame, then send them in a single batch.
  4. Duplicate, send cloned packets right after to the original one.
  5. Out of order, re-arrange the order of packets.
  6. Tamper, nudge bits of packet's content.

Check out this nice gif demonstrating how these functions affect packages:

clumsy
clumsy 0.2 пример

Some functions have additional parameters that you can define. If you want to throttle, you can specify the time frame in addition to the chance of it happening. For the duplicate function, you can define the count of packets, and for tamper, to redo the checksum.

To use the program, select the functions that you need for your tests, and click on the start button afterwards. The button turns into a stop button that you can use to stop the simulation at any point in time.

Tips

The source code of Clumsy has been made available as well, and a manual has been created as well which lists limitations and how to use the application.

Default Rules

RuleDescription:
localhost ipv4 all : outbound and ip.DstAddr >= 127.0.0.1 and ip.DstAddr <= 127.255.255.255
localhost ipv4 tcp : tcp and outbound and ip.DstAddr >= 127.0.0.1 and ip.DstAddr <= 127.255.255.255
localhost ipv4 udp : udp and outbound and ip.DstAddr >= 127.0.0.1 and ip.DstAddr <= 127.255.255.255
all sending packets : outbound
all receiving packets : inbound
all ipv4 against specific ip : ip.DstAddr == 198.51.100.1 or ip.SrcAddr == 198.51.100.1
tcp ipv4 against specific ip : tcp and (ip.DstAddr == 198.51.100.1 or ip.SrcAddr == 198.51.100.1)
udp ipv4 against specific ip : udp and (ip.DstAddr == 198.51.100.1 or ip.SrcAddr == 198.51.100.1)
all ipv4 against port : ip.DstPort == 12354 or ip.SrcPort == 12354
tcp ipv4 against port : tcp and (tcp.DstPort == 12354 or tcp.SrcPort == 12354)
udp ipv4 against port : udp and (udp.DstPort == 12354 or udp.SrcPort == 12354)
ipv6 all : ipv6
Rule to block all IPs, except two predefined in the rule ipv6 and ip.DstAddr !=10.6.1.100 and ip.DstAddr !=10.6.1.170 (does not work)

How to block specific IP

ip.DstAddr ==10.6.1.107 or ip.SrcAddr == 10.6.1.107

clumsy 0.2 Заблокировать определённый IP

Please comment what do you use Clumsy 0.2 for

Sources:

ghacks

Related Articles
Software Testing
API testing lessons for beginners
API Testign
Selenium
Selenium + Python
Selenium + Java
Multiple Drivers Simultaneously
Add Selenium to PyCharm
Testing with Python
Robot Framework
SOAP UI
JMeter
JUnit
Locust
Wireshark
Bash for QA
Clumsy 0.2
Jira
Pivotal Tracker
Integration Testing
Bug Report
Where to Study QA
Interviews with QA