mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 10:48:02 +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
	 Ben Greear
					Ben Greear