salut
J'ai créé une interface graphique pour iperf 2 dans Powershell:
https://github.com/ili101/PPerf
Je veux ajouter le support d'iperf 3 mais iperf 3 n'a pas d'option de sortie en temps réel analysable
iperf 2 a une sortie CSV
iperf 3 a une sortie JSON mais ce n'est que des mises à jour à la fin
Je ne pense pas que JSON puisse prendre en charge les mises à jour en temps réel en raison de sa structure, probablement pourquoi vous ne le mettez à jour qu'à la fin.
Pouvez-vous ajouter le support CSV ou quelque chose avec des fonctionnalités similaires?
Merci
J'ai réussi à analyser la sortie de texte
en coupant les données par les mots à partir de la position d'index sur la ligne [ID]
mais vous avez un petit bogue que certaines des données de lignes commencent parfois avant la position de l'en-tête
comme le total et les lignes 5,01-5,01 dans cet exemple
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 127.0.0.1, port 63781
[ 6] local 127.0.0.1 port 5201 connected to 127.0.0.1 port 64003
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 6] 0.00-1.01 sec 120 KBytes 0.98 Mbits/sec 0.136 ms 0/15 (0%)
[ 6] 1.01-2.01 sec 128 KBytes 1.05 Mbits/sec 0.137 ms 0/16 (0%)
[ 6] 2.01-3.01 sec 128 KBytes 1.05 Mbits/sec 0.169 ms 0/16 (0%)
[ 6] 3.01-4.01 sec 128 KBytes 1.05 Mbits/sec 0.126 ms 0/16 (0%)
[ 6] 4.01-5.01 sec 128 KBytes 1.04 Mbits/sec 0.113 ms 0/16 (0%)
[ 6] 5.01-5.01 sec 0.00 Bytes 0.00 Mbits/sec 0.113 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 6] 0.00-5.01 sec 0.00 Bytes 0.00 Mbits/sec 0.113 ms 0/79 (0%)
Je me demande si certains des champs de sortie sont justifiés de manière amusante. Certes, je n'ai pas du tout examiné cela.
Si j'allais essayer d'analyser cette sortie, je pourrais essayer de diviser la ligne en "mots" séparés par une certaine quantité d'espaces (plutôt que par position sur la ligne). Pensez aux commandes de fractionnement Perl ou Python, c'est ce que j'envisage.
Briser la ligne de données par les espaces sera difficile car vous devez ensuite connecter les "mots" à l'en-tête respecté et ils ne seront pas machinés.
"0.00-1.01 sec" sera fractionné jusqu'à 2 mots mais c'est en fait une donnée de cellule qui est "Intervalle".
freiner les données dans les cellules par la position de la ligne d'en-tête (puis travailler sur la chaîne de cellules) est plus facile
Ce n'est pas seulement un problème de lecture automatique, mais il ne semble pas bon que certaines des données soient hors de la cellule "table d'imagerie" et ne s'alignent pas avec les autres lignes
J'aimerais aussi voir cette fonctionnalité. Je comprends que la structure JSON ne peut pas être assemblée avant la fin du test, alors peut-être avoir un objet JSON minimal pour chaque intervalle de rapport à la place? Ou ramenez le support csv pour une compatibilité descendante facile.
Commentaire le plus utile
J'aimerais aussi voir cette fonctionnalité. Je comprends que la structure JSON ne peut pas être assemblée avant la fin du test, alors peut-être avoir un objet JSON minimal pour chaque intervalle de rapport à la place? Ou ramenez le support csv pour une compatibilité descendante facile.