Leserartikel Anleitung: Speedtest unter Windows automatisieren und auswerten

sini

Lieutenant
Registriert
Dez. 2012
Beiträge
799
Hallo zusammen,
ich möchte euch hier ein praktisches Tool vorstellen, mit dem an Breitbandmessungen automatisieren kann.

1. Einleitung:
wer Probleme mit seinem Internet-Provider in Bezug auf die Geschwindigkeit hat, wird häufig zu Ohren bekommen, dass man mehrere Speedtests über einen gewissen Zeitraum machen soll. Nur wer hat Lust für 48 Stunden alle 30 Minuten einen Speedtest zu starten? Vermutlich keiner. Zwar stellt die Bundesnetzagentur ein Tool (https://breitbandmessung.de/) bereit, welches die einzelnen Tests in eine Mess-Reihe zusammenfasst, aber auch hier ist hoher manueller Aufwand notwendig.

Aber was wäre, wenn man das komplett automatisieren könnte? 😏

2. Das Tool
So ziemlich jeder kennt wohl die Seite https://speedtest.net von Ookla®. Aber wusstet ihr, dass sich hier ein Command-Line-Tool namens "SPEEDTEST® CLI" versteckt? Dieses kann man schlicht per Skript auf Windows, Linux oder Mac einrichten und die Tests automatisieren 😁

3.0 Vorgehensweise
Ich beschreibe nun die Vorgehensweise auf Basis eines Windows Systems. Als Verzeichnis wird D:\Speedtest verwendet. Dies kann natürlich nach beleiben angepasst werden

3.1 Vorbereitung
3.2 Auswahl des Servers
Bei Speedtest.net stehen mehrere Server zur Verfügung. Bei schnellen Leitungen können diverse Server an ihr Leistungslimit stoßen oder ausgelastet sein. Hierzu sollte man ein paar Probemessungen durchführen und diese mit dem Speedtest des jeweiligen Internetproviders abgleichen.

Hierzu benötigen wir erstmal die Liste der nächstgelegenen Server. Diese können per Befehl abgefragt werden
Einfach die CMD öffnen und zu D:\Speedtest navigieren
  • cmd öffnen
  • "D:\" eingeben und Enter drücken
  • "cd speedtest" eingeben und Enter drücken
  • "speedtest.exe -L" eingeben und Enter drücken (das "L" muss groß sein!)
Man erhält nun eine Liste der nächstgelegenen Server:

Clipboard01.jpg


Das Ranking der Liste sagt aber nichts über die tatsächlichen Möglichkeiten der Server aus. Also testen wir ...
  • Eine neue Textdatei Namens "Test.txt" in D:\Speedtest erstellen
  • In die "Test.txt" folgenden Befehl schreiben "speedtest.exe -s ID"
  • ID ersetzt man durch die zuvor ermittelten IDs der Server. Das sieht dann z.B. so aus:
Code:
speedtest.exe -s 17392
speedtest.exe -s 21467
speedtest.exe -s 28624
speedtest.exe -s 28716
speedtest.exe -s 28676
speedtest.exe -s 30060
speedtest.exe -s 15431
speedtest.exe -s 6601
speedtest.exe -s 6670
speedtest.exe -s 8997
pause

  • das "pause" am Ende ist wichtig, sonst schließt sich das cmd-Fenster direkt nach den Tests
  • "Test.txt" in "Test.cmd" umbenennen
  • Zum Starten des Tests, einfach die Skript-Datei doppelt anklicken und warten bis diese durchgelaufen ist
  • Nun findet sich für jeden angegebenen Server ein Speedtest im Fenster
Clipboard02.jpg

Anhand dieser Werte wählt man dann den besten Server.

3.3. Speedtest automatisieren
So nun geht es ans eingemachte! Zunächst müssen wir wieder ein Skript schreiben.
  • Eine neue Textdatei mit dem Namen "Speedtest.txt" erstellen
  • Folgenden Code (ID entsprechend anpassen) einfügen und abspeichern:
Code:
D:
cd Speedtest
speedtest.exe -s ID -f csv>>Speedtest.log
  • "Speedtest.txt" in "Speedtest.cmd" umbenennen
  • Skript einmal per Doppelklick starten, warten bis sich das cmd-Fenster schließt
  • Wenn nun die Datei "Speedtest.log" existiert und sich in dieser Werte befinden, ist alles korrekt
Nun geht es an die Automatisierung:
  • Aufgabenplanung von Windows starten (einfach im Startmenü eintippen)
  • "Aufgabe Erstellen" anklicken
  • Folgende Werte einfügen und die Aufgabe anlegen
  • Clipboard04.jpg Clipboard05.jpg Clipboard09.jpgClipboard06.jpg
  • Als Tag bitte den nächsten Tag angeben. Wenn heute der 25.01. ist, dann den 26.01. 00:00 Uhr als Startdatum wählen
Ab dem angegebenen Datum startet der Speedtest nun alle 15 Minuten und schreibt das Ergebnis in die "Speedtest.log".
Falls nicht, gibt es irgendwo einen Fehler den es zu beseitigen gilt.

4. Auswertung
Die Auswertung kann sehr komfortabel in Excel vollzogen werden.
  • Der Header für die "Speedtest.log" lautet wie folgt und kann in die erste Zeile der Datei eingefügt werden:
    "server name","server id","latency","jitter","packet loss","download","upload","download bytes","upload bytes","share url"
  • Die "Speedtest.log" nun als Datenquelle in Excel hinzufügen
  • Die Daten sind nun als Tabelle in Excel verfügbar
  • Die Werte "Download" und "Upload" müssen für einen Wert in MBit/s mit 0,000008 multipliziert werden
    • Einfach jeweils eine weitere Spalte hinzufügen und diese berechnen lassen
  • Diagramm (Linien) anhand dieser Tabelle erstellen und die Daten-Bereiche, Achsen, usw. entsprechend anpassen
Das Ergebnis kann dann wie folgt aussehen:

Clipboard07.jpg


5. Bewertung
Bei meinem Verlauf sieht man ganz klar die Lastspitzen am Abend zwischen 17:00 bis 00:00 Uhr. Während Nachts die volle Bandbreite zur Verfügung steht. Die Leitung "erholt" sich von alleine. Somit liegt das Problem nicht an meinem Router oder Endgerät, sondern schlicht und einfach an der Anbindung des Verteilers oder der Kopfstelle beim Provider.

Enjoy 😄

p.s. für die Bequemlichkeit habt ihr hier alle Daten die ihr benötigt (inkl. Excel-Auswertung):

Update 2023:

Nach ein wenig ausprobieren und Gefummel und etwas Hilfe von @Enurian, habe ich nun eine Version mit "Zeitpunkten" gebaut. Der Code sieht nun wie folgt aus:

Code:
d:
cd Speedtest
echo | set /p= ""%date:~0,10% %time:~0,5%"," >>Speedtest.log
speedtest.exe --accept-gdpr -s 30906 -f csv>>Speedtest.log

Hierbei wird vor das Ergebnis von Speedtest.exe ein Zeitpunkt mit dem Format "TT.DD.JJJJ hh:ss" eingefügt und mit einem "," von den anderen Werte getrennt.

Die Datenverbindung zur Excel-Datei, die Zellen-Zuordnung und das Diagramm, müssen natürlich auch angepasst werden.

Der Bequemlichkeit halber, finden sich ein angepasster Satz an Daten in der hier angehängten "Speedtest_2023.7z". 😎

Enjoy!
 

Anhänge

  • Speedtest.7z
    647,3 KB · Aufrufe: 3.506
  • Speedtest_2023.7z
    709,1 KB · Aufrufe: 315
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: snark123, loomiii, kdbqlb und 122 andere
Coole Geschichte, ich habe mir damals ein Script gebastelt welches eine 100MB Testfile runterlädt und wieder hochlädt (eigener Rootserver).
 
  • Gefällt mir
Reaktionen: Sulik und gesperrter_User
Hayda Ministral schrieb:
Sehr schön geschrieben. Bitte aber noch den Titel abändern, so dass "unter Windows" drin vorkommt.
Wenn du mir verrätst wie das geht, gerne 😅

Red-John schrieb:
Coole Geschichte, ich habe mir damals ein Script gebastelt welches eine 100MB Testfile runterlädt und wieder hochlädt (eigener Rootserver).
Das hatte ich zunächst auch gemacht, nur leider unterlag das (warum auch immer) extremen Schwankungen und die Werte deckten sich nicht mit anderen Quellen. Darum habe ich nun diesen Weg gewählt. Schön ist, dass man direkt eine CSV-Ausgabe bekommt 🤩
 
Öh...mist, musste ich noch nie. Ich weiß nicht welches der vorgesehen Weg ist, aber so gehts auch nach Rom:
Solange Du nicht im Thread bist steht unten der Forumsmoderator. In diesem Fall wäre das @phil.
Mit dem Link kommst Du zu seinem Profil, wo auch die Möglichkeit besteht eine Unterhaltung zu beginnen.
 
sini schrieb:
Wenn du mir verrätst wie das geht, gerne 😅
Einfach deinen (ersten) Beitrag melden und um die Titeländerung bitten, die Mods machen das i.d.R. relativ flott.

sini schrieb:
Das hatte ich zunächst auch gemacht, nur leider unterlag das (warum auch immer) extremen Schwankungen und die Werte deckten sich nicht mit anderen Quellen. Darum habe ich nun diesen Weg gewählt. Schön ist, dass man direkt eine CSV-Ausgabe bekommt

Das stimmt, daher hab ich das dann auch wieder manuell ausgeführt und in eine Exceldatei geschubst.
 
Super Leserartikel, bekommt seinen verdienten Platz auf der Startseite!

Danke @burnout150 für den Hinweis!

Liebe Grüße
Sven
 
  • Gefällt mir
Reaktionen: ChrFr, Alexsson, c[A]rm[A] und 14 andere
Das ist ziemlich interessant. Allerdings hat mein Internetanbieter damals explizit eine Messung mit dem Tool bzw. der Webseite der Bundesnetzagentur verlangt. Kann also sein, dass auch andere speedtest nicht akzeptieren. Auch wenn es dafür eigentlich keinen Grund gibt.
 
  • Gefällt mir
Reaktionen: P3chv0gel und M4ttX
Schön geschrieben.
Um eine etwas bessere Auswertung zu bekommen wo auch die anderen Link-Parameter wie loss, delay betrachtet werden, könnte man Speedtest CLI z.B. durch iperf tauschen.
 
Hayda Ministral schrieb:
Sehr schön geschrieben. Bitte aber noch den Titel abändern, so dass "unter Windows" drin vorkommt.


Ich denke doch dass 99% der Linux Nutzer diese 3 Zeilen Kommando Zeile auch hinbekommen ;) mit crontab und entsprechender logfile sogar „einfacher“ als unter Windows.

Für die ubiquiti Nutzer im Forum: im unifi Controller kann man auch regelmäßige Speedtests durchführen lassen. Direkt auf der Firewall, somit ist das Ergebnis nicht einmal „falsch“ wenn ein weiteres Gerät in eigenen Haushalt am Abend die Leitung belastet (Netflix 4K Stream oder ein Steam Update)
Diesen Umstand sollte man nämlich berücksichtigen. (Zugegeben, wenn der Download jeden Abend zur gleichen Zeit einbricht liegt das Problem wahrscheinlich nicht in eigenen Netzwerk)

Edit:
Man sollte auch vorher prüfen, ob der eigene Internet Vertrag sowas „zulässt“. Im Sinne von einer Drosselung nach XX GB Traffic. Gibt es ja im Festnetz leider auch viel zu oft und genau diese Verträge sind solche, wo die Leitung oftmals überbucht ist und dann abends einbricht. O2 ist so ein Kandidat.
 
Guter Leserartikel...ich hätte da aber noch eine Ergänzung:

Der Speedtest des eigenen Netzbetreibers sollte bevorzugt werden.
Die Daten im Internet werden ja nicht von deinem eigenen Netzbetreiber direkt bis zum Ziel transportiert sondern wechseln von einem Netzbetreiber zum anderen bis sie schließlich am Ziel eintreffen.
Es kommt zwar relativ selten vor, dass der Übergabepunkt zwischen zwei Netzbetreibern überlastet ist aber die Wahrscheinlichkeit ist nicht vernachlässigbar gering.
Es ist mir selbst schon einige male so ergangen, dass ich mich über langsame Verbindungen zu Servern (z.B. Gameserver, Streaming, etc.) geärgert habe und durch unsere eher bescheidene Infrastruktur hier in Deutschland ist es durchaus verständlich den Fehler als erstes beim eigenen Netzbetreiber zu suchen.

