mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +00:00
scripts: More gui automation fixes and improvements.
This commit is contained in:
@@ -20,26 +20,33 @@ test_rig: TR-398 test bed
|
|||||||
|
|
||||||
Save this text to a file for later use: AP-Auto-ap-auto-32-64-dual.txt
|
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:
|
# Save this text using the ../lf_testmod.pl script:
|
||||||
# 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 > test_configs/mytest.txt
|
||||||
../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
|
# To load a test file into the LANforge server configuration:
|
||||||
|
../lf_testmod.pl --mgr 192.168.100.156 --action set --test_name AP-Auto-ben --file test_configs/mytest.txt
|
||||||
|
|
||||||
|
|
||||||
|
# Save print and scenario:
|
||||||
|
../lf_testmod.pl --mgr 192.168.100.156 --action show --test_name simpleThput --test_type Network-Connectivity > test_configs/myscenario.txt
|
||||||
|
|
||||||
|
|
||||||
|
# Load a scenario into the LANforge server configuration
|
||||||
|
../lf_testmod.pl --mgr 192.168.100.156 --action set --test_type Network-Connectivity --test_name 64sta --file test_configs/myscenario.txt
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
Once test cases have been loaded, you can tell the GUI to run tests for you, potentially modifying the
|
Once test cases have been loaded into the server, you can tell the GUI to run tests for you, potentially modifying the
|
||||||
test configuration through the GUI.
|
test configuration through the GUI.
|
||||||
|
|
||||||
First, tell the GUI to read the latest test config from the server.
|
# 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"
|
../lf_gui_cmd.pl --manager localhost --port 3990 --cmd "cli show_text_blob"
|
||||||
|
|
||||||
|
# Tell the Chamber-View GUI widget to load and build the specified scenario.
|
||||||
|
../lf_gui_cmd.pl --manager localhost --port 3990 --load 64sta
|
||||||
|
|
||||||
Now, tell the GUI to run a test with the new config.
|
# 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
|
# 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.
|
# 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/
|
../lf_gui_cmd.pl --manager localhost --port 3990 --ttype "AP-Auto" --tname ap-auto-ben --tconfig ben --rpt_dest /tmp/lf_reports/
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-test_configs/AP-Auto-ap-auto-32-64-dual.txt}
|
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-test_configs/AP-Auto-ap-auto-32-64-dual.txt}
|
||||||
|
WCT_CFG_FILE=${WCT_CFG_FILE:-test_configs/WCT-64sta.txt}
|
||||||
|
SCENARIO_CFG_FILE=${SCENARIO_CFG_FILE:-test_configs/64_sta_scenario.txt}
|
||||||
|
|
||||||
# LANforge target machine
|
# LANforge target machine
|
||||||
LFMANAGER=${LFMANAGER:-localhost}
|
LFMANAGER=${LFMANAGER:-localhost}
|
||||||
@@ -23,9 +25,13 @@ MY_TMPDIR=${MY_TMPDIR:-/tmp}
|
|||||||
|
|
||||||
# Test configuration (10 minutes by default, in interest of time)
|
# Test configuration (10 minutes by default, in interest of time)
|
||||||
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
||||||
|
TEST_RIG_ID=${TEST_RIG_ID:-Unspecified}
|
||||||
|
|
||||||
# Tests to run
|
# Tests to run
|
||||||
DEFAULT_ENABLE=${DEFAULT_ENABLE:-1}
|
DEFAULT_ENABLE=${DEFAULT_ENABLE:-1}
|
||||||
|
DO_WCT_DL=${DO_WCT_DL:-$DEFAULT_ENABLE}
|
||||||
|
DO_WCT_UL=${DO_WCT_UL:-$DEFAULT_ENABLE}
|
||||||
|
DO_WCT_BI=${DO_WCT_BI:-$DEFAULT_ENABLE}
|
||||||
DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-$DEFAULT_ENABLE}
|
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_TPUT=${DO_SHORT_AP_TPUT:-$DEFAULT_ENABLE}
|
||||||
DO_SHORT_AP_STABILITY_RESET=${DO_SHORT_AP_STABILITY_RESET:-$DEFAULT_ENABLE}
|
DO_SHORT_AP_STABILITY_RESET=${DO_SHORT_AP_STABILITY_RESET:-$DEFAULT_ENABLE}
|
||||||
@@ -38,20 +44,78 @@ RSLTS_DIR=${RSLTS_DIR:-basic_regression_results_$DATESTR}
|
|||||||
|
|
||||||
# Probably no config below here
|
# Probably no config below here
|
||||||
AP_AUTO_CFG=ben
|
AP_AUTO_CFG=ben
|
||||||
|
WCT_CFG=ben
|
||||||
|
SCENARIO=64sta
|
||||||
RPT_TMPDIR=${MY_TMPDIR}/lf_reports
|
RPT_TMPDIR=${MY_TMPDIR}/lf_reports
|
||||||
|
|
||||||
mkdir -p $RSLTS_DIR
|
mkdir -p $RSLTS_DIR
|
||||||
|
|
||||||
|
set -x
|
||||||
|
# Load scenario file
|
||||||
|
../lf_testmod.pl --mgr $LFMANAGER --action set --test_type Network-Connectivity --test_name $SCENARIO --file $SCENARIO_CFG_FILE
|
||||||
|
|
||||||
# Load AP-Auto config file
|
# Load AP-Auto config file
|
||||||
../lf_testmod.pl --mgr $LFMANAGER --action set --test_name AP-Auto-$AP_AUTO_CFG --file $AP_AUTO_CFG_FILE
|
../lf_testmod.pl --mgr $LFMANAGER --action set --test_name AP-Auto-$AP_AUTO_CFG --file $AP_AUTO_CFG_FILE
|
||||||
|
|
||||||
|
# Load Wifi Capacity config file
|
||||||
|
../lf_testmod.pl --mgr $LFMANAGER --action set --test_name Wifi-Capacity-$WCT_CFG --file $WCT_CFG_FILE
|
||||||
|
|
||||||
|
# Make sure GUI is synced up with the server
|
||||||
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli show_text_blob"
|
||||||
|
|
||||||
|
# Pause to let GUI finish getting data from the server
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Tell GUI to load and build the scenario
|
||||||
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --scenario $SCENARIO
|
||||||
|
|
||||||
# Clean out temp report directory
|
# Clean out temp report directory
|
||||||
if [ -d $RPT_TMPDIR ]
|
if [ -d $RPT_TMPDIR ]
|
||||||
then
|
then
|
||||||
rm -fr $RPT_TMPDIR/*
|
rm -fr $RPT_TMPDIR/*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Do capacity test
|
||||||
|
echo "Checking if we should run WCT Download test."
|
||||||
|
if [ "_$DO_WCT_DL" == "_1" ]
|
||||||
|
then
|
||||||
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben --tconfig $WCT_CFG \
|
||||||
|
--modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \
|
||||||
|
--modifier_key "RATE_DL" --modifier_val "1Gbps" \
|
||||||
|
--modifier_key "RATE_UL" --modifier_val "0" \
|
||||||
|
--rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1
|
||||||
|
mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_dl
|
||||||
|
mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_dl/test_automation.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Checking if we should run WCT Upload test."
|
||||||
|
if [ "_$DO_WCT_UL" == "_1" ]
|
||||||
|
then
|
||||||
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben --tconfig $WCT_CFG \
|
||||||
|
--modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \
|
||||||
|
--modifier_key "RATE_UL" --modifier_val "1Gbps" \
|
||||||
|
--modifier_key "RATE_DL" --modifier_val "0" \
|
||||||
|
--rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1
|
||||||
|
mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_ul
|
||||||
|
mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_ul/test_automation.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Checking if we should run WCT Bi-Direction test."
|
||||||
|
if [ "_$DO_WCT_BI" == "_1" ]
|
||||||
|
then
|
||||||
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben --tconfig $WCT_CFG \
|
||||||
|
--modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \
|
||||||
|
--modifier_key "RATE_UL" --modifier_val "1Gbps" \
|
||||||
|
--modifier_key "RATE_DL" --modifier_val "1Gbps" \
|
||||||
|
--modifier_key "Protocol:" --modifier_val "TCP-IPv4" \
|
||||||
|
--rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1
|
||||||
|
mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_bi
|
||||||
|
mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_bi/test_automation.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Run basic-cx test
|
# Run basic-cx test
|
||||||
|
echo "Checking if we should run Short-AP Basic CX test."
|
||||||
if [ "_$DO_SHORT_AP_BASIC_CX" == "_1" ]
|
if [ "_$DO_SHORT_AP_BASIC_CX" == "_1" ]
|
||||||
then
|
then
|
||||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
||||||
@@ -62,6 +126,7 @@ fi
|
|||||||
|
|
||||||
# Run Throughput, Dual-Band, Capacity test in a row, the Capacity will use results from earlier
|
# Run Throughput, Dual-Band, Capacity test in a row, the Capacity will use results from earlier
|
||||||
# tests.
|
# tests.
|
||||||
|
echo "Checking if we should run Short-AP Throughput test."
|
||||||
if [ "_$DO_SHORT_AP_TPUT" == "_1" ]
|
if [ "_$DO_SHORT_AP_TPUT" == "_1" ]
|
||||||
then
|
then
|
||||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
||||||
@@ -75,6 +140,7 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Run Stability test (single port resets, voip, tcp, udp)
|
# Run Stability test (single port resets, voip, tcp, udp)
|
||||||
|
echo "Checking if we should run Short-AP Stability Reset test."
|
||||||
if [ "_$DO_SHORT_AP_STABILITY_RESET" == "_1" ]
|
if [ "_$DO_SHORT_AP_STABILITY_RESET" == "_1" ]
|
||||||
then
|
then
|
||||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
||||||
@@ -87,6 +153,7 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Run Stability test (radio resets, voip, tcp, udp)
|
# Run Stability test (radio resets, voip, tcp, udp)
|
||||||
|
echo "Checking if we should run Short-AP Stability Radio Reset test."
|
||||||
if [ "_$DO_SHORT_AP_STABILITY_RADIO_RESET" == "_1" ]
|
if [ "_$DO_SHORT_AP_STABILITY_RADIO_RESET" == "_1" ]
|
||||||
then
|
then
|
||||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
||||||
@@ -100,6 +167,7 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Run Stability test (no resets, no voip, tcp, udp)
|
# Run Stability test (no resets, no voip, tcp, udp)
|
||||||
|
echo "Checking if we should run Short-AP Stability No-Reset test."
|
||||||
if [ "_$DO_SHORT_AP_STABILITY_NO_RESET" == "_1" ]
|
if [ "_$DO_SHORT_AP_STABILITY_NO_RESET" == "_1" ]
|
||||||
then
|
then
|
||||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \
|
||||||
@@ -112,3 +180,5 @@ then
|
|||||||
mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_no_reset
|
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
|
mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_no_reset/test_automation.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Done with regression test."
|
||||||
|
|||||||
12
gui/test_configs/64_sta_scenario.txt
Normal file
12
gui/test_configs/64_sta_scenario.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
profile_link 1.1 STA-AC 64 'DUT: TR398-DUT Radio-1' NA wiphy0,AUTO -1
|
||||||
|
profile_link 1.1 upstream 1 'DUT: TR398-DUT LAN' NA eth1,AUTO -1
|
||||||
|
chamber TR-398 495 239 NA 10.0
|
||||||
|
chamber MobileStations 305 240 NA 10.0
|
||||||
|
dut Lexus 0 0
|
||||||
|
dut SurfacePro 110 152
|
||||||
|
dut iphone 0 0
|
||||||
|
dut Comcast 565 309
|
||||||
|
dut NetgearAP 987 177
|
||||||
|
resource 1.2 0 0
|
||||||
|
|
||||||
|
|
||||||
126
gui/test_configs/WCT-64sta.txt
Normal file
126
gui/test_configs/WCT-64sta.txt
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
[BLANK]
|
||||||
|
sel_port-0: 1.1.eth1
|
||||||
|
sel_port-1: 1.1.sta00000
|
||||||
|
sel_port-2: 1.1.sta00001
|
||||||
|
sel_port-3: 1.1.sta00002
|
||||||
|
sel_port-4: 1.1.sta00003
|
||||||
|
sel_port-5: 1.1.sta00004
|
||||||
|
sel_port-6: 1.1.sta00005
|
||||||
|
sel_port-7: 1.1.sta00006
|
||||||
|
sel_port-8: 1.1.sta00007
|
||||||
|
sel_port-9: 1.1.sta00008
|
||||||
|
sel_port-10: 1.1.sta00009
|
||||||
|
sel_port-11: 1.1.sta00010
|
||||||
|
sel_port-12: 1.1.sta00011
|
||||||
|
sel_port-13: 1.1.sta00012
|
||||||
|
sel_port-14: 1.1.sta00013
|
||||||
|
sel_port-15: 1.1.sta00014
|
||||||
|
sel_port-16: 1.1.sta00015
|
||||||
|
sel_port-17: 1.1.sta00016
|
||||||
|
sel_port-18: 1.1.sta00017
|
||||||
|
sel_port-19: 1.1.sta00018
|
||||||
|
sel_port-20: 1.1.sta00019
|
||||||
|
sel_port-21: 1.1.sta00020
|
||||||
|
sel_port-22: 1.1.sta00021
|
||||||
|
sel_port-23: 1.1.sta00022
|
||||||
|
sel_port-24: 1.1.sta00023
|
||||||
|
sel_port-25: 1.1.sta00024
|
||||||
|
sel_port-26: 1.1.sta00025
|
||||||
|
sel_port-27: 1.1.sta00026
|
||||||
|
sel_port-28: 1.1.sta00027
|
||||||
|
sel_port-29: 1.1.sta00028
|
||||||
|
sel_port-30: 1.1.sta00029
|
||||||
|
sel_port-31: 1.1.sta00030
|
||||||
|
sel_port-32: 1.1.sta00031
|
||||||
|
sel_port-33: 1.1.sta00032
|
||||||
|
sel_port-34: 1.1.sta00033
|
||||||
|
sel_port-35: 1.1.sta00034
|
||||||
|
sel_port-36: 1.1.sta00035
|
||||||
|
sel_port-37: 1.1.sta00036
|
||||||
|
sel_port-38: 1.1.sta00037
|
||||||
|
sel_port-39: 1.1.sta00038
|
||||||
|
sel_port-40: 1.1.sta00039
|
||||||
|
sel_port-41: 1.1.sta00040
|
||||||
|
sel_port-42: 1.1.sta00041
|
||||||
|
sel_port-43: 1.1.sta00042
|
||||||
|
sel_port-44: 1.1.sta00043
|
||||||
|
sel_port-45: 1.1.sta00044
|
||||||
|
sel_port-46: 1.1.sta00045
|
||||||
|
sel_port-47: 1.1.sta00046
|
||||||
|
sel_port-48: 1.1.sta00047
|
||||||
|
sel_port-49: 1.1.sta00048
|
||||||
|
sel_port-50: 1.1.sta00049
|
||||||
|
sel_port-51: 1.1.sta00050
|
||||||
|
sel_port-52: 1.1.sta00051
|
||||||
|
sel_port-53: 1.1.sta00052
|
||||||
|
sel_port-54: 1.1.sta00053
|
||||||
|
sel_port-55: 1.1.sta00054
|
||||||
|
sel_port-56: 1.1.sta00055
|
||||||
|
sel_port-57: 1.1.sta00056
|
||||||
|
sel_port-58: 1.1.sta00057
|
||||||
|
sel_port-59: 1.1.sta00058
|
||||||
|
sel_port-60: 1.1.sta00059
|
||||||
|
sel_port-61: 1.1.sta00060
|
||||||
|
sel_port-62: 1.1.sta00061
|
||||||
|
sel_port-63: 1.1.sta00062
|
||||||
|
sel_port-64: 1.1.sta00063
|
||||||
|
show_events: 1
|
||||||
|
show_log: 0
|
||||||
|
port_sorting: 0
|
||||||
|
bg: 0xE0ECF8
|
||||||
|
test_rig:
|
||||||
|
show_scan: 1
|
||||||
|
auto_helper: 1
|
||||||
|
skip_2: 0
|
||||||
|
skip_5: 0
|
||||||
|
batch_size: 1,2,5,10,20,40,64
|
||||||
|
loop_iter: 1
|
||||||
|
duration: 20000
|
||||||
|
test_groups: 0
|
||||||
|
test_groups_subset: 0
|
||||||
|
protocol: UDP-IPv4
|
||||||
|
dl_rate_sel: Total Download Rate:
|
||||||
|
dl_rate: 1000000000
|
||||||
|
ul_rate_sel: Total Upload Rate:
|
||||||
|
ul_rate: 0
|
||||||
|
prcnt_tcp: 100000
|
||||||
|
l4_endp:
|
||||||
|
pdu_sz: -1
|
||||||
|
mss_sel: 1
|
||||||
|
sock_buffer: 0
|
||||||
|
ip_tos: 0
|
||||||
|
multi_conn: -1
|
||||||
|
min_speed: -1
|
||||||
|
ps_interval: 60-second Running Average
|
||||||
|
fairness: 0
|
||||||
|
naptime: 0
|
||||||
|
before_clear: 5000
|
||||||
|
rpt_timer: 1000
|
||||||
|
try_lower: 0
|
||||||
|
rnd_rate: 1
|
||||||
|
leave_ports_up: 0
|
||||||
|
down_quiesce: 0
|
||||||
|
udp_nat: 1
|
||||||
|
record_other_ssids: 0
|
||||||
|
clear_reset_counters: 1
|
||||||
|
do_pf: 0
|
||||||
|
pf_min_period_dl: 1544000
|
||||||
|
pf_min_period_ul: 0
|
||||||
|
pf_max_reconnects: 0
|
||||||
|
use_mix_pdu: 0
|
||||||
|
pdu_prcnt_pps: 1
|
||||||
|
pdu_prcnt_bps: 0
|
||||||
|
pdu_mix_ln-0:
|
||||||
|
show_scan: 1
|
||||||
|
show_golden_3p: 0
|
||||||
|
save_csv: 0
|
||||||
|
show_realtime: 1
|
||||||
|
show_pie: 1
|
||||||
|
show_per_loop_totals: 1
|
||||||
|
show_cx_time: 1
|
||||||
|
show_dhcp: 1
|
||||||
|
show_anqp: 1
|
||||||
|
show_4way: 1
|
||||||
|
show_latency: 1
|
||||||
|
|
||||||
|
|
||||||
@@ -28,6 +28,7 @@ my $port = "";
|
|||||||
my $cmd = "";
|
my $cmd = "";
|
||||||
my $ttype = ""; # Test type
|
my $ttype = ""; # Test type
|
||||||
my $tname = "lfgui-test";
|
my $tname = "lfgui-test";
|
||||||
|
my $scenario = "";
|
||||||
my $tconfig = ""; # test config
|
my $tconfig = ""; # test config
|
||||||
my $rpt_dest = "";
|
my $rpt_dest = "";
|
||||||
my $show_help = 0;
|
my $show_help = 0;
|
||||||
@@ -43,6 +44,8 @@ my $usage = qq($0 [--manager { hostname or address of LANforge GUI machine } ]
|
|||||||
# careful, your cli-socket might be 3390!
|
# careful, your cli-socket might be 3390!
|
||||||
[--ttype {test instance type} ]
|
[--ttype {test instance type} ]
|
||||||
# likely types: "cv", "WiFi Capacity", "Port Bringup", "Port Reset"
|
# likely types: "cv", "WiFi Capacity", "Port Bringup", "Port Reset"
|
||||||
|
[--scenario {scenario name} ]
|
||||||
|
# Apply and build the scenario.
|
||||||
[--tname {test instance name} ]
|
[--tname {test instance name} ]
|
||||||
[--tconfig {test configuration name, use defaults if not specified} ]
|
[--tconfig {test configuration name, use defaults if not specified} ]
|
||||||
[--rpt_dest {Copy report to destination once it is complete} ]
|
[--rpt_dest {Copy report to destination once it is complete} ]
|
||||||
@@ -52,6 +55,7 @@ my $usage = qq($0 [--manager { hostname or address of LANforge GUI machine } ]
|
|||||||
Example:
|
Example:
|
||||||
lf_gui_cmd.pl --manager localhost --port 3990 --ttype TR-398 --tname mytest --tconfig comxim --rpt_dest /var/www/html/lf_reports
|
lf_gui_cmd.pl --manager localhost --port 3990 --ttype TR-398 --tname mytest --tconfig comxim --rpt_dest /var/www/html/lf_reports
|
||||||
lf_gui_cmd.pl --manager localhost --port 3990 --cmd \"help\"
|
lf_gui_cmd.pl --manager localhost --port 3990 --cmd \"help\"
|
||||||
|
lf_gui_cmd.pl --manager localhost --port 3990 --scenario 64sta
|
||||||
);
|
);
|
||||||
|
|
||||||
if (@ARGV < 2) {
|
if (@ARGV < 2) {
|
||||||
@@ -66,6 +70,7 @@ GetOptions (
|
|||||||
'modifier_val=s' => \@modifiers_val,
|
'modifier_val=s' => \@modifiers_val,
|
||||||
'ttype=s' => \$ttype,
|
'ttype=s' => \$ttype,
|
||||||
'tname=s' => \$tname,
|
'tname=s' => \$tname,
|
||||||
|
'scenario=s' => \$scenario,
|
||||||
'tconfig=s' => \$tconfig,
|
'tconfig=s' => \$tconfig,
|
||||||
'rpt_dest=s' => \$rpt_dest,
|
'rpt_dest=s' => \$rpt_dest,
|
||||||
'port=s' => \$port,
|
'port=s' => \$port,
|
||||||
@@ -102,6 +107,23 @@ if ($cmd ne "") {
|
|||||||
print doCmd("$cmd");
|
print doCmd("$cmd");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($scenario ne "") {
|
||||||
|
print doCmd("cv apply '$scenario'");
|
||||||
|
print doCmd("cv build");
|
||||||
|
sleep(3);
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
my $rslt = doCmd("cv is_built");
|
||||||
|
print "Result-built -:$rslt:-\n";
|
||||||
|
if ($rslt =~ /NO/) {
|
||||||
|
sleep(3);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($ttype ne "") {
|
if ($ttype ne "") {
|
||||||
print doCmd("cv create '$ttype' '$tname'");
|
print doCmd("cv create '$ttype' '$tname'");
|
||||||
if ($tconfig ne "") {
|
if ($tconfig ne "") {
|
||||||
@@ -164,6 +186,7 @@ if ($ttype ne "") {
|
|||||||
sleep(3);
|
sleep(3);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
print("Chamber-View is (re)built, exiting.\n");
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,9 +134,27 @@ $::utils->connect($lfmgr_host, $lfmgr_port);
|
|||||||
|
|
||||||
if ($::action eq "show") {
|
if ($::action eq "show") {
|
||||||
$cmd = "show_text_blob $test_type $test_name";
|
$cmd = "show_text_blob $test_type $test_name";
|
||||||
my $r = $::utils->doCmd($cmd);
|
my $txt = $::utils->doCmd($cmd);
|
||||||
print $r;
|
my @r = split(/\n/, $txt);
|
||||||
print "\n\n";
|
my $first = $r[0];
|
||||||
|
chomp($first);
|
||||||
|
if ($first =~ /.*::(.*)/) {
|
||||||
|
print "$1\n";
|
||||||
|
}
|
||||||
|
my $i;
|
||||||
|
for ($i = 1; $i<@r; $i++) {
|
||||||
|
my $ln = $r[$i];
|
||||||
|
chomp($ln);
|
||||||
|
if ($ln =~ /\s*>>RSLT.*/) {
|
||||||
|
# ignore
|
||||||
|
}
|
||||||
|
elsif ($ln =~ /\s*default\@btbits.*/) {
|
||||||
|
# ignore
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print "$ln\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elsif ($::action eq "set") {
|
elsif ($::action eq "set") {
|
||||||
if ($file_name eq "") {
|
if ($file_name eq "") {
|
||||||
|
|||||||
113
tos_plus_auto.py
Executable file
113
tos_plus_auto.py
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
'''
|
||||||
|
|
||||||
|
make sure pexpect is installed:
|
||||||
|
$ sudo yum install python3-pexpect
|
||||||
|
|
||||||
|
You might need to install pexpect-serial using pip:
|
||||||
|
$ pip3 install pexpect-serial
|
||||||
|
|
||||||
|
./tos_plus_auto.py
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
import sys
|
||||||
|
if sys.version_info[0] != 3:
|
||||||
|
print("This script requires Python 3")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import logging
|
||||||
|
import time
|
||||||
|
from time import sleep
|
||||||
|
import pprint
|
||||||
|
import telnetlib
|
||||||
|
import argparse
|
||||||
|
import pexpect
|
||||||
|
|
||||||
|
ptype="QCA"
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
print("$0 used connect to automated a test case using cisco controller and LANforge tos-plus script:")
|
||||||
|
print("-p|--ptype: AP Hardware type")
|
||||||
|
print("-h|--help")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
global ptype
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description="TOS Plus automation script")
|
||||||
|
parser.add_argument("-p", "--ptype", type=str, help="AP Hardware type")
|
||||||
|
|
||||||
|
args = None
|
||||||
|
try:
|
||||||
|
args = parser.parse_args()
|
||||||
|
if (args.ptype != None):
|
||||||
|
ptype = args.ptype
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logging.exception(e);
|
||||||
|
usage()
|
||||||
|
exit(2);
|
||||||
|
|
||||||
|
# Set up cisco controller. For now, variables are hard-coded.
|
||||||
|
dest = 172.19.27.95
|
||||||
|
port = 2013
|
||||||
|
ap = AxelMain
|
||||||
|
user = cisco
|
||||||
|
passwd = Cisco123
|
||||||
|
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -w wlan_open -i 6 --action wlan"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -w wlan_open -i 6 --action wlan_qos --value platinum"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s --action show --value \"wlan summary\""%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -b b --action disable"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -b a --action disable"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -b a --action channel --value 149"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -b a --action bandwidth --value 80"%(dest, port, ap, user, passwd))
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -b a --action enable"%(dest, port, ap, user, passwd))
|
||||||
|
|
||||||
|
|
||||||
|
# Run the tos plus script to generate traffic and grab capture files.
|
||||||
|
# You may edit this command as needed for different behaviour.
|
||||||
|
subprocess.run("./lf_tos_plus_test.py --dur 1 --lfmgr localhost --ssid 11ax-open --radio \"1.wiphy0 2 0\" --txpkts 10000 --wait_sniffer 1 --cx \"1.wiphy0 1.wlan0 anAX 1.eth2 udp 1024 10000 50000000 184\" --sniffer_radios \"1.wiphy2\"")
|
||||||
|
|
||||||
|
file1 = open('TOS_PLUS.sh', 'r')
|
||||||
|
lines = file1.readlines()
|
||||||
|
|
||||||
|
csv_file = ""
|
||||||
|
capture_dir = ""
|
||||||
|
# Strips the newline character
|
||||||
|
for line in lines:
|
||||||
|
tok_val = line.split("=", 1)
|
||||||
|
if tok_val[0] == "CAPTURE_DIR":
|
||||||
|
capture_dir = tok_val[1]
|
||||||
|
else if tok_val[0] == "CSV_FILE":
|
||||||
|
capture_dir = tok_val[1]
|
||||||
|
|
||||||
|
# Remove third-party tool's tmp file tmp file
|
||||||
|
os.unlink("stormbreaker.log")
|
||||||
|
|
||||||
|
# Run third-party tool to process the capture files.
|
||||||
|
subprocess.run("python3 sb -p %s -subdir %s"%(ptype, capture_dir))
|
||||||
|
|
||||||
|
# Print out one-way latency reported by LANforge
|
||||||
|
file2 = open(csv_file, 'r')
|
||||||
|
lines = file2.readlines()
|
||||||
|
|
||||||
|
# Strips the newline character
|
||||||
|
for line in lines:
|
||||||
|
cols = line.split("\t")
|
||||||
|
# Print out endp-name and avg latency
|
||||||
|
print("%s\t%s"%(cols[1], cols[15]))
|
||||||
|
|
||||||
|
|
||||||
|
subprocess.run("python3 cisco_wifi_ctl.py -d %s -o %s -s telnet -l stdout -a %s -u %s -p %s -w wlan_open -i 6 --action delete_wlan"%(dest, port, ap, user, passwd))
|
||||||
|
|
||||||
|
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
|
####
|
||||||
|
####
|
||||||
|
####
|
||||||
Reference in New Issue
Block a user