Master's Thesis

Load Testing of Network Applications Using Python and the Locust Framework in IPv4 and IPv6

Final Thesis 2.09 MB Appendix 10.6 MB

Author of thesis: Ing. Martin Dundálek

Acad. year: 2025/2026

Supervisor: RNDr. Ing. Pavel Šeda, Ph.D.

Reviewer: Ing. Vlastimil Člupek, Ph.D.

Abstract:

This thesis explores the process of creating a load testing tool.When developing this tool, the author used the framework Locust, the Python programming language and supporting libraries for the graphical interface. Issues were identified, mainly raw packet creation of a specific type, that had to be solved before the final solution could be produced. The author resolved each minor issue before putting the aforementioned parts together. The result is a tool capable of performing load testing with the use of TCP and UDP floods. The solution includes a full graphical interface which allows the user to switch between three different testing methods and report generation. The author subsequently ran three tests from which he formulated conclusions for future improvements and potential issues that could arise. In these measurements,methods with different cobination of core parameters were used. After these tests, the author conducted a measuring with given parameters on a real machine and for comparison he performed test with the same parameters on the workstation. From these results, conclusions and specific issues were formulated. The author raised his concerns about high computational demands, mainly single processor core performance, and the Locust framework itself that at certain point only increases demands on computing power without providing any meaningful advantages over simpler, more customised solution.

Keywords:

Python, Locust, Load testing, UDP Flood, TCP Flood, Master thesis, report, GUI, load generator, DoS

Date of defence

09.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil diplomovou práci a odpověděl na otázky členů komise a oponenta. Otázky členů komise a oponenta: - Práce ve schématu (Obr. A.2) zmiňuje vizualizaci prostřednictvím Grafany, ale ta nebyla implementována. Z jakého důvodu bylo od tohoto záměru upuštěno a jaká by byla technická cesta k jejímu zapojení? - Zadání explicitně požaduje testování v IPv6. Jaké konkrétní kroky by byly potřebné k plnohodnotnému otestování nástroje v IPv6 prostředí a jaká úskalí byste v tom spatřoval?

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (MPC-IBE)

Composition of Committee

Ing. Vlastimil Člupek, Ph.D. (člen)
Ing. Petr Dejdar, Ph.D. (člen)
Ing. Patrik Dobiáš (člen)
doc. JUDr. Matěj Myška, Ph.D. (místopředseda)
prof. Ing. Dan Komosný, Ph.D. (předseda)
Ing. Radomír Svoboda, Ph.D. (člen)
Ing. Martin Rusz, Ph.D. (člen)
doc. Ing. Václav Oujezský, Ph.D. (člen)

Supervisor’s report
RNDr. Ing. Pavel Šeda, Ph.D.

Diplomová práce Martina Dundálka se zabývá návrhem a implementací rozšíření pro zátěžové testování pomocí nástroje Locust. Student pracoval samostatně, pravidelně konzultoval a aktivně diskutoval postup svého řešení.

Textová část práce odpovídá standardům VUT FEKT pro diplomové práce. V praktické části student úspěšně implementoval požadovanou funkcionalitu pro testování TCP a UDP flood zátěží v prostředí IPv4 i IPv6 sítí. Součástí řešení je také realizace testovacích scénářů, na kterých byla ověřena funkčnost a limity navrženého řešení.

Z provedených testů vyplývá, že řešení je funkční a schopné generovat adekvátní síťovou zátěž, přičemž dosažené výsledky byly analyzovány v různých testovacích scénářích a prostředích. Oceňuji zejména provedení porovnávacích testů na virtuálním prostředí i reálném serveru, které přispěly k lepšímu pochopení limitů navrženého řešení.

Pozitivně hodnotím také skutečnost, že autor popisuje limity realizovaného řešení, které vhodně dokreslují jeho využitelnost v praxi.

Zadání bylo splněno v plném rozsahu.

Celkové hodnocení: A, 90 bodů. Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Vlastimil Člupek, Ph.D.

Bakalář Martin Dundálek se ve své diplomové práci zabýval návrhem a implementací prototypu pro zátěžové testování síťové infrastruktury s využitím Pythonu a frameworku Locust v IPv4 a IPv6 sítích simulující UDP a TCP flood útoky. Autor realizoval funkční prototyp, vytvořil testovací scénáře, které následně otestoval. Výsledky testů zpracoval a vizualizoval v PDF reportu.

Zadání práce bylo převážně splněno. V práci postrádám testování vytvořených útoků v IPv6 síti. Praktická validace na IPv6 síti nebyla v práci provedena ani komentována. Výsledky práce jsou přehledně prezentovány. Práce má standardní rozsah. Z formálního hlediska je práce na dobré úrovni. Popisky výpisu kódu se uvádí nad výpisem kódu, ne pod ním. V práci chybí seznam použitých zkratek, veličin a symbolů. Mezi číslem a jednotkou by měla být mezera. Dále se v práci vyskytují typografické chyby vdovy. Práce s literaturou je na dobré úrovni. Autor cituje celkem 36 zdrojů, přičemž literatura zahrnuje jak odborné monografie, tak webové zdroje. Z odborného hlediska je práce na vysoké úrovni. Výsledky práce poslouží jako hodnotné praktické poznatky pro komunitu pracující s nástrojem Locust. Topics for thesis defence:
  1. Práce ve schématu (Obr. A.2) zmiňuje vizualizaci prostřednictvím Grafany, ale ta nebyla implementována. Z jakého důvodu bylo od tohoto záměru upuštěno a jaká by byla technická cesta k jejímu zapojení?
  2. Zadání explicitně požaduje testování v IPv6. Jaké konkrétní kroky by byly potřebné k plnohodnotnému otestování nástroje v IPv6 prostředí a jaká úskalí byste v tom spatřoval?
Points proposed by reviewer: 80

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová