Hola
Hice una GUI para iperf 2 en Powershell:
https://github.com/ili101/PPerf
Quiero agregar compatibilidad con iperf 3 pero iperf 3 no tiene una opción de salida analizable en tiempo real
iperf 2 tiene salida CSV
iperf 3 tiene salida JSON pero solo se actualiza al final
No creo que JSON pueda admitir actualizaciones en tiempo real debido a su estructura, probablemente la razón por la que lo está actualizando solo al final.
¿Puede agregar compatibilidad con CSV o algo con una funcionalidad similar?
Gracias
Me las arreglé para analizar la salida de texto.
cortando los datos por las palabras que comienzan la posición del índice en la línea [ID]
pero tiene un pequeño error de que algunos de los datos de las líneas a veces comienzan antes de la posición del encabezado
como el total y las líneas 5.01-5.01 en este ejemplo
-----------------------------------------------------------
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%)
Me pregunto si algunos de los campos de salida están justificados de una manera divertida. Es cierto que no he investigado esto en absoluto.
Si fuera a intentar analizar esta salida, podría intentar dividir la línea en "palabras" separadas por una cierta cantidad de espacios en blanco (en lugar de por posición en la línea). Piense en los comandos de división de Perl o Python, eso es lo que estoy imaginando.
Romper la línea de datos por los espacios será difícil porque luego necesita conectar las "palabras" al encabezado respetado y no se combinarán.
"0.00-1.01 seg" se dividirá en 2 palabras, pero en realidad es un dato de celda que es "Intervalo".
frenar los datos a las celdas por la posición de la línea del encabezado (luego trabajar en la cadena de celdas) es más fácil
No es solo un problema de lectura de la máquina, no se ve bien que algunos de los datos estén fuera de la celda de la "tabla de imágenes" y tampoco estén alineados con las otras líneas.
También me gustaría ver esta función. Entiendo que la estructura JSON no se puede ensamblar hasta el final de la prueba, por lo que tal vez tenga un objeto JSON mínimo para cada intervalo de informe. O recupere el soporte csv para una fácil compatibilidad con versiones anteriores.
Comentario más útil
También me gustaría ver esta función. Entiendo que la estructura JSON no se puede ensamblar hasta el final de la prueba, por lo que tal vez tenga un objeto JSON mínimo para cada intervalo de informe. O recupere el soporte csv para una fácil compatibilidad con versiones anteriores.