« Speedtest » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « '''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 : * https://www.speedtest.net/apps/cli Fichier téléchargé : * <code>ookla-speedtest-1.2.0-win64.zip</code> Cette archive contient les éléments suivants : * <code>speedtest.exe</code> : progr... ») |
m (→PowerShell) |
||
| Ligne 28 : | Ligne 28 : | ||
Description : mesure de la qualité d'une connexion internet (débit, latence, perte de paquet...) | Description : mesure de la qualité d'une connexion internet (débit, latence, perte de paquet...) | ||
Usage : exercice en PowerShell | Usage : exercice en PowerShell | ||
Particularité : | Particularité : disposer de l'exécutable "speedtest.exe" dans le dossier indiqué | ||
Auteur : Routeur4g.fr, fylip22 | Auteur : Routeur4g.fr, fylip22 | ||
Lien externe : https://routeur4g.fr/discussions/discussion/5026/tuto-script-powershell-monitoring-de-debits-speedtest-cli | Lien externe : 1.- https://routeur4g.fr/discussions/discussion/5026/tuto-script-powershell-monitoring-de-debits-speedtest-cli | ||
2.- https://www.it-connect.fr/windows-test-de-debit-internet-en-ligne-de-commande-powershell/ | |||
Version : 1.1 | Version : 1.1 | ||
Révisions : | Révisions : | ||
| Ligne 37 : | Ligne 38 : | ||
#> | #> | ||
$ | $dateLog = Get-Date -Format "dd/MM/yyyy HH:mm K" | ||
$datePrefix = Get-Date -Format "yyyyMM_" | $datePrefix = Get-Date -Format "yyyyMM_" | ||
## chemin contenant l'exécutable "speedtest.exe" et de destination du fichier contenant le résultat de la requête | |||
$DownloadLocation = "C:\Support\Speedtest" | $DownloadLocation = "C:\Support\Speedtest" | ||
$SpeedTestTxt = $DownloadLocation + "\" + $datePrefix + "speedtest_history.txt" | $SpeedTestTxt = $DownloadLocation + "\" + $datePrefix + "speedtest_history.txt" | ||
$SpeedtestResults = & "$($DownloadLocation)\speedtest.exe" --format=json --accept-license --accept-gdpr | |||
$SpeedtestResults = &"$DownloadLocation\speedtest.exe" --format=json --accept-license --accept-gdpr | |||
$SpeedtestResults = $SpeedtestResults | ConvertFrom-Json | $SpeedtestResults = $SpeedtestResults | ConvertFrom-Json | ||
| Ligne 59 : | Ligne 60 : | ||
$PublicIP = $SpeedtestObj.ExternalIP | $PublicIP = $SpeedtestObj.ExternalIP | ||
$SpeedTestResultDownload = "{0:0.00;;ERREUR}" -f $SpeedtestObj.downloadspeed | |||
$SpeedTestResultDownload = "{0: | $SpeedTestResultUpload = "{0:0.00;;ERREUR}" -f $SpeedtestObj.uploadspeed | ||
$SpeedTestResultLatency = "{0:00;;ERREUR}" -f $SpeedtestObj.Latency | |||
$SpeedTestResultUpload = "{0: | |||
$SpeedTestResultLatency = $SpeedtestObj.Latency | |||
$SpeedTestResultLossPk = ($SpeedtestObj.packetloss).tostring("P") | $SpeedTestResultLossPk = ($SpeedtestObj.packetloss).tostring("P") | ||
$SpeedTestResultISP = $SpeedtestObj.isp | $SpeedTestResultISP = $SpeedtestObj.isp | ||
$SpeedTestResultServer = $SpeedtestObj.UsedServer | $SpeedTestResultServer = $SpeedtestObj.UsedServer | ||
$SpeedTestResultServerId | $SpeedTestResultServerId = "{0:00000}" -f $SpeedtestResults.server.id | ||
$SpeedTestResultServerLocation = $SpeedtestResults.server.location | $SpeedTestResultServerLocation = $SpeedtestResults.server.location | ||
"$ | ## ligne avec séparateur barre verticale et tabulation | ||
"$dateLog | DL: $SpeedTestResultDownload`tMbps | UL: $SpeedTestResultUpload`tMbps | PING: $SpeedTestResultLatency`tms | LOSS: $SpeedTestResultLossPk | ISP: $PublicIP ($SpeedTestResultISP) | SERVER: $SpeedTestResultServerLocation | id = $SpeedTestResultServerId ($SpeedTestResultServer)" | Out-File -Append -Encoding ascii -FilePath $SpeedTestTxt | |||
</source> | </source> | ||
| Ligne 78 : | Ligne 77 : | ||
<small><pre> | <small><pre> | ||
... | ... | ||
23/08/2024 17:10 +02:00 | 23/08/2024 17:10 +02:00 | DL: 123,43 Mbps | UL: 52,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 | 23/08/2024 17:15 +02:00 | DL: 142,44 Mbps | UL: 43,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 | 23/08/2024 17:20 +02:00 | DL: 153,24 Mbps | UL: 56,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:30 +02:00 | DL: 153,14 Mbps | UL: 58,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:30 +02:00 | 23/08/2024 17:35 +02:00 | DL: 145,20 Mbps | UL: 28,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:35 +02:00 | 23/08/2024 17:40 +02:00 | DL: 125,22 Mbps | UL: 32,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:40 +02:00 | |||
... | ... | ||
</pre></small> | </pre></small> | ||
Dernière version du 21 mai 2025 à 15:43
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 principalspeedtest.md: mode d'emploi
Script PowerShell
Site :
- https://routeur4g.fr
- https://routeur4g.fr/discussions/discussion/5026/tuto-script-powershell-monitoring-de-debits-speedtest-cli
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é : disposer de l'exécutable "speedtest.exe" dans le dossier indiqué
Auteur : Routeur4g.fr, fylip22
Lien externe : 1.- https://routeur4g.fr/discussions/discussion/5026/tuto-script-powershell-monitoring-de-debits-speedtest-cli
2.- https://www.it-connect.fr/windows-test-de-debit-internet-en-ligne-de-commande-powershell/
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_"
## chemin contenant l'exécutable "speedtest.exe" et de destination du fichier contenant le résultat de la requête
$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 = "{0:0.00;;ERREUR}" -f $SpeedtestObj.downloadspeed
$SpeedTestResultUpload = "{0:0.00;;ERREUR}" -f $SpeedtestObj.uploadspeed
$SpeedTestResultLatency = "{0:00;;ERREUR}" -f $SpeedtestObj.Latency
$SpeedTestResultLossPk = ($SpeedtestObj.packetloss).tostring("P")
$SpeedTestResultISP = $SpeedtestObj.isp
$SpeedTestResultServer = $SpeedtestObj.UsedServer
$SpeedTestResultServerId = "{0:00000}" -f $SpeedtestResults.server.id
$SpeedTestResultServerLocation = $SpeedtestResults.server.location
## ligne avec séparateur barre verticale et tabulation
"$dateLog | DL: $SpeedTestResultDownload`tMbps | UL: $SpeedTestResultUpload`tMbps | PING: $SpeedTestResultLatency`tms | LOSS: $SpeedTestResultLossPk | ISP: $PublicIP ($SpeedTestResultISP) | SERVER: $SpeedTestResultServerLocation | id = $SpeedTestResultServerId ($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: 123,43 Mbps | UL: 52,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: 142,44 Mbps | UL: 43,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: 153,24 Mbps | UL: 56,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:30 +02:00 | DL: 153,14 Mbps | UL: 58,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: 145,20 Mbps | UL: 28,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: 125,22 Mbps | UL: 32,28 Mbps | PING: 23 ms | LOSS: 0,00 % | ISP: 2.10.68.55 (Orange) | SERVER: Rennes | id : 58423 (rennes3.d2m.c2d.liveservices.fr) ...