Wenn man nun den Speedtest des eigenen Netzbetreibers verwendet und das Ergebnis ist nicht auffällig langsam liegt das Problem höchstwahrscheinlich irgendwo anders in der Übertragungsstrecke.

Vll. könntest du dies ja als Hinweis ergänzen ;)
 
Coole Idee, das merke ich mir für die Zukunft, frage bei Unitymedia aber erst einmal an, ob die das wegen nicht deren Speedtest akzeptieren würden, bevor ich das erstelle :)

Eine Sache würde ich noch hinzufügen: Dass man bei Windows darauf achtet, sodass es nicht in den Energiesparmodus geht, wenn das Skript über z.B. 24 Stunden laufen soll. Ich hatte ein Dejavu, in dem Sinne, dass ich früher bei Downlaods mal nachts den PC anlassen musste und natürlich nichts fertig war...Sondern der PC "geschlummert" hat ;)
 
Hat Vodafone auch einen eigenen Speedtest?
Wobei es beim LTE vermutlich egal ist, welchen Server man benutzt, da immer die Funkverbindung der Flaschenhals ist.
 
Hallo,

schöner Beitrag.

Bitte abändern, dass die Zip-Datei in den Ordner D:\Speedtest entpackt werden soll, nicht gespeichert :)

Edit:
sehe gerade, du meintest wohl die von dir hier eingestellte 7z-Datei. Ich ging von der ookla-speedtest-1.0.0-win64.zip aus, welche unter 3.1 verlinkt ist.
 
