Oi
Eu fiz uma GUI para iperf 2 no Powershell:
https://github.com/ili101/PPerf
Quero adicionar suporte para iperf 3, mas iperf 3 não tem uma opção de saída analisável em tempo real
iperf 2 tem saída CSV
iperf 3 tem saída JSON, mas é apenas atualizações no final
Eu não acho que JSON pode suportar atualizações em tempo real por causa de sua estrutura, provavelmente porque você está atualizando apenas no final.
Você pode adicionar suporte CSV ou algo com funcionalidade semelhante?
Obrigada
Eu consegui analisar a saída de texto
cortando os dados pelas palavras, começando posição de índice na linha [ID]
mas você tem um pequeno bug que algumas das linhas de dados às vezes começam antes da posição do cabeçalho
como o total e as linhas 5,01-5,01 neste exemplo
-----------------------------------------------------------
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%)
Eu me pergunto se alguns dos campos de saída são justificados de forma engraçada. Admito que não investiguei nada sobre isso.
Se eu fosse tentar analisar esta saída, poderia tentar, em vez disso, quebrar a linha em "palavras" separadas por uma quantidade de espaço em branco (em vez de pela posição na linha). Pense nos comandos de divisão Perl ou Python, é isso que estou imaginando.
Quebrar a linha de dados pelos espaços será difícil porque você precisará conectar as "palavras" ao cabeçalho respeitado e elas não serão quebradas.
"0,00-1,01 seg" será dividido em 2 palavras, mas na verdade são os dados de uma célula que é "Intervalo".
frear os dados para células pela posição da linha de cabeçalho (em seguida, trabalhar na sequência de células) é mais fácil
Não é apenas um problema de leitura da máquina, não parece bom que alguns dos dados estejam fora da célula da "tabela de imagens" e também não se alinhem com as outras linhas
Eu também gostaria de ver esse recurso. Eu entendo que a estrutura JSON não pode ser montada até o final do teste, então talvez você tenha um objeto JSON mínimo para cada intervalo de relatório? Ou traga de volta o suporte csv para facilitar a compatibilidade com versões anteriores.
Comentários muito úteis
Eu também gostaria de ver esse recurso. Eu entendo que a estrutura JSON não pode ser montada até o final do teste, então talvez você tenha um objeto JSON mínimo para cada intervalo de relatório? Ou traga de volta o suporte csv para facilitar a compatibilidade com versões anteriores.