From eca5e74ab1d25bb446bc79a364ab9147f12555f1 Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Wed, 15 Apr 2020 16:14:59 -0700 Subject: [PATCH 1/3] scripts: Improve gui automation scripts. --- LANforge/Utils.pm | 6 + gui/README.txt | 48 +++++ .../AP-Auto-ap-auto-32-64-dual.txt | 171 +++++++++++++++++ lf_gui_cmd.pl | 47 +++++ lf_testmod.pl | 178 ++++++++++++++++++ 5 files changed, 450 insertions(+) create mode 100644 gui/README.txt create mode 100644 gui/test_configs/AP-Auto-ap-auto-32-64-dual.txt create mode 100755 lf_testmod.pl diff --git a/LANforge/Utils.pm b/LANforge/Utils.pm index 36973d99..f1ff28a2 100644 --- a/LANforge/Utils.pm +++ b/LANforge/Utils.pm @@ -86,6 +86,8 @@ sub telnet { sub doCmd { my $self = shift; my $cmd = shift; + my $nowait = shift; + #print "CMD[[$cmd]]\n"; my $t = ${$self->{telnet}}; if ( !$self->cli_send_silent() || (defined $ENV{'LOG_CLI'} && $ENV{'LOG_CLI'} ne "")) { @@ -93,6 +95,10 @@ sub doCmd { } $t->print($cmd); + if (defined($nowait) && ($nowait == 1)) { + return ""; + } + my @rslt = $t->waitfor('/ >>RSLT:(.*)/'); if ( !$self->cli_rcv_silent() ) { print "**************\n@rslt\n................\n\n"; diff --git a/gui/README.txt b/gui/README.txt new file mode 100644 index 00000000..386db384 --- /dev/null +++ b/gui/README.txt @@ -0,0 +1,48 @@ + +Notes on writing GUI automated tests (such as AP-Auto, TR-398, Dataplane, Capacity test, etc) + +AP-Auto: + +In the GUI, configure the AP-Auto test as wished, and save the test config on the +Advanced Configuration page. In this example, I use the name: ap-auto-32-64-dual + +In LANforge CLI, you can dump the saved configuration: + +default@btbits>> show_text_blob Plugin-Settings AP-Auto-ap-auto-32-64-dual +TEXT-BLOB:Plugin-Settings.AP-Auto-ap-auto-32-64-dual::[BLANK] +show_events: 1 +show_log: 1 +port_sorting: 0 +notes0: Chamber to Chamber test. +bg: 0xE0ECF8 +test_rig: TR-398 test bed +.... + +Save this text to a file for later use: AP-Auto-ap-auto-32-64-dual.txt + +You can also use the ../lf_testmod.pl script to do this: +# The head and tail stuff trims leading and trailing lines, respectively. +../lf_testmod.pl --mgr 192.168.100.156 --action show --test_name AP-Auto-ap-auto-32-64-dual|tail -n +2 | head -n -2 > test_configs/mytest.txt + +To load a test file: + +lf_testmod.pl --mgr 192.168.100.156 --action set --test_name AP-Auto-ben --file test_configs/mytest.txt + + + +### +Once test cases have been loaded, you can tell the GUI to run tests for you, potentially modifying the +test configuration through the GUI. + +First, tell the GUI to read the latest test config from the server. + +../lf_gui_cmd.pl --manager localhost --port 3990 --cmd "cli show_text_blob" + + +Now, tell the GUI to run a test with the new config. +# Note that the --tconfig option does not have the "AP-Auto-" prepended to it, that is automatically +# done by the GUI in order to make sure each test has its own namespace. +../lf_gui_cmd.pl --manager localhost --port 3990 --ttype "AP-Auto" --tname ap-auto-ben --tconfig ben --rpt_dest /tmp/lf_reports/ + + +Check /tmp/lf_reports for the report files. diff --git a/gui/test_configs/AP-Auto-ap-auto-32-64-dual.txt b/gui/test_configs/AP-Auto-ap-auto-32-64-dual.txt new file mode 100644 index 00000000..5de0fa89 --- /dev/null +++ b/gui/test_configs/AP-Auto-ap-auto-32-64-dual.txt @@ -0,0 +1,171 @@ +show_events: 1 +show_log: 1 +port_sorting: 0 +notes0: Chamber to Chamber test. +bg: 0xE0ECF8 +test_rig: TR-398 test bed +show_scan: 1 +auto_helper: 1 +skip_2: 1 +skip_5: 1 +dut5-0: TR398-DUT NETGEAR68-5G +dut2-0: TR398-DUT NETGEAR68 +dut5-1: NA +dut2-1: NA +dut5-2: NA +dut2-2: NA +spatial_streams: AUTO +bandw_options: AUTO +modes: Auto +upstream_port: 1.1.1 eth1 +operator: Ben Greear @ Candela Technologies +mconn: 1 +tos: 0 +vid_buf: 500000 +vid_speed: 700000 +reset_stall_thresh_udp_dl: 100000 +reset_stall_thresh_udp_ul: 100000 +reset_stall_thresh_tcp_dl: 100000 +reset_stall_thresh_tcp_ul: 100000 +reset_stall_thresh_l4: 100000 +reset_stall_thresh_voip: 0 +stab_udp_dl_min: 500000 +stab_udp_dl_max: 1544000 +stab_udp_ul_min: 500000 +stab_udp_ul_max: 1544000 +stab_tcp_dl_min: 500000 +stab_tcp_dl_max: 1544000 +stab_tcp_ul_min: 500000 +stab_tcp_ul_max: 1544000 +dl_speed: 85% +ul_speed: 85% +max_stations_2: 32 +max_stations_5: 64 +max_stations_dual: 64 +lt_sta: 2 +voip_calls: 10 +lt_dur: 120 +reset_dur: 300 +lt_gi: 30 +dur20: 20 +hunt_retries: 1 +cap_dl: 1 +cap_ul: 1 +cap_use_pkt_sizes: 0 +stability_reset_radios: 0 +pkt_loss_thresh: 10000 +frame_sizes: 200, 512, 1024, MTU +capacities: 1, 10, 32, 64, 128 +pf_text0: # modes: /a, /an-20 4x4, /an-40 4x4, /b, /bg, /bgn-20, /anAC-20,40,80 +pf_text1: # stations: 1, 10, 20, 50, ... +pf_text2: # Non-specified and fields set to "*" means match all. +pf_text3: # For a/b/g modes, Auto-BW == 20, Auto-NSS == 1 +pf_text4: # For /n modes, Auto-BW == 40, Auto-NSS == 4 +pf_text5: # For /ac and /ax modes, Auto-BW == 80, Auto-NSS == 4 +pf_text6: +pf_text7: # /a mode +pf_text8: 5 * 64 2Mbps mode=802.11a sta=1 +pf_text9: 5 * 1370 25Mbps mode=802.11a sta=1 +pf_text10: 5 * MTU 26Mbps mode=802.11a sta=1 +pf_text11: +pf_text12: 5 * 64 50Mbps mode=802.11an sta=1 bw=20 nss=4 +pf_text13: 5 * 1370 245Mbps mode=802.11an sta=1 bw=20 nss=4 +pf_text14: 5 * MTU 245Mbps mode=802.11an sta=1 bw=20 nss=4 +pf_text15: +pf_text16: 5 * 64 50Mbps mode=802.11an sta=1 bw=40 nss=4 +pf_text17: 5 * 1370 455Mbps mode=802.11an sta=1 bw=40 nss=4 +pf_text18: 5 * MTU 456Mbps mode=802.11an sta=1 bw=40 nss=4 +pf_text19: +pf_text20: # For any amount of /b stations +pf_text21: 2.4 * 64 1Mbps mode=802.11b sta=* +pf_text22: 2.4 * 1370 7Mbps mode=802.11b sta=* +pf_text23: 2.4 * MTU 7Mbps mode=802.11b sta=* +pf_text24: +pf_text25: # For any amount of /bg stations +pf_text26: 2.4 * 64 2Mbps mode=802.11bg sta=* +pf_text27: 2.4 * 1370 21Mbps mode=802.11bg sta=* +pf_text28: 2.4 * MTU 22Mbps mode=802.11bg sta=* +pf_text29: +pf_text30: # For /bgn 20Mhz stations. +pf_text31: 2.4 * 64 50Mbps mode=802.11bgn sta=1 bw=20 nss=4 +pf_text32: 2.4 * 1370 240Mbps mode=802.11bgn sta=1 bw=20 nss=4 +pf_text33: 2.4 * MTU 241Mbps mode=802.11bgn sta=1 bw=20 nss=4 +pf_text34: +pf_text35: 2.4 * 64 50Mbps mode=802.11bgn sta=10 bw=20 nss=4 +pf_text36: 2.4 * 1370 240Mbps mode=802.11bgn sta=10 bw=20 nss=4 +pf_text37: 2.4 * MTU 241Mbps mode=802.11bgn sta=10 bw=20 nss=4 +pf_text38: +pf_text39: 2.4 * 64 50Mbps mode=802.11bgn sta=50 bw=20 nss=4 +pf_text40: 2.4 * 1370 240Mbps mode=802.11bgn sta=50 bw=20 nss=4 +pf_text41: 2.4 * MTU 245Mbps mode=802.11bgn sta=50 bw=20 nss=4 +pf_text42: +pf_text43: 2.4 * 64 50Mbps mode=802.11bgn sta=100 bw=20 nss=4 +pf_text44: 2.4 * 1370 235Mbps mode=802.11bgn sta=100 bw=20 nss=4 +pf_text45: 2.4 * MTU 245Mbps mode=802.11bgn sta=100 bw=20 nss=4 +pf_text46: +pf_text47: 2.4 * 64 50Mbps mode=802.11bgn sta=200 bw=20 nss=4 +pf_text48: 2.4 * 1370 230Mbps mode=802.11bgn sta=200 bw=20 nss=4 +pf_text49: 2.4 * MTU 235Mbps mode=802.11bgn sta=200 bw=20 nss=4 +pf_text50: +pf_text51: # 40Mhz /n on 2.4, same values for all number of stations currently. +pf_text52: 2.4 * 64 50Mbps mode=802.11bgn sta=* bw=40 nss=4 +pf_text53: 2.4 * 1370 280Mbps mode=802.11bgn sta=* bw=40 nss=4 +pf_text54: 2.4 * MTU 281Mbps mode=802.11bgn sta=* bw=40 nss=4 +pf_text55: +pf_text56: # For /an-AC 20Mhz stations. +pf_text57: 5 * 64 50Mbps mode=802.11an-AC sta=1 bw=20 nss=4 +pf_text58: 5 * 1370 300Mbps mode=802.11an-AC sta=1 bw=20 nss=4 +pf_text59: 5 * MTU 305Mbps mode=802.11an-AC sta=1 bw=20 nss=4 +pf_text60: +pf_text61: # For /an-AC 40Mhz stations +pf_text62: 5 * 64 50Mbps mode=802.11an-AC sta=1 bw=40 nss=4 +pf_text63: 5 * 1370 615Mbps mode=802.11an-AC sta=1 bw=40 nss=4 +pf_text64: 5 * MTU 630Mbps mode=802.11an-AC sta=1 bw=40 nss=4 +pf_text65: +pf_text66: # For /an-AC 80Mhz stations. +pf_text67: 5 DL 64 50Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text68: 5 DL 1370 1300Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text69: 5 DL MTU 1300Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text70: 5 UL 64 50Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text71: 5 UL 1370 1100Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text72: 5 UL MTU 1100Mbps mode=802.11an-AC sta=1 bw=80 nss=4 +pf_text73: +pf_text74: 5 DL 64 50Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text75: 5 DL 1370 1300Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text76: 5 DL MTU 1300Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text77: 5 UL 64 50Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text78: 5 UL 1370 1200Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text79: 5 UL MTU 1200Mbps mode=802.11an-AC sta=10 bw=80 nss=4 +pf_text80: +pf_text81: 5 * 64 50Mbps mode=802.11an-AC sta=50 bw=80 nss=4 +pf_text82: 5 * 1370 1200Mbps mode=802.11an-AC sta=50 bw=80 nss=4 +pf_text83: 5 * MTU 1200Mbps mode=802.11an-AC sta=50 bw=80 nss=4 +pf_text84: +pf_text85: 5 * 64 50Mbps mode=802.11an-AC sta=100 bw=80 nss=4 +pf_text86: 5 * 1370 1100Mbps mode=802.11an-AC sta=100 bw=80 nss=4 +pf_text87: 5 * MTU 1100Mbps mode=802.11an-AC sta=100 bw=80 nss=4 +pf_text88: +pf_text89: # Auto (full capabilities) entries, for tput test, DUT is wave-1 3x3/2x2 +pf_text90: 2.4 * 64 50Mbps mode=Auto sta=* bw=Auto nss=Auto +pf_text91: 2.4 * 1370 280Mbps mode=Auto sta=* bw=Auto nss=Auto +pf_text92: 2.4 * MTU 282Mbps mode=Auto sta=* bw=Auto nss=Auto +pf_text93: +pf_text94: 5 * 64 50Mbps mode=Auto sta=* bw=Auto nss=Auto +pf_text95: 5 * 1370 650Mbps mode=Auto sta=* bw=Auto nss=Auto +pf_text96: 5 * MTU 650Mbps mode=Auto sta=* bw=Auto nss=Auto +radio2-0: 1.1.8 wiphy1 +radio2-1: 1.1.9 wiphy3 +radio2-2: 1.1.10 wiphy5 +radio5-0: 1.1.3 wiphy0 +radio5-1: 1.1.5 wiphy2 +radio5-2: 1.1.7 wiphy4 +basic_cx: 1 +tput: 0 +dual_band_tput: 0 +capacity: 0 +longterm: 0 +mix_stability: 0 +loop_iter: 1 +reset_batch_size: 1 +reset_duration_min: 20000 +reset_duration_max: 30000 diff --git a/lf_gui_cmd.pl b/lf_gui_cmd.pl index 33a9c4de..958e7b7f 100755 --- a/lf_gui_cmd.pl +++ b/lf_gui_cmd.pl @@ -31,6 +31,8 @@ my $tname = "lfgui-test"; my $tconfig = ""; # test config my $rpt_dest = ""; my $show_help = 0; +my @modifiers_key = (); +my @modifiers_val = (); ######################################################################## # Nothing to configure below here, most likely. @@ -45,6 +47,7 @@ my $usage = qq($0 [--manager { hostname or address of LANforge GUI machine } ] [--tconfig {test configuration name, use defaults if not specified} ] [--rpt_dest {Copy report to destination once it is complete} ] [--cmd { command to send to the GUI } ] + [--modifier " Example: lf_gui_cmd.pl --manager localhost --port 3990 --ttype TR-398 --tname mytest --tconfig comxim --rpt_dest /var/www/html/lf_reports @@ -59,6 +62,8 @@ if (@ARGV < 2) { GetOptions ( 'help|h' => \$show_help, 'manager|mgr|m=s' => \$lfmgr_host, + 'modifier_key=s' => \@modifiers_key, + 'modifier_val=s' => \@modifiers_val, 'ttype=s' => \$ttype, 'tname=s' => \$tname, 'tconfig=s' => \$tconfig, @@ -72,6 +77,13 @@ if ($show_help) { exit 0; } +my $lnk = @modifiers_key; +my $lnv = @modifiers_val; +if ($lnk != $lnv) { + print("ERROR: You must specify the same amount of modifers-key and modifiers-val entries.\n"); + exit(3); +} + if ((defined $port) && ($port > 0)) { $lfmgr_port = $port; } @@ -96,6 +108,14 @@ if ($ttype ne "") { print doCmd("cv load '$tname' '$tconfig'"); } print doCmd("cv click '$tname' 'Auto Save Report'"); + + my $i; + for ($i = 0; $i<@modifiers_key; $i++) { + my $k = $modifiers_key[$i]; + my $v = $modifiers_val[$i]; + print doCmd("cv set '$tname' '$k' '$v'"); + } + print doCmd("cv click '$tname' 'Start'"); while (1) { my $rslt = doCmd("cv get '$tname' 'Report Location:'"); @@ -120,6 +140,33 @@ if ($ttype ne "") { sleep(3); } } + + # Clean up our instance. This can take a while. + print doCmd("cv delete '$tname'"); + while (1) { + my $rslt = doCmd("cv exists '$tname'"); + print "Result-exists -:$rslt:-\n"; + if ($rslt =~ /YES/) { + sleep(3); + } + else { + last; + } + } + + # Wait a bit more, CV will likey be rebuilt now. + sleep(5); + + while (1) { + my $rslt = doCmd("cv is_built"); + print "Result-built -:$rslt:-\n"; + if ($rslt =~ /NO/) { + sleep(3); + } + else { + last; + } + } } exit(0); diff --git a/lf_testmod.pl b/lf_testmod.pl new file mode 100755 index 00000000..723c34ba --- /dev/null +++ b/lf_testmod.pl @@ -0,0 +1,178 @@ +#!/usr/bin/perl -w + +# This program is used to load GUI tests (TR-398, Capacity, etc) from a file +# and configure it in the LANforge server. See gui/README.txt +# (C) 2020 Candela Technologies Inc. +# +# + +use strict; +use warnings; +use diagnostics; +use Carp; +$SIG{ __DIE__ } = sub { Carp::confess( @_ ) }; +$SIG{ __WARN__ } = sub { Carp::confess( @_ ) }; + +# Un-buffer output +$| = 1; + +# use lib prepends to @INC, so put lower priority first +# This is before run-time, so cannot condition this with normal 'if' logic. +use lib '/home/lanforge/scripts'; +use lib "../"; +use lib "./"; + +use LANforge::Endpoint; +use LANforge::Port; +use LANforge::Utils; +use Net::Telnet (); +use Getopt::Long; + +our $NA = 'NA'; +our $NL = "\n"; + +# Default values for ye ole cmd-line args. +our $quiet = "yes"; +our $test_type = "Plugin-Settings"; +our $test_name = ""; +our $file_name = ""; +our $action = "show"; +our $lfmgr_host = "localhost"; +our $lfmgr_port = 4001; + +######################################################################## +# Nothing to configure below here, most likely. +######################################################################## + +our $usage = <<"__EndOfUsage__"; +$0 [ --action { + show | set + } ] + [--file {data file name}] + [--test_name {test name or ALL}] + [--test_type {Plugin-Settings or other type or ALL}] + [--mgr {host-name | IP}] + [--mgr_port {ip port}] + [--quiet { yes | no }] + [--log_cli {1|filename}] + +Example: + $0 --action set --test_name AP-Auto-ap-auto-32-64-dual --file test_configs/AP-Auto-ap-auto-32-64-dual.txt +__EndOfUsage__ + +my $i = 0; +my $cmd; + +my $log_cli = "unset"; # use ENV{LOG_CLI} elsewhere +my $show_help = 0; + +if (@ARGV < 2) { + print $usage; + exit 0; +} + +our $debug = 0; + +GetOptions +( + 'action|a=s' => \$::action, + 'file=s' => \$::file_name, + 'test_name=s' => \$::test_name, + 'test_type=s' => \$::test_type, + 'debug|d' => \$::debug, + 'help|h' => \$show_help, + 'log_cli=s{0,1}' => \$log_cli, + 'manager|mgr|m=s' => \$::lfmgr_host, + 'lfmgr_port|mgr_port|port|p=i' => \$::lfmgr_port, + 'quiet|q=s' => \$::quiet, + +) || die("$::usage"); + +if ($show_help) { + print $usage; + exit 0; +} + +use Data::Dumper; + +if ($::debug) { + $ENV{DEBUG} = 1 if (!(defined $ENV{DEBUG})); +} + +if ($::quiet eq "0") { + $::quiet = "no"; +} +elsif ($::quiet eq "1") { + $::quiet = "yes"; +} + +if (defined $log_cli) { + if ($log_cli ne "unset") { + # here is how we reset the variable if it was used as a flag + if ($log_cli eq "") { + $ENV{'LOG_CLI'} = 1; + } + else { + $ENV{'LOG_CLI'} = $log_cli; + } + } +} + +our @valid_actions = qw(show set); + +if (! (grep {$_ eq $::action} @::valid_actions )) { + die("Invalid action: $::action\n$::usage\n"); +} +if ($::quiet eq "1" ) { + $::quiet = "yes"; +} + +# Open connection to the LANforge server. +our $utils = new LANforge::Utils(); +$::utils->connect($lfmgr_host, $lfmgr_port); + + +if ($::action eq "show") { + $cmd = "show_text_blob $test_type $test_name"; + my $r = $::utils->doCmd($cmd); + print $r; + print "\n\n"; +} +elsif ($::action eq "set") { + if ($file_name eq "") { + print("ERROR: Must specify file name when doing the 'set' action\n"); + exit(1); + } + + my @cmds = `cat $file_name`; + if (@cmds == 0) { + print("ERROR: Could not read any lines from the file: $file_name\n"); + exit(2); + } + + # First clean out any old text blob. + $cmd = "rm_text_blob $test_type $test_name"; + $::utils->doCmd($cmd); + + # And add the new blob + for ($i = 0; $i<@cmds; $i++) { + my $ln = $cmds[$i]; + chomp($ln); + + # Skip blank lines + if ($ln eq "") { + next; + } + + $cmd = "add_text_blob '$test_type' '$test_name' $ln"; + $::utils->doCmd($cmd, 1); # send and do not wait for result + } +} +else { + die("Unknown action: $::action\n$::usage\n"); +} + +exit(0); + +# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- +# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- From 38e0fe9bd77d2f375d8a7e0ce5f42746e3374461 Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Wed, 15 Apr 2020 17:54:47 -0700 Subject: [PATCH 2/3] Add gui automation script for multiple reports in one go. --- gui/basic_regression.bash | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 gui/basic_regression.bash diff --git a/gui/basic_regression.bash b/gui/basic_regression.bash new file mode 100755 index 00000000..56bf30be --- /dev/null +++ b/gui/basic_regression.bash @@ -0,0 +1,70 @@ +#!/bin/bash + +# Run some automated GUI tests, save the results +# Example of how to run this and override LFMANAGER default settings. Other values can +# be over-ridden as well. +# +# LFMANAGER=192.168.100.156 ./basic_regression.bash +# +# + +AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-test_configs/AP-Auto-ap-auto-32-64-dual.txt} + +# LANforge target machine +LFMANAGER=${LFMANAGER:-localhost} + +# LANforge GUI machine (may often be same as target) +GMANAGER=${GMANAGER:-localhost} +GMPORT=${GMPORT:-3990} +MY_TMPDIR=${MY_TMPDIR:-/tmp} + +# Test configuration (10 minutes by default, in interest of time) +STABILITY_DURATION=${STABILITY_DURATION:-600} + +DATESTR=$(date +%F-%T) +RSLTS_DIR=${RSLTS_DIR:-basic_regression_results_$DATESTR} + + +# Probably no config below here +AP_AUTO_CFG=ben +RPT_TMPDIR=${MY_TMPDIR}/lf_reports + +mkdir -p $RSLTS_DIR + +# Load AP-Auto config file +../lf_testmod.pl --mgr $LFMANAGER --action set --test_name AP-Auto-$AP_AUTO_CFG --file $AP_AUTO_CFG_FILE + +# Clean out temp report directory +if [ -d $RPT_TMPDIR ] +then + rm -fr $RPT_TMPDIR/* +fi + +# Run basic-cx test +../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 +mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_basic_cx +mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_basic_cx/test_automation.txt + + +# Run Throughput, Dual-Band, Capacity test in a row, the Capacity will use results from earlier +# tests. +../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Throughput vs Pkt Size" --modifier_val true \ + --modifier_key "Dual Band Performance" --modifier_val true \ + --modifier_key "Capacity" --modifier_val true \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 +mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_capacity +mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_capacity/test_automation.txt + + +# Run Stability test +../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Stability" --modifier_val true \ + --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 +mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability +mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability/test_automation.txt + From 474500b8f7be721fb9aa88daad29f34ba08f53d4 Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Thu, 16 Apr 2020 07:46:25 -0700 Subject: [PATCH 3/3] basic-regression: Add some more reset related tests, allow running individual tests. --- gui/basic_regression.bash | 86 +++++++++++++++++++++++++++++---------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/gui/basic_regression.bash b/gui/basic_regression.bash index 56bf30be..8746cf96 100755 --- a/gui/basic_regression.bash +++ b/gui/basic_regression.bash @@ -6,6 +6,9 @@ # # LFMANAGER=192.168.100.156 ./basic_regression.bash # +# Run subset of tests +# LFMANAGER=192.168.100.156 DEFAULT_ENABLE=0 DO_SHORT_AP_STABILITY_RESET=1 ./basic_regression.bash +# # AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-test_configs/AP-Auto-ap-auto-32-64-dual.txt} @@ -21,6 +24,14 @@ MY_TMPDIR=${MY_TMPDIR:-/tmp} # Test configuration (10 minutes by default, in interest of time) STABILITY_DURATION=${STABILITY_DURATION:-600} +# Tests to run +DEFAULT_ENABLE=${DEFAULT_ENABLE:-1} +DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-$DEFAULT_ENABLE} +DO_SHORT_AP_TPUT=${DO_SHORT_AP_TPUT:-$DEFAULT_ENABLE} +DO_SHORT_AP_STABILITY_RESET=${DO_SHORT_AP_STABILITY_RESET:-$DEFAULT_ENABLE} +DO_SHORT_AP_STABILITY_RADIO_RESET=${DO_SHORT_AP_STABILITY_RADIO_RESET:-$DEFAULT_ENABLE} +DO_SHORT_AP_STABILITY_NO_RESET=${DO_SHORT_AP_STABILITY_NO_RESET:-$DEFAULT_ENABLE} + DATESTR=$(date +%F-%T) RSLTS_DIR=${RSLTS_DIR:-basic_regression_results_$DATESTR} @@ -41,30 +52,63 @@ then fi # Run basic-cx test -../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ - --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 -mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_basic_cx -mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_basic_cx/test_automation.txt - +if [ "_$DO_SHORT_AP_BASIC_CX" == "_1" ] +then + ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 + mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_basic_cx + mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_basic_cx/test_automation.txt +fi # Run Throughput, Dual-Band, Capacity test in a row, the Capacity will use results from earlier # tests. -../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ - --modifier_key "Basic Client Connectivity" --modifier_val false \ - --modifier_key "Throughput vs Pkt Size" --modifier_val true \ - --modifier_key "Dual Band Performance" --modifier_val true \ - --modifier_key "Capacity" --modifier_val true \ - --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 -mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_capacity -mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_capacity/test_automation.txt +if [ "_$DO_SHORT_AP_TPUT" == "_1" ] +then + ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Throughput vs Pkt Size" --modifier_val true \ + --modifier_key "Dual Band Performance" --modifier_val true \ + --modifier_key "Capacity" --modifier_val true \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 + mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_capacity + mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_capacity/test_automation.txt +fi +# Run Stability test (single port resets, voip, tcp, udp) +if [ "_$DO_SHORT_AP_STABILITY_RESET" == "_1" ] +then + ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Stability" --modifier_val true \ + --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 + mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_reset_ports + mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_reset_ports/test_automation.txt +fi -# Run Stability test -../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ - --modifier_key "Basic Client Connectivity" --modifier_val false \ - --modifier_key "Stability" --modifier_val true \ - --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ - --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 -mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability -mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability/test_automation.txt +# Run Stability test (radio resets, voip, tcp, udp) +if [ "_$DO_SHORT_AP_STABILITY_RADIO_RESET" == "_1" ] +then + ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Stability" --modifier_val true \ + --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ + --modifier_key "Reset Radios" --modifier_val true \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 + mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_reset_radios + mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_reset_radios/test_automation.txt +fi +# Run Stability test (no resets, no voip, tcp, udp) +if [ "_$DO_SHORT_AP_STABILITY_NO_RESET" == "_1" ] +then + ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ + --modifier_key "Basic Client Connectivity" --modifier_val false \ + --modifier_key "Stability" --modifier_val true \ + --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ + --modifier_key "VOIP Call Count:" --modifier_val 0 \ + --modifier_key "Concurrent Ports To Reset:" --modifier_val 0 \ + --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 + mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_no_reset + mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_no_reset/test_automation.txt +fi