Zuletzt bearbeitet:
spcqike schrieb:
Ich denke doch dass 99% der Linux Nutzer diese 3 Zeilen Kommando Zeile auch hinbekommen ;) mit crontab und entsprechender logfile sogar „einfacher“ als unter Windows.
Das hatte ich mir auch gedacht. Geht ja eher um die prinzipiell Möglichkeit. Die Parameter für das Programm sollten die gleichen sein. Wer Linux nutzt, sollte dazu durchaus in der Lage sein 😅

Holylemon schrieb:
Die Daten im Internet werden ja nicht von deinem eigenen Netzbetreiber direkt bis zum Ziel transportiert sondern wechseln von einem Netzbetreiber zum anderen bis sie schließlich am Ziel eintreffen.
Das ist korrekt, deswegen hatte ich ja auch gesagt, dass man ein paar Probemessungen machen und mit dem Speedtest des jeweiligen Anbieters vergleichen soll. Mit der Auswahl des Servers kalibriert man dann quasi die Werte. Ich habe das immer mal wieder stichprobenartig überprüft und bei mir passt es. In meinem Fall geht es ja nicht um +- 10% ... 🙄

Delgado schrieb:
sehe gerade, du meintest wohl die von dir hier eingestellte 7z-Datei. Ich ging von der ookla-speedtest-1.0.0-win64.zip aus, welche unter 3.1 verlinkt ist.
Da hast du vollkommen Recht, die Archive (egal welches) sollten natürlich in den Ordner entpackt werden 😊
 
  • Gefällt mir
Reaktionen: Delgado
Super Sache...ich habe zwar inzwischen keine Probleme mehr mit dem Provider, aber in der alten Wohnung hat man deutlich gemerkt, wenn plötzlich alle ins Internet wollten.
 
  • Gefällt mir
Reaktionen: SVΞN
An sich eine sehr empfehlenswerte Anleitung, allerdings gibt es ein winziges Problem: Wer seinen Internetvertrag über den Rechtsweg (außerordentliche oder fristlose Kündigung) beenden möchte, wird mit Speedtests von Ookla nicht weit kommen, denn die werden schlicht nicht akzeptiert.

Deshalb hatte die Bundesnetzagentur ein Messsystem bereitgestellt. Diverse Provider bitten bei Störungen explizit um Messungen über breitbandmessung.de und nicht Speedtest by Ookla oder sonstwo.
 
  • Gefällt mir
Reaktionen: M4ttX
Sehe ich das richtig, dass hier kein Wort über laufende Verbindungen anderer Programme verloren wird?

Wenn der Test automatisiert läuft und man dann Abends Einbrüche sieht, während Sohnemann in Steam Updates lädt, der Laptop der Frau ein Windows-Update bezieht und im Wohnzimmer genetflixt wird, dann hat das eher nichts mit Router- oder Leitungsproblemen zu tun ...
 
spcqike schrieb:
Ich denke doch dass 99% der Linux Nutzer diese 3 Zeilen Kommando Zeile auch hinbekommen ;) mit crontab und entsprechender logfile sogar „einfacher“ als unter Windows.

Du möchtest gerne über die Fähigkeiten durchschnittlicher Linux Nutzer diskutieren? Da habe ich nichts dagegen, zumal ich selbst Linux benutze. Aber bitte sei so nett dafür einen eigenen Thread aufzumachen. Hier geht es um eine Anleitung für regelmäßige Speedtests unter Windows. Die Anleitung richtet sich ausschließlich Nutzer mit Windows als OS, die Nutzer jedes anderen OS (Cliffhanger: Es gibt noch andere OS als Linux und Windows) werden nicht bedient, die dort vorhandenen Möglichkeiten nicht erwähnt. (und nicht dass einer Denkt das sei ein Vorwurf - ist es nicht. Es ist lediglich die Erwähnung einer Tatsache)
 
  • Gefällt mir
Reaktionen: azereus
Zurück
Oben