On 3/26/2020 10:45 AM, Toke Høiland-Jørgensen wrote:
Tim Higgins <tim@smallnetbuilder.com> writes:

Apologies that some discussion with Toke and Dave took place outside this
list. At Dave's request, I'm bringing the conversation back here so that
others can benefit/contribute.

I'm exploring using flent for OFDMA performance testing. I'm using Win10
/AX200 STAs because the Win10 driver is the only one whose peformance I trust,
in both bands and both directions.

I have a python 3 script that associates each Win10 STA, starts netserver on
it and runs a short netperf TCP_STREAM test to check that the STA is reachable
and that netserver is running. I have to do this because flent provides no
indication (other than hanging) when it's not really running.

My problem is starting flent via the python script. Using the following,
works:
        p = subprocess.Popen(command, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
        (output, err) = p.communicate()
        print('\n>>> output : ', output)
        print('\n>>> err : ', err)

But I get no output until flent finishes. I know flent prints the following
when it starts, if I start it in another terminal window:

/snb_devel$ flent rtt_fair_var -p all_scaled -l 10 -H 192.168.1.3 -H
192.168.1.15 -t "2.4 GHz Down NETGEAR RAX15 AX200Pico AX200mini OFDMA on" -o
"snb_testresults/2020-03-25_16-06_netgear_rax15/2020-03-25_16-06_OFDMA_Traffic_w_ping/2020-03-25_16-06_netgear_rax15_snbofdma_tnp_24g_dn.png"

Started Flent 1.2.2 using Python 3.6.9.
Starting rtt_fair_var test. Expected run time: 20 seconds.

I'll also get the above, plus the "Data file written..." result when I print
output as above, but not until flent finishes.

How can I get the two start lines returned to the python script when flent
starts,  then the final data file written line when it finishes?
Rather than running Flent in this way, might I suggest you take a look
at the batch facility of Flent itself? That will allow you to specify a
list of tests to run, pre/post scripts before each test run, and easy
test repetition. It's there exactly for the purpose you are describing.

There's a commented example batch file here:

https://github.com/tohojo/flent/blob/master/batchfile.example

And here's the file used for the example in the paper describing Flent:

https://github.com/tohojo/flent/blob/master/flent-paper.batch

-Toke
Thanks for the suggestion, Toke. But I have to work within the structure of octoScope's python scripting API. At any rate, I was able to figure it out.