Systemaufbau
Das Testsystem basiert auf Linux welches mittels Yocto speziell für das System gebaut wird. Für das System werden in Yocto die Treiber für Qualcomm, Intel und NXP hinzugefügt und die Abhängigkeiten für das Testsystem installiert.
Diese Abhängigkeiten sind einerseits Python und Iperf3 für das automatische Testsystem und andererseits dnsmasq und Hostapd für den Betrieb des Wi-Fi Access Point.
Neben diesen Abhängigkeiten wird auch die Testsoftware automatisch im Yocto-Build installiert. Die Software wird automatisch über einen Systemd-Service gestartet wodurch kein Interaktion mit den Systemen direkt nötig ist.
Das finale System verwendet den Linux Kernel 6.1.22 wobei zu Beginn Kernel 5.15.71 eingesetzt wurde. Durch den Umstieg wurde die Treiberkompatibilität für die Wi-Fi 6 Module deutlich erhöht.
Access Point / Server
- Erhält Testkonfiguration und die Testdateien vom Monitoring System
- Konfiguration wird eingelesen
- Middleware gibt Spezifikation und Testdatei an korrekten Client weiter
- Testinformationen und Ablauf werden über Syslogs protokolliert
Client
- Erhält Testdatei und Spezifikation vom Server über Websocket Verbindung
- Ablauf und Fehlerprotokollierung über Syslog
- Test wird in seperatem Modul ausgeführt
- Nach dem Test wird die Ergebnisdatei and den Server gesendet
Testsoftware und Testablauf
Die Testsoftware basiert auf Python und wurde mit Fokus auf den einfachen Austausch von Tests und deren automatisierte Ausführung entwickelt. Für eine möglichst einfache Bedienung wird der Access Point und die Client Testsoftware automatisch gestartet. Zusätzlich verbinden sich alle Clients automatisch nach dem Start mit dem Netzwerk des Access Point.
Für die Testausführung müssen nur noch folgende manuellen Schritte ausgeführt werden
- Starten des Monitoring Rechners
- Starten des Access Point
- Start des Testskripts am Monitoring Rechner
- Starten des Clients nachdem auf dem Monitoring Rechner Wireshark gestartet wurde
Der entwickelte TestRunner sorgt dafür, dass die auf dem Monitoring Rechner geschriebene Testkonfiguration ausgelesen wird und anschließend vom Access Point die Testparameter and die jeweiligen Clients verteilt werden. Die Clients fordern anschließend die Testdatei vom Server an.
Die Testdatei ist ein Pythonskript, welches am Monitoring Rechner gespeichert ist und auf den Access Point kopiert wurde. In dieser Datei wird der Testablauf definiert und der Inhalt kann jederzeit verändert werden. Die Datei wird nach dem Transfer auf den Client separat gestartet und ist daher von der Implementierung des TestRunners unabhängig, solange die Schnittstelle für den Konstruktor und die Bezeichnung der implementierten Klasse eingehalten wird.
Am Access Point wird für jeden verbundenen Client eine zur Testdatei passende Serverdatei ausgeführt welche die Gegenstelle für den Test darstellt. Dadurch können jederzeit unterschiedliche Tests (z.B.: ICMP, IperfTCP) ausgeführt werden und es müssen lediglich die Testkonfiguration und die Dateien auf dem Monitoring Rechner angepasst werden.
Der Testablauf wird über Syslogs, die auf der Wi-Fi Schnittstelle als Broadcast gesendet werden, mitprotokolliert und kann auch am Monitoring Rechner mittels Wireshark mitverfolgt werden.
Am Ende des Tests wird am Monitoring Rechner der aufgezeichnete Wi-Fi Traffic abgespeichert. Gleichzeitig übermitteln alle Clients ihre Testergebnisse an den Access Point. Die gesammelten Testergebnisse werden anschließend automatisch auf den Monitoring Rechner kopiert und können an die Testauswertung weitergegeben werden.
DLLC
(c) 2024
FH Oberösterreich Campus Hagenberg