Speedtest

Aller à la navigation Aller à la recherche

Speedtest est un utilitaire qui fonctionne avec PowerShell et qui permet d'effectuer des tests de débit réseau.

Généralité

Cet outil peut être utilisé de façon autonome ou associé à un script PowerShell.

Source

Exécutable

Site :

Fichier téléchargé :

  • ookla-speedtest-1.2.0-win64.zip

Cette archive contient les éléments suivants :

  • speedtest.exe : programme principal
  • speedtest.md : mode d'emploi

Script PowerShell

Site :

PowerShell

Pour effectuer des tests sur une durée significative, voici un script PowerShell.

<#
Nom           : PSHRES030
Description   : mesure de la qualité d'une connexion internet (débit, latence, perte de paquet...)
Usage         : exercice en PowerShell
Particularité : néant
Auteur        : Routeur4g.fr, fylip22
Lien externe  : https://routeur4g.fr/discussions/discussion/5026/tuto-script-powershell-monitoring-de-debits-speedtest-cli
Version       : 1.1
Révisions     : 
                - 1.0 (01/08/2021) : Routeur4g.fr, création du script
                - 1.1 (23/08/2024) : fylip22, modification du script
#>

$DateLog = Get-Date -Format "dd/MM/yyyy HH:mm K"
$datePrefix = Get-Date -Format "yyyyMM_"
$DownloadLocation = "C:\Support\Speedtest"
$SpeedTestTxt = $DownloadLocation + "\" + $datePrefix + "speedtest_history.txt"

$SpeedtestResults = &"$DownloadLocation\speedtest.exe" --format=json --accept-license --accept-gdpr
$SpeedtestResults = $SpeedtestResults | ConvertFrom-Json

[PSCustomObject]$SpeedtestObj = @{
    downloadspeed = [math]::Round($SpeedtestResults.download.bandwidth / 1000000 * 8, 2)
    uploadspeed   = [math]::Round($SpeedtestResults.upload.bandwidth / 1000000 * 8, 2)
    packetloss    = [math]::Round($SpeedtestResults.packetLoss)
    isp           = $SpeedtestResults.isp
    ExternalIP    = $SpeedtestResults.interface.externalIp
    InternalIP    = $SpeedtestResults.interface.internalIp
    UsedServer    = $SpeedtestResults.server.host
    ResultsURL    = $SpeedtestResults.result.url
    Jitter        = [math]::Round($SpeedtestResults.ping.jitter)
    Latency       = [math]::Round($SpeedtestResults.ping.latency)
}

$PublicIP                      = $SpeedtestObj.ExternalIP
$SpeedTestResultDownload       = $SpeedtestObj.downloadspeed
$SpeedTestResultDownload       = "{0:#,##0.00;(#,##0.00);ERREUR}" -f $SpeedTestResultDownload
$SpeedTestResultUpload         = $SpeedtestObj.uploadspeed
$SpeedTestResultUpload         = "{0:#,##0.00;(#,##0.00);ERREUR}" -f $SpeedTestResultUpload
$SpeedTestResultLatency        = $SpeedtestObj.Latency
$SpeedTestResultLossPk         = ($SpeedtestObj.packetloss).tostring("P")
$SpeedTestResultISP            = $SpeedtestObj.isp
$SpeedTestResultServer         = $SpeedtestObj.UsedServer
$SpeedTestResultServerId       = $SpeedtestResults.server.id
$SpeedTestResultServerId1      = "{0:00000}" -f $SpeedTestResultServerId
$SpeedTestResultServerLocation = $SpeedtestResults.server.location

"$DateLog`t   DL: $SpeedTestResultDownload`tMbps   UL: $SpeedTestResultUpload`tMbps   PING: $SpeedTestResultLatency`tms   LOSS: $SpeedTestResultLossPk   ISP: $PublicIP ($SpeedTestResultISP)   SERVER: $SpeedTestResultServerLocation ; id = $SpeedTestResultServerId1 ($SpeedTestResultServer)" | Out-File -Append -Encoding ascii -FilePath $SpeedTestTxt

Résultat

Le résultat est de la forme suivante :

...
23/08/2024 17:10 +02:00	   DL: 1,43	Mbps   UL: 0,41	Mbps   PING: 21	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:15 +02:00	   DL: 1,44	Mbps   UL: 0,92	Mbps   PING: 21	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:20 +02:00	   DL: 1,24	Mbps   UL: 0,39	Mbps   PING: 20	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:25 +02:00	   DL: ERREUR	Mbps   UL: ERREUR	Mbps   PING: 0	ms   LOSS: 0,00 %   ISP:  ()   SERVER:  ; id =  ()
23/08/2024 17:30 +02:00	   DL: 1,14	Mbps   UL: 0,36	Mbps   PING: 23	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:35 +02:00	   DL: 1,20	Mbps   UL: 0,24	Mbps   PING: 22	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:40 +02:00	   DL: 1,22	Mbps   UL: 0,28	Mbps   PING: 23	ms   LOSS: 0,00 %   ISP: 2.10.68.55 (Orange)   SERVER: Rennes ; id = 58423 (rennes3.d2m.c2d.liveservices.fr)
23/08/2024 17:45 +02:00	   DL: ERREUR	Mbps   UL: ERREUR	Mbps   PING: 0	ms   LOSS: 0,00 %   ISP:  ()   SERVER:  ; id =  ()
...

Voir aussi

  •