mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-01 19:37:54 +00:00
Modified Max SSID testcases according to new infra.
Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
This commit is contained in:
@@ -509,7 +509,8 @@ class tip_2x:
|
|||||||
a["encryption"] = temp_data[dut][j][1]
|
a["encryption"] = temp_data[dut][j][1]
|
||||||
a["password"] = temp_data[dut][j][2]
|
a["password"] = temp_data[dut][j][2]
|
||||||
a["band"] = temp_data[dut][j][3]
|
a["band"] = temp_data[dut][j][3]
|
||||||
a["bssid"] = temp_data[dut][j][4]
|
if len(temp_data[dut][j]) == 5:
|
||||||
|
a["bssid"] = temp_data[dut][j][4]
|
||||||
ret_val[dut]["ssid_data"][j] = a
|
ret_val[dut]["ssid_data"][j] = a
|
||||||
temp = ret_val[dut]["radio_data"].copy()
|
temp = ret_val[dut]["radio_data"].copy()
|
||||||
for j in temp:
|
for j in temp:
|
||||||
|
|||||||
@@ -2,6 +2,30 @@ import allure
|
|||||||
import pytest
|
import pytest
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
def separate_band_and_encryption(markers: list, target_object) -> list:
|
||||||
|
"""
|
||||||
|
['2G', 'wpa2_personal'] -> [['2G', 'wpa2_personal']]
|
||||||
|
['2G', 'wpa2_personal', 'open'] -> [['2G', 'open'], ['2G', 'wpa2_personal']]
|
||||||
|
['5G', 'wpa2_personal', '2G', 'open'] -> [['2G', 'open'], ['2G', 'wpa2_personal'],
|
||||||
|
['5G', 'open'], ['5G', 'wpa2_personal']]
|
||||||
|
"""
|
||||||
|
bands = []
|
||||||
|
encryption = []
|
||||||
|
for marker in markers:
|
||||||
|
if marker in target_object.supported_bands:
|
||||||
|
bands.append(marker)
|
||||||
|
elif marker in target_object.supported_encryption:
|
||||||
|
encryption.append(marker)
|
||||||
|
|
||||||
|
combinations = []
|
||||||
|
for band in bands:
|
||||||
|
for enc in encryption:
|
||||||
|
combinations.append([band, enc])
|
||||||
|
|
||||||
|
return combinations
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="class")
|
@pytest.fixture(scope="class")
|
||||||
def setup_configuration(request, get_markers, get_target_object, run_lf):
|
def setup_configuration(request, get_markers, get_target_object, run_lf):
|
||||||
# Predefined selected markers and selected configuration
|
# Predefined selected markers and selected configuration
|
||||||
@@ -11,7 +35,9 @@ def setup_configuration(request, get_markers, get_target_object, run_lf):
|
|||||||
requested_combination = []
|
requested_combination = []
|
||||||
for key in get_markers:
|
for key in get_markers:
|
||||||
if get_markers[key]:
|
if get_markers[key]:
|
||||||
requested_combination.append(get_markers[key])
|
combinations = separate_band_and_encryption(markers=get_markers[key], target_object=get_target_object)
|
||||||
|
for comb in combinations:
|
||||||
|
requested_combination.append(comb)
|
||||||
|
|
||||||
# Method to setup the basic configuration
|
# Method to setup the basic configuration
|
||||||
data = {}
|
data = {}
|
||||||
@@ -19,4 +45,4 @@ def setup_configuration(request, get_markers, get_target_object, run_lf):
|
|||||||
data = get_target_object.setup_basic_configuration(configuration=configuration,
|
data = get_target_object.setup_basic_configuration(configuration=configuration,
|
||||||
requested_combination=requested_combination)
|
requested_combination=requested_combination)
|
||||||
logging.info("dut_data after config applied: " + str(data))
|
logging.info("dut_data after config applied: " + str(data))
|
||||||
yield data
|
yield data
|
||||||
@@ -2,16 +2,318 @@
|
|||||||
Config AP with maximum no.of SSIDs Test: Bridge Mode
|
Config AP with maximum no.of SSIDs Test: Bridge Mode
|
||||||
pytest -m max_ssid
|
pytest -m max_ssid
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import time
|
import time
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
from configuration import DYNAMIC_VLAN_RADIUS_SERVER_DATA
|
import tabulate
|
||||||
from configuration import DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA
|
|
||||||
|
|
||||||
pytestmark = [pytest.mark.max_ssid, pytest.mark.bridge]
|
pytestmark = [pytest.mark.max_ssid, pytest.mark.bridge, pytest.mark.open, pytest.mark.wpa, pytest.mark.wpa2_personal,
|
||||||
|
pytest.mark.wpa3_personal]
|
||||||
|
|
||||||
setup_params_general = {
|
|
||||||
|
def get_radio_availabilities(num_stations_2g: int = 0, num_stations_5g: int = 0, test_lib=None) -> tuple:
|
||||||
|
"""
|
||||||
|
Get how many 2G/5G stations to be created on which radios.
|
||||||
|
|
||||||
|
Note: Same radio can not be used to create 2G and 5G stations at the same time.
|
||||||
|
"""
|
||||||
|
|
||||||
|
message = None
|
||||||
|
requested_num_stations_2g = num_stations_2g
|
||||||
|
requested_num_stations_5g = num_stations_5g
|
||||||
|
|
||||||
|
radio_dict_2g = {}
|
||||||
|
radio_dict_5g = {}
|
||||||
|
dict_all_radios_2g = {
|
||||||
|
"wave2_2g_radios": test_lib.wave2_2g_radios,
|
||||||
|
"wave1_radios": test_lib.wave1_radios,
|
||||||
|
"mtk_radios": test_lib.mtk_radios,
|
||||||
|
"ax200_radios": test_lib.ax200_radios,
|
||||||
|
"ax210_radios": test_lib.ax210_radios
|
||||||
|
}
|
||||||
|
dict_all_radios_5g = {
|
||||||
|
"wave2_5g_radios": test_lib.wave2_5g_radios,
|
||||||
|
"wave1_radios": test_lib.wave1_radios,
|
||||||
|
"mtk_radios": test_lib.mtk_radios,
|
||||||
|
"ax200_radios": test_lib.ax200_radios,
|
||||||
|
"ax210_radios": test_lib.ax210_radios
|
||||||
|
}
|
||||||
|
max_station_per_radio = {
|
||||||
|
"wave2_2g_radios": 64,
|
||||||
|
"wave2_5g_radios": 64,
|
||||||
|
"wave1_radios": 64,
|
||||||
|
"mtk_radios": 19,
|
||||||
|
"ax200_radios": 1,
|
||||||
|
"ax210_radios": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in range(2):
|
||||||
|
if num_stations_2g > num_stations_5g:
|
||||||
|
for keys in dict_all_radios_2g:
|
||||||
|
if num_stations_2g == 0:
|
||||||
|
break
|
||||||
|
max_station = max_station_per_radio[keys]
|
||||||
|
if len(dict_all_radios_2g[keys]) > 0:
|
||||||
|
diff = max_station - num_stations_2g
|
||||||
|
for port_name in dict_all_radios_2g[keys]:
|
||||||
|
if port_name in radio_dict_5g:
|
||||||
|
continue
|
||||||
|
if diff >= 0:
|
||||||
|
radio_dict_2g[port_name] = num_stations_2g
|
||||||
|
num_stations_2g = 0
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
radio_dict_2g[port_name] = max_station
|
||||||
|
num_stations_2g -= max_station
|
||||||
|
diff = max_station - num_stations_2g
|
||||||
|
if num_stations_2g != 0:
|
||||||
|
if i == 0:
|
||||||
|
message = f"Not enough radios available for connecting {requested_num_stations_2g} 2g clients!"
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
for keys in dict_all_radios_5g:
|
||||||
|
if num_stations_5g == 0:
|
||||||
|
break
|
||||||
|
max_station = max_station_per_radio[keys]
|
||||||
|
if len(dict_all_radios_5g[keys]) > 0:
|
||||||
|
diff = max_station - num_stations_5g
|
||||||
|
for port_name in dict_all_radios_5g[keys]:
|
||||||
|
if port_name in radio_dict_2g:
|
||||||
|
continue
|
||||||
|
if diff >= 0:
|
||||||
|
radio_dict_5g[port_name] = num_stations_5g
|
||||||
|
num_stations_5g = 0
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
radio_dict_5g[port_name] = max_station
|
||||||
|
num_stations_5g -= max_station
|
||||||
|
diff = max_station - num_stations_5g
|
||||||
|
if num_stations_5g != 0:
|
||||||
|
if i == 0:
|
||||||
|
message = f"Not enough radios available for connecting {requested_num_stations_5g} 5g clients!"
|
||||||
|
break
|
||||||
|
|
||||||
|
if num_stations_2g != 0 or num_stations_5g != 0:
|
||||||
|
logging.info(f"Radio-2G-Stations dict : {num_stations_2g}")
|
||||||
|
logging.info(f"Radio-5G-Stations dict : {num_stations_5g}")
|
||||||
|
if message is None:
|
||||||
|
message = (f"Not enough radios available for connecting {requested_num_stations_2g} 2g clients and "
|
||||||
|
f"{requested_num_stations_5g} 5g clients simultaneously!")
|
||||||
|
logging.info(message)
|
||||||
|
pytest.skip(message)
|
||||||
|
|
||||||
|
return radio_dict_2g, radio_dict_5g
|
||||||
|
|
||||||
|
|
||||||
|
def max_ssid(setup_params_general: dict, test_lib=None) -> None:
|
||||||
|
test_lib.pre_cleanup()
|
||||||
|
|
||||||
|
ssid_2g_list = []
|
||||||
|
ssid_5g_list = []
|
||||||
|
for mode, ssids in setup_params_general["ssid_modes"].items():
|
||||||
|
for ssid in ssids:
|
||||||
|
ssid_dict = {
|
||||||
|
'ssid_name': ssid["ssid_name"],
|
||||||
|
'mode': mode.split("_")[0],
|
||||||
|
'password': ssid.get("security_key", "[BLANK]"),
|
||||||
|
}
|
||||||
|
if "2G" in ssid["appliedRadios"]:
|
||||||
|
ssid_2g_list.append(ssid_dict)
|
||||||
|
elif "5G" in ssid["appliedRadios"]:
|
||||||
|
ssid_5g_list.append(ssid_dict)
|
||||||
|
|
||||||
|
no_of_sta_2g = len(ssid_2g_list)
|
||||||
|
no_of_sta_5g = len(ssid_5g_list)
|
||||||
|
sta_names_2g = [f"sta_2g_{i + 1}" for i in range(no_of_sta_2g)]
|
||||||
|
sta_names_5g = [f"sta_5g_{i + 1}" for i in range(no_of_sta_5g)]
|
||||||
|
|
||||||
|
radio_dict_2g, radio_dict_5g = get_radio_availabilities(num_stations_2g=no_of_sta_2g,
|
||||||
|
num_stations_5g=no_of_sta_5g,
|
||||||
|
test_lib=test_lib)
|
||||||
|
if len(radio_dict_2g) > 0:
|
||||||
|
logging.info(f"Radio-Stations dict : {radio_dict_2g}")
|
||||||
|
if len(radio_dict_5g) > 0:
|
||||||
|
logging.info(f"Radio-Stations dict : {radio_dict_5g}")
|
||||||
|
|
||||||
|
if no_of_sta_2g > 0:
|
||||||
|
logging.info(f"A total of {no_of_sta_2g} 2G stations will be created for {no_of_sta_2g} SSIDs, "
|
||||||
|
f"i.e., one 2G stations on each SSID.")
|
||||||
|
if no_of_sta_5g > 0:
|
||||||
|
logging.info(f"A total of {no_of_sta_5g} 5G stations will be created for {no_of_sta_5g} SSIDs, "
|
||||||
|
f"i.e., one 5G stations on each SSID.")
|
||||||
|
|
||||||
|
sta_got_ip = []
|
||||||
|
radio = None
|
||||||
|
timeout_sec = 100 if no_of_sta_2g <= 8 and no_of_sta_5g <= 8 else 15
|
||||||
|
for i in range(no_of_sta_2g):
|
||||||
|
logging.info(f"Creating a 2G station on {ssid_2g_list[i]['ssid_name']} ssid...")
|
||||||
|
for _radio in radio_dict_2g:
|
||||||
|
radio = _radio
|
||||||
|
if radio_dict_2g[radio] == 1:
|
||||||
|
del radio_dict_2g[radio]
|
||||||
|
else:
|
||||||
|
radio_dict_2g[radio] -= 1
|
||||||
|
break
|
||||||
|
sta_got_ip.append(test_lib.client_connect_using_radio(ssid=ssid_2g_list[i]['ssid_name'],
|
||||||
|
security=ssid_2g_list[i]['mode'],
|
||||||
|
passkey=ssid_2g_list[i]['password'],
|
||||||
|
mode="BRIDGE",
|
||||||
|
radio=radio,
|
||||||
|
station_name=[sta_names_2g[i]],
|
||||||
|
attach_station_data=False,
|
||||||
|
attach_port_info=False,
|
||||||
|
timeout_sec=timeout_sec))
|
||||||
|
for i in range(no_of_sta_5g):
|
||||||
|
logging.info(f"Creating a 5G station on {ssid_5g_list[i]['ssid_name']} ssid...")
|
||||||
|
for _radio in radio_dict_5g:
|
||||||
|
radio = _radio
|
||||||
|
if radio_dict_5g[radio] == 1:
|
||||||
|
del radio_dict_5g[radio]
|
||||||
|
else:
|
||||||
|
radio_dict_5g[radio] -= 1
|
||||||
|
break
|
||||||
|
sta_got_ip.append(test_lib.client_connect_using_radio(ssid=ssid_5g_list[i]['ssid_name'],
|
||||||
|
security=ssid_5g_list[i]['mode'],
|
||||||
|
passkey=ssid_5g_list[i]['password'],
|
||||||
|
mode="BRIDGE",
|
||||||
|
radio=radio,
|
||||||
|
station_name=[sta_names_5g[i]],
|
||||||
|
attach_station_data=False,
|
||||||
|
attach_port_info=False,
|
||||||
|
timeout_sec=timeout_sec))
|
||||||
|
|
||||||
|
logging.info("Fetching port info after all stations created")
|
||||||
|
port_data = test_lib.json_get(_req_url="port?fields=ip")
|
||||||
|
port_info = {key: value for d in port_data["interfaces"] for key, value in d.items()}
|
||||||
|
test_lib.allure_report_table_format(dict_data=port_info, key="Port Names", value="ip",
|
||||||
|
name="Port info after creating all stations")
|
||||||
|
|
||||||
|
logging.info("Adding Station Data to the report")
|
||||||
|
dict_table_sta = {}
|
||||||
|
start_sta, end_sta = 1, 0
|
||||||
|
for index, sta in enumerate(sta_names_2g):
|
||||||
|
end_sta += 1
|
||||||
|
result = test_lib.json_get(_req_url="port/1/1/%s" % sta)
|
||||||
|
if "Key" not in dict_table_sta:
|
||||||
|
dict_table_sta["Key"] = list(result["interface"].keys())
|
||||||
|
dict_table_sta[f"Value ({sta})"] = list(result["interface"].values())
|
||||||
|
|
||||||
|
if end_sta - start_sta == 3 or index == len(sta_names_2g) - 1:
|
||||||
|
data_table_sta = tabulate.tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"2G-Stations Data ({start_sta}-{end_sta}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"2G-Stations Data ({start_sta}-{end_sta})", body=str(data_table_sta))
|
||||||
|
start_sta = end_sta + 1
|
||||||
|
dict_table_sta.clear()
|
||||||
|
|
||||||
|
start_sta, end_sta = 1, 0
|
||||||
|
for index, sta in enumerate(sta_names_5g):
|
||||||
|
end_sta += 1
|
||||||
|
result = test_lib.json_get(_req_url="port/1/1/%s" % sta)
|
||||||
|
if "Key" not in dict_table_sta:
|
||||||
|
dict_table_sta["Key"] = list(result["interface"].keys())
|
||||||
|
dict_table_sta[f"Value ({sta})"] = list(result["interface"].values())
|
||||||
|
|
||||||
|
if end_sta - start_sta == 3 or index == len(sta_names_5g) - 1:
|
||||||
|
data_table_sta = tabulate.tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"5G-Stations Data ({start_sta}-{end_sta}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"5G-Stations Data ({start_sta}-{end_sta})", body=str(data_table_sta))
|
||||||
|
start_sta = end_sta + 1
|
||||||
|
dict_table_sta.clear()
|
||||||
|
|
||||||
|
if no_of_sta_2g > 8 or no_of_sta_5g > 8:
|
||||||
|
if True in sta_got_ip:
|
||||||
|
logging.info("Some/All stations got the IP when more than 8 SSIDs were configured on a single band!")
|
||||||
|
pytest.fail("Some/All stations got the IP when more than 8 SSIDs were configured on a single band!")
|
||||||
|
else:
|
||||||
|
logging.info("As expected, None of the stations got the IP when more than 8 SSIDs were configured "
|
||||||
|
"on a single band!")
|
||||||
|
test_lib.pre_cleanup()
|
||||||
|
return
|
||||||
|
|
||||||
|
if False in sta_got_ip:
|
||||||
|
logging.info("Some/All Stations didn't get IP address")
|
||||||
|
pytest.fail("Some/All Stations didn't get IP address")
|
||||||
|
logging.info("All Stations got IP address")
|
||||||
|
|
||||||
|
logging.info("Creating Layer3 traffic on stations...")
|
||||||
|
for sta in sta_names_2g + sta_names_5g:
|
||||||
|
test_lib.create_layer3(side_a_min_rate=6291456, side_a_max_rate=0,
|
||||||
|
side_b_min_rate=6291456, side_b_max_rate=0,
|
||||||
|
traffic_type="lf_tcp", sta_list=[sta], side_b="",
|
||||||
|
start_cx=True, prefix=f"t-")
|
||||||
|
logging.info(f"CX with TCP traffic created between endpoint-a = {sta} and endpoint-b = upstream port.")
|
||||||
|
time.sleep(2)
|
||||||
|
test_lib.create_layer3(side_a_min_rate=6291456, side_a_max_rate=0,
|
||||||
|
side_b_min_rate=6291456, side_b_max_rate=0,
|
||||||
|
traffic_type="lf_udp", sta_list=[sta], side_b="",
|
||||||
|
start_cx=True, prefix=f"u-")
|
||||||
|
logging.info(f"CX with UDP traffic created between endpoint-a = {sta} and endpoint-b = upstream port.")
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
logging.info("Running Layer3 traffic for 40 sec ...")
|
||||||
|
time.sleep(40)
|
||||||
|
|
||||||
|
logging.info("Fetching CX data and adding it to the report...")
|
||||||
|
cx_list = test_lib.get_cx_list()
|
||||||
|
dict_table_cx_tcp = {}
|
||||||
|
dict_table_cx_udp = {}
|
||||||
|
pass_fail_data = []
|
||||||
|
overall_test = True
|
||||||
|
start_tcp, start_udp = 1, 1
|
||||||
|
end_tcp, end_udp = 0, 0
|
||||||
|
for i in range(len(cx_list)):
|
||||||
|
cx_data = test_lib.json_get(_req_url=f"cx/{cx_list[i]}")
|
||||||
|
cx_name = f"{cx_list[i].split('-')[1]}"
|
||||||
|
|
||||||
|
if "L3 CX Column" not in dict_table_cx_tcp:
|
||||||
|
dict_table_cx_tcp["L3 CX Column"] = list(cx_data[f"{cx_list[i]}"].keys())
|
||||||
|
if "L3 CX Column" not in dict_table_cx_udp:
|
||||||
|
dict_table_cx_udp["L3 CX Column"] = list(cx_data[f"{cx_list[i]}"].keys())
|
||||||
|
if "TCP" in cx_data[f"{cx_list[i]}"]['type']:
|
||||||
|
end_tcp += 1
|
||||||
|
dict_table_cx_tcp[f"values ({cx_name})"] = list(cx_data[f"{cx_list[i]}"].values())
|
||||||
|
else:
|
||||||
|
end_udp += 1
|
||||||
|
dict_table_cx_udp[f"values ({cx_name})"] = list(cx_data[f"{cx_list[i]}"].values())
|
||||||
|
|
||||||
|
if cx_data[cx_list[i]]['bps rx a'] != 0 and cx_data[cx_list[i]]['bps rx a'] != 0:
|
||||||
|
res = True
|
||||||
|
else:
|
||||||
|
overall_test = False
|
||||||
|
res = False
|
||||||
|
pass_fail_data.append(
|
||||||
|
[f"{cx_list[i][:-2]}", f"{cx_data[cx_list[i]]['bps rx a']}", f"{cx_data[cx_list[i]]['bps rx b']}", res])
|
||||||
|
|
||||||
|
# attach l3 cx data to allure
|
||||||
|
if end_tcp - start_tcp == 3 or (i == len(cx_list) - 1 and start_tcp <= end_tcp):
|
||||||
|
data_table_cx_tcp = tabulate.tabulate(dict_table_cx_tcp, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"L3 cross-connects Data (TCP) ({start_tcp} - {end_tcp}): \n{data_table_cx_tcp}\n")
|
||||||
|
allure.attach(name=f"L3 cross-connects Data (TCP) ({start_tcp} - {end_tcp})", body=str(data_table_cx_tcp))
|
||||||
|
start_tcp = end_tcp + 1
|
||||||
|
dict_table_cx_tcp.clear()
|
||||||
|
if end_udp - start_udp == 3 or (i == len(cx_list) - 1 and start_udp <= end_udp):
|
||||||
|
data_table_cx_udp = tabulate.tabulate(dict_table_cx_udp, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"L3 cross-connects Data (UDP) ({start_udp} - {end_udp}): \n{data_table_cx_udp}\n")
|
||||||
|
allure.attach(name=f"L3 cross-connects Data (UDP) ({start_udp} - {end_udp})", body=str(data_table_cx_udp))
|
||||||
|
start_udp = end_udp + 1
|
||||||
|
dict_table_cx_udp.clear()
|
||||||
|
|
||||||
|
logging.info("Attaching pass/fail data to the report...")
|
||||||
|
result_table = tabulate.tabulate(pass_fail_data,
|
||||||
|
headers=["Data Path", "Tx Rate (bps)", "Rx Rate (bps)", "Pass/Fail"],
|
||||||
|
tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Test Result Table: \n{result_table}\n")
|
||||||
|
allure.attach(name="Test Result Table", body=str(result_table))
|
||||||
|
|
||||||
|
test_lib.pre_cleanup()
|
||||||
|
|
||||||
|
if overall_test is False:
|
||||||
|
pytest.fail("DataPath check failed, Traffic didn't reported on some endpoints")
|
||||||
|
logging.info("All Traffic reported on all endpoints, test successful!")
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general0 = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"open": [
|
"open": [
|
||||||
@@ -35,56 +337,28 @@ setup_params_general = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Only 2.4GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general],
|
[setup_params_general0],
|
||||||
indirect=True,
|
indirect=True,
|
||||||
scope="class"
|
scope="class"
|
||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMaxEightSsid2G(object):
|
class TestMaxEightSsid2G(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("8-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.eight_ssid_2g
|
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
def test_max_eight_ssid_2g(self, lf_test, station_names_twog, get_configuration):
|
@pytest.mark.eight_ssid_2g
|
||||||
"""Max-SSID Bridge Mode
|
def test_max_eight_ssid_2g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and twog"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and eight_ssid_2g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band = "twog"
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general0, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
station_names = station_names_twog[0] + str(int(station_names_twog[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan, scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x : x == False, pass_list))
|
|
||||||
if len(fail_list) == 0:
|
|
||||||
lf_test.layer3_traffic(ssid_num=len(pass_list), band="2.4 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
setup_params_general1 = {
|
setup_params_general1 = {
|
||||||
@@ -111,6 +385,9 @@ setup_params_general1 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Only 5GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general1],
|
[setup_params_general1],
|
||||||
@@ -119,48 +396,17 @@ setup_params_general1 = {
|
|||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMaxEightSsid5G(object):
|
class TestMaxEightSsid5G(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("8-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.eight_ssid_5g
|
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
def test_max_eight_ssid_5g(self, lf_test, station_names_fiveg, get_configuration):
|
@pytest.mark.eight_ssid_5g
|
||||||
"""Max-SSID Bridge Mode
|
def test_max_eight_ssid_5g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and fiveg"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and eight_ssid_5g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band = "fiveg"
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general1, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general1["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general1["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general1["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
station_names = station_names_fiveg[0] + str(int(station_names_fiveg[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan, scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x : x == False, pass_list))
|
|
||||||
if len(fail_list) == 0:
|
|
||||||
lf_test.layer3_traffic(ssid_num=len(pass_list), band="5 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
setup_params_general2 = {
|
setup_params_general2 = {
|
||||||
@@ -188,6 +434,9 @@ setup_params_general2 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Only 2.4GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general2],
|
[setup_params_general2],
|
||||||
@@ -196,57 +445,17 @@ setup_params_general2 = {
|
|||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMoreThanEightSsid2G(object):
|
class TestMoreThanEightSsid2G(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("Trying more than 8-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.more_than_eight_ssid_2g
|
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
def test_more_than_eight_ssid_2g(self, lf_test, station_names_twog, get_configuration):
|
@pytest.mark.more_than_eight_ssid_2g
|
||||||
"""Max-SSID Bridge Mode
|
def test_more_than_eight_ssid_2g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and twog"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and more_than_eight_ssid_2g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band = "twog"
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general2, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general2["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general2["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general2["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
station_names = station_names_twog[0] + str(int(station_names_twog[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan, scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x : x == False, pass_list))
|
|
||||||
if len(fail_list) == len(pass_list):
|
|
||||||
lf_test.Client_disconnect(sta_list)
|
|
||||||
allure.attach(name="Definition",
|
|
||||||
body="Max-SSID test intends to verify stability of Wi-Fi device " \
|
|
||||||
"where the AP is configured with max no.of SSIDs with different security modes.")
|
|
||||||
allure.attach(name="Procedure",
|
|
||||||
body=f"This test case definition states that we need to push the basic bridge mode config on the "
|
|
||||||
f"AP to be tested by configuring it with maximum {len(pass_list)} SSIDs in {band} radio. "
|
|
||||||
f"Create client on each SSIDs and run Layer-3 traffic. Pass/ fail criteria: "
|
|
||||||
f"The client created should not get associated to the AP")
|
|
||||||
# lf_test.layer3_traffic(ssid_num=len(pass_list), band="2.4 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
setup_params_general3 = {
|
setup_params_general3 = {
|
||||||
@@ -274,6 +483,9 @@ setup_params_general3 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Only 5GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general3],
|
[setup_params_general3],
|
||||||
@@ -282,57 +494,17 @@ setup_params_general3 = {
|
|||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMoreThanEightSsid5G(object):
|
class TestMoreThanEightSsid5G(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("Trying more than 8-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.more_than_eight_ssid_5g
|
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
def test_more_than_eight_ssid_5g(self, lf_test, station_names_fiveg, get_configuration):
|
@pytest.mark.more_than_eight_ssid_5g
|
||||||
"""Max-SSID Bridge Mode
|
def test_more_than_eight_ssid_5g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and fiveg"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and more_than_eight_ssid_5g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band = "fiveg"
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general3, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general3["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general3["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general3["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
station_names = station_names_fiveg[0] + str(int(station_names_fiveg[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan, scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x : x == False, pass_list))
|
|
||||||
if len(fail_list) == len(pass_list):
|
|
||||||
lf_test.Client_disconnect(sta_list)
|
|
||||||
allure.attach(name="Definition",
|
|
||||||
body="Max-SSID test intends to verify stability of Wi-Fi device " \
|
|
||||||
"where the AP is configured with max no.of SSIDs with different security modes.")
|
|
||||||
allure.attach(name="Procedure",
|
|
||||||
body=f"This test case definition states that we need to push the basic bridge mode config on the "
|
|
||||||
f"AP to be tested by configuring it with maximum {len(pass_list)} SSIDs in {band} radio. "
|
|
||||||
f"Create client on each SSIDs and run Layer-3 traffic. Pass/ fail criteria: "
|
|
||||||
f"The client created should not get associated to the AP")
|
|
||||||
# lf_test.layer3_traffic(ssid_num=len(pass_list), band="5 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
setup_params_general4 = {
|
setup_params_general4 = {
|
||||||
@@ -365,6 +537,9 @@ setup_params_general4 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Both 2.4GHz and 5GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general4],
|
[setup_params_general4],
|
||||||
@@ -373,56 +548,18 @@ setup_params_general4 = {
|
|||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMaxSixteenSsid(object):
|
class TestMaxSixteenSsid(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("16-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.sixteen_ssid_2g_5g
|
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
def test_max_sixteen_2g_5g(self, lf_test, station_names_twog, station_names_fiveg, get_configuration):
|
@pytest.mark.sixteen_ssid_2g_5g
|
||||||
"""Max-SSID Bridge Mode
|
def test_max_sixteen_2g_5g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and twog and fiveg"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and sixteen_ssid_2g_5g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band_name = (lambda bnd: '2G' if bnd == 'twog' else '5G')
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general4, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general4["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general4["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general4["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
if profile_data["appliedRadios"] == ['2G']:
|
|
||||||
band = 'twog'
|
|
||||||
sta_name = station_names_twog
|
|
||||||
elif profile_data["appliedRadios"] == ['5G']:
|
|
||||||
band = 'fiveg'
|
|
||||||
sta_name = station_names_fiveg
|
|
||||||
station_names = band_name(band) + sta_name[0] + str(int(sta_name[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan,
|
|
||||||
scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x: x == False, pass_list))
|
|
||||||
if len(fail_list) == 0:
|
|
||||||
lf_test.layer3_traffic(ssid_num=len(pass_list), band="2.4 Ghz and 5 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
setup_params_general5 = {
|
setup_params_general5 = {
|
||||||
@@ -457,6 +594,9 @@ setup_params_general5 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.parent_suite("Max-SSID Tests")
|
||||||
|
@allure.suite("Bridge Mode")
|
||||||
|
@allure.sub_suite("Both 2.4GHz and 5GHz Band")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'setup_configuration',
|
'setup_configuration',
|
||||||
[setup_params_general5],
|
[setup_params_general5],
|
||||||
@@ -465,62 +605,15 @@ setup_params_general5 = {
|
|||||||
)
|
)
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMoreThanSixteenSsid(object):
|
class TestMoreThanSixteenSsid(object):
|
||||||
"""Config AP with maximum no.of SSIDs Test Bridge mode
|
@allure.title("Trying more than 16-SSIDs")
|
||||||
pytest -m "max_ssid and bridge"
|
|
||||||
"""
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7678", name="WIFI-7678")
|
||||||
@pytest.mark.open
|
|
||||||
@pytest.mark.wpa
|
|
||||||
@pytest.mark.wpa2_personal
|
|
||||||
@pytest.mark.wpa3_personal
|
|
||||||
@pytest.mark.more_than_sixteen_ssid_2g_5g
|
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
def test_more_than_sixteen_2g_5g(self, lf_test, station_names_twog, station_names_fiveg, get_configuration):
|
@pytest.mark.more_than_sixteen_ssid_2g_5g
|
||||||
"""Max-SSID Bridge Mode
|
def test_more_than_sixteen_2g_5g(self, get_test_library, get_dut_logs_per_test_case, setup_configuration,
|
||||||
pytest -m "max_ssid and twog and fiveg"
|
get_test_device_logs, check_connectivity):
|
||||||
"""
|
"""
|
||||||
scan_ssid = True
|
Unique Marker: max_ssid and bridge and more_than_sixteen_ssid_2g_5g
|
||||||
mode = "BRIDGE"
|
"""
|
||||||
band_name = (lambda bnd: '2G' if bnd == 'twog' else '5G')
|
|
||||||
vlan = 1
|
max_ssid(setup_params_general=setup_params_general5, test_lib=get_test_library)
|
||||||
count_security, sta_count = 0, 0
|
|
||||||
pass_list = []
|
|
||||||
security_key = "something"
|
|
||||||
security_list = ["open", "wpa", "wpa2", "wpa3"]
|
|
||||||
sta_list = []
|
|
||||||
for i in setup_params_general5["ssid_modes"]:
|
|
||||||
for j in range(len(setup_params_general5["ssid_modes"][i])):
|
|
||||||
profile_data = setup_params_general5["ssid_modes"][i][j]
|
|
||||||
ssid_name = profile_data["ssid_name"]
|
|
||||||
security = security_list[count_security]
|
|
||||||
if profile_data["appliedRadios"] == ['2G']:
|
|
||||||
band = 'twog'
|
|
||||||
sta_name = station_names_twog
|
|
||||||
elif profile_data["appliedRadios"] == ['5G']:
|
|
||||||
band = 'fiveg'
|
|
||||||
sta_name = station_names_fiveg
|
|
||||||
station_names = band_name(band) + sta_name[0] + str(int(sta_name[0][-1]) + sta_count)
|
|
||||||
passes = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key, mode=mode,
|
|
||||||
band=band, station_name=[station_names], vlan_id=vlan,
|
|
||||||
scan_ssid=scan_ssid)
|
|
||||||
scan_ssid = False
|
|
||||||
pass_list.append(passes)
|
|
||||||
sta_list.append(station_names)
|
|
||||||
sta_count += 1
|
|
||||||
count_security += 1
|
|
||||||
fail_list = list(filter(lambda x: x == False, pass_list))
|
|
||||||
if len(fail_list) == len(pass_list):
|
|
||||||
lf_test.Client_disconnect(sta_list)
|
|
||||||
allure.attach(name="Definition",
|
|
||||||
body="Max-SSID test intends to verify stability of Wi-Fi device " \
|
|
||||||
"where the AP is configured with max no.of SSIDs with different security modes.")
|
|
||||||
allure.attach(name="Procedure",
|
|
||||||
body=f"This test case definition states that we need to push the basic bridge mode config on the "
|
|
||||||
f"AP to be tested by configuring it with maximum {len(pass_list)} SSIDs in 2.4 Ghz and 5 Ghz radio. "
|
|
||||||
f"Create client on each SSIDs and run Layer-3 traffic. Pass/ fail criteria: "
|
|
||||||
f"The client created should not get associated to the AP")
|
|
||||||
# lf_test.layer3_traffic(ssid_num=len(pass_list), band="2.4 Ghz and 5 Ghz", station_name=sta_list)
|
|
||||||
assert True
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|||||||
Reference in New Issue
Block a user