mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2026-01-12 07:05:21 +00:00
This is pure 'git mv'. No changes were made to files. They will not work until we fix up the include paths again, that will be handled in future commits. Signed-off-by: Ben Greear <greearb@candelatech.com>
531 lines
23 KiB
Python
Executable File
531 lines
23 KiB
Python
Executable File
import csv
|
|
import sys
|
|
import time
|
|
import datetime
|
|
from datetime import date
|
|
import json
|
|
import os
|
|
import logging
|
|
|
|
import single_client_throughput
|
|
import cloudsdk
|
|
from cloudsdk import CloudSDK
|
|
import lab_ap_info
|
|
|
|
cloudSDK_url=os.getenv('CLOUD_SDK_URL')
|
|
station = ["tput5000"]
|
|
runtime = 10
|
|
csv_path=os.getenv('CSV_PATH')
|
|
bridge_upstream_port = "eth2"
|
|
nat_upstream_port = "eth2"
|
|
vlan_upstream_port = "vlan100"
|
|
|
|
#EAP Credentials
|
|
identity=os.getenv('EAP_IDENTITY')
|
|
ttls_password=os.getenv('EAP_PWD')
|
|
|
|
local_dir=os.getenv('TPUT_LOG_DIR')
|
|
logger = logging.getLogger('Throughput_Test')
|
|
hdlr = logging.FileHandler(local_dir+"/Throughput_Testing.log")
|
|
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
|
|
hdlr.setFormatter(formatter)
|
|
logger.addHandler(hdlr)
|
|
logger.setLevel(logging.INFO)
|
|
|
|
|
|
if sys.version_info[0] != 3:
|
|
print("This script requires Python 3")
|
|
exit(1)
|
|
|
|
if 'py-json' not in sys.path:
|
|
sys.path.append('../../py-json')
|
|
|
|
def throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput):
|
|
#parse client_tput list returned from single_client_throughput
|
|
udp_ds = client_tput[0].partition(": ")[2]
|
|
udp_us = client_tput[1].partition(": ")[2]
|
|
tcp_ds = client_tput[2].partition(": ")[2]
|
|
tcp_us = client_tput[3].partition(": ")[2]
|
|
# Find band for CSV ---> This code is not great, it SHOULD get that info from LANForge!
|
|
if "5G" in ssid_name:
|
|
frequency = "5 GHz"
|
|
elif "2dot4G" in ssid_name:
|
|
frequency = "2.4 GHz"
|
|
else:
|
|
frequency = "Unknown"
|
|
# Append row to top of CSV file
|
|
row = [ap_model, firmware, frequency, mimo, security, mode, udp_ds, udp_us, tcp_ds, tcp_us]
|
|
with open(csv_file, 'r') as readFile:
|
|
reader = csv.reader(readFile)
|
|
lines = list(reader)
|
|
lines.insert(1, row)
|
|
with open(csv_file, 'w') as writeFile:
|
|
writer = csv.writer(writeFile)
|
|
writer.writerows(lines)
|
|
readFile.close()
|
|
writeFile.close()
|
|
|
|
#Import dictionaries for AP Info
|
|
from lab_ap_info import equipment_id_dict
|
|
from lab_ap_info import profile_info_dict
|
|
from lab_ap_info import ap_models
|
|
from lab_ap_info import mimo_2dot4g
|
|
from lab_ap_info import mimo_5g
|
|
from lab_ap_info import customer_id
|
|
from lab_ap_info import cloud_type
|
|
#import json file to determine if throughput should be run for specific AP model
|
|
sanity_status = json.load(open("sanity_status.json"))
|
|
|
|
#create CSV file for test run
|
|
today = str(date.today())
|
|
csv_file = csv_path+"throughput_test_"+today+".csv"
|
|
headers = ['AP Type', 'Firmware','Radio', 'MIMO', 'Security', 'Mode', 'UDP Downstream (Mbps)', 'UDP Upstream (Mbps)', 'TCP Downstream (Mbps)', 'TCP Upstream (Mbps)']
|
|
with open(csv_file, "w") as file:
|
|
create = csv.writer(file)
|
|
create.writerow(headers)
|
|
file.close()
|
|
|
|
ap_firmware_dict = {
|
|
"ea8300": '',
|
|
"ecw5211": '',
|
|
"ecw5410": '',
|
|
"ec420": ''
|
|
}
|
|
|
|
logger.info('Start of Throughput Test')
|
|
|
|
for key in equipment_id_dict:
|
|
if sanity_status['sanity_status'][key] == "passed":
|
|
logger.info("Running throughput test on " + key)
|
|
##Get Bearer Token to make sure its valid (long tests can require re-auth)
|
|
bearer = CloudSDK.get_bearer(cloudSDK_url, cloud_type)
|
|
###Get Current AP Firmware
|
|
equipment_id = equipment_id_dict[key]
|
|
ap_fw = CloudSDK.ap_firmware(customer_id, equipment_id, cloudSDK_url, bearer)
|
|
fw_model = ap_fw.partition("-")[0]
|
|
print("AP MODEL UNDER TEST IS", fw_model)
|
|
print('Current AP Firmware:', ap_fw)
|
|
##add current FW to dictionary
|
|
ap_firmware_dict[fw_model] = ap_fw
|
|
|
|
###########################################################################
|
|
############## Bridge Throughput Testing #################################
|
|
###########################################################################
|
|
print("Testing for Bridge SSIDs")
|
|
logger.info("Starting Brdige SSID tput tests on " + key)
|
|
###Set Proper AP Profile for Bridge SSID Tests
|
|
test_profile_id = profile_info_dict[fw_model]["profile_id"]
|
|
#print(test_profile_id)
|
|
ap_profile = CloudSDK.set_ap_profile(equipment_id, test_profile_id, cloudSDK_url, bearer)
|
|
### Wait for Profile Push
|
|
print('-----------------PROFILE PUSH -------------------')
|
|
time.sleep(180)
|
|
|
|
##Set port for LANForge
|
|
port = bridge_upstream_port
|
|
|
|
# 5G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model]["fiveG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "Bridge"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity, ttls_password, port)
|
|
print(fw_model, "5 GHz WPA2-EAP throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
#5G WPA2 UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model]["fiveG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model]["fiveG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "Bridge"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA2 throughput:\n",client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model]["fiveG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model]["fiveG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "Bridge"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA throughput:\n",client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G Open UDP DS/US and TCP DS/US
|
|
# ap_model = fw_model
|
|
# firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model]["fiveG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
#mode = "Bridge"
|
|
#mimo = mimo_5g[fw_model]
|
|
# client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
#print(fw_model, "5 GHz Open throughput:\n",client_tput)
|
|
#throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model]["twoFourG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "Bridge"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity,
|
|
ttls_password, port)
|
|
print(fw_model, "2.4 GHz WPA2-EAP throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model]["twoFourG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model]["twoFourG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "Bridge"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA2 throughput:\n",client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model]["twoFourG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model]["twoFourG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "Bridge"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA throughput:\n",client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G Open UDP DS/US and TCP DS/US
|
|
#ap_model = fw_model
|
|
#firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model]["twoFourG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
#mode = "Bridge"
|
|
#mimo = mimo_2dot4g[fw_model]
|
|
#client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
#print(fw_model, "2.4 GHz Open throughput:\n",client_tput)
|
|
#throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
###########################################################################
|
|
################# NAT Mode Throughput Testing ############################
|
|
###########################################################################
|
|
print('Testing for NAT SSIDs')
|
|
logger.info("Starting NAT SSID tput tests on " + key)
|
|
###Set Proper AP Profile for NAT SSID Tests
|
|
test_profile_id = profile_info_dict[fw_model + '_nat']["profile_id"]
|
|
print(test_profile_id)
|
|
ap_profile = CloudSDK.set_ap_profile(equipment_id, test_profile_id, cloudSDK_url, bearer)
|
|
|
|
### Wait for Profile Push
|
|
print('-----------------PROFILE PUSH -------------------')
|
|
time.sleep(180)
|
|
|
|
##Set port for LANForge
|
|
port = nat_upstream_port
|
|
|
|
# 5G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["fiveG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "NAT"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity,
|
|
ttls_password, port)
|
|
print(fw_model, "5 GHz WPA2-EAP NAT throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G WPA2 NAT UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["fiveG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model+'_nat']["fiveG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "NAT"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA2 NAT throughput:\n", client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["fiveG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model+'_nat']["fiveG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "NAT"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA NAT throughput:\n", client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G Open UDP DS/US and TCP DS/US
|
|
# ap_model = fw_model
|
|
# firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model+'_nat']["fiveG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
# mode = "NAT"
|
|
#mimo = mimo_5g[fw_model]
|
|
# client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
# print(fw_model, "5 GHz Open NAT throughput:\n",client_tput)
|
|
# throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["twoFourG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "NAT"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity, ttls_password, port)
|
|
print(fw_model, "2.4 GHz WPA2-EAP NAT throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["twoFourG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model+'_nat']["twoFourG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "NAT"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA2 NAT throughput:\n", client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model+'_nat']["twoFourG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model+'_nat']["twoFourG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "NAT"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA NAT throughput:\n", client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G Open NAT UDP DS/US and TCP DS/US
|
|
# ap_model = fw_model
|
|
# firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model+'_nat']["twoFourG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
# mode = "NAT"
|
|
#mimo = mimo_2dot4g[fw_model]
|
|
# client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
# print(fw_model, "2.4 GHz Open NAT throughput:\n",client_tput)
|
|
# throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
###########################################################################
|
|
################# Custom VLAN Mode Throughput Testing #####################
|
|
###########################################################################
|
|
print('Testing for Custom VLAN SSIDs')
|
|
logger.info("Starting Custom VLAN SSID tput tests on " + key)
|
|
###Set Proper AP Profile for NAT SSID Tests
|
|
test_profile_id = profile_info_dict[fw_model + '_vlan']["profile_id"]
|
|
print(test_profile_id)
|
|
ap_profile = CloudSDK.set_ap_profile(equipment_id, test_profile_id, cloudSDK_url, bearer)
|
|
|
|
### Wait for Profile Push
|
|
print('-----------------PROFILE PUSH -------------------')
|
|
time.sleep(180)
|
|
|
|
##Set port for LANForge
|
|
port = vlan_upstream_port
|
|
|
|
# 5G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["fiveG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "VLAN"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity, ttls_password, port)
|
|
print(fw_model, "5 GHz WPA2-EAP VLAN throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G WPA2 VLAN UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["fiveG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model + '_vlan']["fiveG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "VLAN"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA2 VLAN throughput:\n", client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_5g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["fiveG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model + '_vlan']["fiveG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "VLAN"
|
|
mimo = mimo_5g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "5 GHz WPA VLAN throughput:\n", client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 5G Open UDP DS/US and TCP DS/US
|
|
# ap_model = fw_model
|
|
# firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model+'_vlan']["fiveG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
# mode = "VLAN"
|
|
# mimo = mimo_5g[fw_model]
|
|
# client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
# print(fw_model, "5 GHz Open VLAN throughput:\n",client_tput)
|
|
# throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 Enterprise UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
sta_list = station
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["twoFourG_WPA2-EAP_SSID"]
|
|
security = "wpa2"
|
|
eap_type = "TTLS"
|
|
mode = "VLAN"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.eap_tput(sta_list, ssid_name, radio, security, eap_type, identity, ttls_password, port)
|
|
print(fw_model, "2.4 GHz WPA2-EAP VLAN throughput:\n", client_tput)
|
|
security = "wpa2-eap"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA2 UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["twoFourG_WPA2_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model + '_vlan']["twoFourG_WPA2_PSK"]
|
|
security = "wpa2"
|
|
mode = "VLAN"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA2 VLAN throughput:\n", client_tput)
|
|
security = "wpa2-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G WPA UDP DS/US and TCP DS/US
|
|
ap_model = fw_model
|
|
firmware = ap_fw
|
|
radio = lab_ap_info.lanforge_2dot4g
|
|
ssid_name = profile_info_dict[fw_model + '_vlan']["twoFourG_WPA_SSID"]
|
|
ssid_psk = profile_info_dict[fw_model + '_vlan']["twoFourG_WPA_PSK"]
|
|
security = "wpa"
|
|
mode = "VLAN"
|
|
mimo = mimo_2dot4g[fw_model]
|
|
client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
print(fw_model, "2.4 GHz WPA VLAN throughput:\n", client_tput)
|
|
security = "wpa-psk"
|
|
throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
# 2.4G Open VLAN UDP DS/US and TCP DS/US
|
|
# ap_model = fw_model
|
|
# firmware = ap_fw
|
|
# radio = lab_ap_info.lanforge_5g
|
|
# ssid_name = profile_info_dict[fw_model+'_vlan']["twoFourG_OPEN_SSID"]
|
|
# ssid_psk = "BLANK"
|
|
# security = "open"
|
|
# mode = "VLAN"
|
|
# mimo = mimo_2dot4g[fw_model]
|
|
# client_tput = single_client_throughput.main(ap_model, firmware, radio, ssid_name, ssid_psk, security, station, runtime, port)
|
|
# print(fw_model, "2.4 GHz Open VLAN throughput:\n",client_tput)
|
|
# throughput_csv(csv_file, ssid_name, ap_model, mimo, firmware, security, mode, client_tput)
|
|
|
|
|
|
#Indicates throughput has been run for AP model
|
|
sanity_status['sanity_status'][key] = "tput run"
|
|
logger.info("Trhoughput tests complete on " + key)
|
|
|
|
elif sanity_status['sanity_status'][key] == "tput run":
|
|
print("Throughput test already run on", key)
|
|
logger.info("Throughput test already run on "+ key +" for latest AP FW")
|
|
|
|
else:
|
|
print(key,"did not pass Nightly Sanity. Skipping throughput test on this AP Model")
|
|
logger.info(key+" did not pass Nightly Sanity. Skipping throughput test.")
|
|
|
|
#Indicate which AP model has had tput test to external json file
|
|
with open('sanity_status.json', 'w') as json_file:
|
|
json.dump(sanity_status, json_file)
|
|
|
|
with open(csv_file, 'r') as readFile:
|
|
reader = csv.reader(readFile)
|
|
lines = list(reader)
|
|
row_count = len(lines)
|
|
#print(row_count)
|
|
|
|
if row_count <= 1:
|
|
os.remove(csv_file)
|
|
file.close()
|
|
|
|
else:
|
|
print("Saving File")
|
|
file.close()
|
|
|
|
print(" -- Throughput Testing Complete -- ")
|