|
|
|
|
@@ -20,9 +20,9 @@ if "libs" not in sys.path:
|
|
|
|
|
sys.path.append(f'../libs')
|
|
|
|
|
import allure
|
|
|
|
|
from apnos.apnos import APNOS
|
|
|
|
|
from controller.controller import Controller
|
|
|
|
|
from controller.controller import ProfileUtility
|
|
|
|
|
from controller.controller import FirmwareUtility
|
|
|
|
|
from controller.controller_1x.controller import Controller
|
|
|
|
|
from controller.controller_1x.controller import ProfileUtility
|
|
|
|
|
from controller.controller_1x.controller import FirmwareUtility
|
|
|
|
|
import pytest
|
|
|
|
|
import logging
|
|
|
|
|
from configuration import RADIUS_SERVER_DATA
|
|
|
|
|
@@ -68,7 +68,7 @@ def get_APToMobileDevice_data(request):
|
|
|
|
|
"UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']",
|
|
|
|
|
#Android
|
|
|
|
|
"platformName-android": request.config.getini("platformName-android"),
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
}
|
|
|
|
|
yield passPoint_data
|
|
|
|
|
|
|
|
|
|
@@ -93,7 +93,7 @@ def get_ToggleAirplaneMode_data(request):
|
|
|
|
|
"UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']",
|
|
|
|
|
#Android
|
|
|
|
|
"platformName-android": request.config.getini("platformName-android"),
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
}
|
|
|
|
|
yield passPoint_data
|
|
|
|
|
|
|
|
|
|
@@ -104,7 +104,7 @@ def get_ToggleWifiMode_data(request):
|
|
|
|
|
"bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"),
|
|
|
|
|
#Android
|
|
|
|
|
"platformName-android": request.config.getini("platformName-android"),
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
"appPackage-android": request.config.getini("appPackage-android")
|
|
|
|
|
}
|
|
|
|
|
yield passPoint_data
|
|
|
|
|
|
|
|
|
|
@@ -189,401 +189,45 @@ def get_current_profile_cloud(instantiate_profile):
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
|
|
|
def setup_vlan():
|
|
|
|
|
vlan_id = [100]
|
|
|
|
|
allure.attach(body=str(vlan_id), name="VLAN Created: ")
|
|
|
|
|
yield vlan_id[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@allure.feature("CLIENT CONNECTIVITY SETUP")
|
|
|
|
|
@pytest.fixture(scope="class")
|
|
|
|
|
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id,
|
|
|
|
|
instantiate_profile, get_markers,
|
|
|
|
|
get_security_flags, get_configuration, radius_info, get_apnos):
|
|
|
|
|
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
|
|
|
|
|
vlan_id, mode = 0, 0
|
|
|
|
|
instantiate_profile.cleanup_objects()
|
|
|
|
|
parameter = dict(request.param)
|
|
|
|
|
print(parameter)
|
|
|
|
|
test_cases = {}
|
|
|
|
|
profile_data = {}
|
|
|
|
|
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
|
|
|
|
|
print("Invalid Mode: ", parameter['mode'])
|
|
|
|
|
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
|
|
|
|
|
yield test_cases
|
|
|
|
|
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id, fixtures_ver,
|
|
|
|
|
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
|
|
|
|
|
get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info):
|
|
|
|
|
lf_tools.reset_scenario()
|
|
|
|
|
param = dict(request.param)
|
|
|
|
|
|
|
|
|
|
if parameter['mode'] == "NAT":
|
|
|
|
|
mode = "NAT"
|
|
|
|
|
vlan_id = 1
|
|
|
|
|
if parameter['mode'] == "BRIDGE":
|
|
|
|
|
mode = "BRIDGE"
|
|
|
|
|
vlan_id = 1
|
|
|
|
|
if parameter['mode'] == "VLAN":
|
|
|
|
|
mode = "BRIDGE"
|
|
|
|
|
vlan_id = setup_vlan
|
|
|
|
|
# VLAN Setup
|
|
|
|
|
if request.param["mode"] == "VLAN":
|
|
|
|
|
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
|
|
|
|
|
vlan_list = list()
|
|
|
|
|
refactored_vlan_list = list()
|
|
|
|
|
ssid_modes = request.param["ssid_modes"].keys()
|
|
|
|
|
for mode in ssid_modes:
|
|
|
|
|
for ssid in range(len(request.param["ssid_modes"][mode])):
|
|
|
|
|
if "vlan" in request.param["ssid_modes"][mode][ssid]:
|
|
|
|
|
vlan_list.append(request.param["ssid_modes"][mode][ssid]["vlan"])
|
|
|
|
|
else:
|
|
|
|
|
pass
|
|
|
|
|
if vlan_list:
|
|
|
|
|
[refactored_vlan_list.append(x) for x in vlan_list if x not in refactored_vlan_list]
|
|
|
|
|
vlan_list = refactored_vlan_list
|
|
|
|
|
for i in range(len(vlan_list)):
|
|
|
|
|
if vlan_list[i] > 4095 or vlan_list[i] < 1:
|
|
|
|
|
vlan_list.pop(i)
|
|
|
|
|
if request.param["mode"] == "VLAN":
|
|
|
|
|
lf_tools.add_vlan(vlan_ids=vlan_list)
|
|
|
|
|
|
|
|
|
|
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
|
|
|
|
|
profile_data["ssid"] = {}
|
|
|
|
|
for i in parameter["ssid_modes"]:
|
|
|
|
|
profile_data["ssid"][i] = []
|
|
|
|
|
for j in range(len(parameter["ssid_modes"][i])):
|
|
|
|
|
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
|
|
|
|
|
data = parameter["ssid_modes"][i][j]
|
|
|
|
|
data["profile_name"] = profile_name
|
|
|
|
|
if "mode" not in dict(data).keys():
|
|
|
|
|
data["mode"] = mode
|
|
|
|
|
if "vlan" not in dict(data).keys():
|
|
|
|
|
data["vlan"] = vlan_id
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
|
|
|
|
|
profile_data["ssid"][i].append(data)
|
|
|
|
|
# print(profile_name)
|
|
|
|
|
# print(profile_data)
|
|
|
|
|
# call this, if 1.x
|
|
|
|
|
return_1x = fixtures_ver.setup_profiles(request, param, setup_controller, testbed, setup_vlan, get_equipment_id,
|
|
|
|
|
instantiate_profile,
|
|
|
|
|
get_markers, create_lanforge_chamberview_dut, lf_tools,
|
|
|
|
|
get_security_flags, get_configuration, radius_info, get_apnos,
|
|
|
|
|
radius_accounting_info)
|
|
|
|
|
yield return_1x
|
|
|
|
|
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
|
|
|
|
|
time.sleep(10)
|
|
|
|
|
"""
|
|
|
|
|
Setting up rf profile
|
|
|
|
|
"""
|
|
|
|
|
rf_profile_data = {
|
|
|
|
|
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
|
|
|
|
|
get_configuration['access_point'][0]['mode']
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i in parameter["rf"]:
|
|
|
|
|
rf_profile_data[i] = parameter['rf'][i]
|
|
|
|
|
# print(rf_profile_data)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
|
|
|
|
|
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
|
|
|
|
|
mode=get_configuration['access_point'][0]['mode'])
|
|
|
|
|
allure.attach(body=str(rf_profile_data),
|
|
|
|
|
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
allure.attach(body=str(e), name="Exception ")
|
|
|
|
|
|
|
|
|
|
# Radius Profile Creation
|
|
|
|
|
if parameter["radius"]:
|
|
|
|
|
radius_info = radius_info
|
|
|
|
|
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + testbed
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + testbed)
|
|
|
|
|
try:
|
|
|
|
|
# pass
|
|
|
|
|
instantiate_profile.create_radius_profile(radius_info=radius_info)
|
|
|
|
|
allure.attach(body=str(radius_info),
|
|
|
|
|
name="Radius Profile Created")
|
|
|
|
|
test_cases['radius_profile'] = True
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases['radius_profile'] = False
|
|
|
|
|
|
|
|
|
|
# SSID Profile Creation
|
|
|
|
|
print(get_markers)
|
|
|
|
|
for mode in profile_data['ssid']:
|
|
|
|
|
if mode == "open":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["open_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["open_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["open_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["open_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
if mode == "wpa":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
if mode == "wpa2_personal":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa2_personal_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa2_personal_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa2_personal_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa2_personal_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
if mode == "wpa_wpa2_personal_mixed":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa_wpa2_personal_mixed_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa_wpa2_personal_mixed_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa_wpa2_personal_mixed_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa_wpa2_personal_mixed_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
if mode == "wpa3_personal":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa3_personal_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_personal_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa3_personal_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_personal_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
if mode == "wpa3_personal_mixed":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
|
|
|
|
|
profile_data=j)
|
|
|
|
|
test_cases["wpa3_personal_mixed_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_personal_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
|
|
|
|
|
profile_data=j)
|
|
|
|
|
test_cases["wpa3_personal_mixed_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_personal_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
if mode == "wpa2_enterprise":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa2_enterprise_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa2_enterprise_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa2_enterprise_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa2_enterprise_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
if mode == "wpa3_enterprise":
|
|
|
|
|
for j in profile_data["ssid"][mode]:
|
|
|
|
|
# print(j)
|
|
|
|
|
if mode in get_markers.keys() and get_markers[mode]:
|
|
|
|
|
try:
|
|
|
|
|
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa3_enterprise_2g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_enterprise_2g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
try:
|
|
|
|
|
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
|
|
|
|
j["appliedRadios"]):
|
|
|
|
|
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
|
|
|
|
|
test_cases["wpa3_enterprise_5g"] = True
|
|
|
|
|
allure.attach(body=str(creates_profile),
|
|
|
|
|
name="SSID Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["wpa3_enterprise_5g"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="SSID Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
# Equipment AP Profile Creation
|
|
|
|
|
try:
|
|
|
|
|
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
|
|
|
|
|
test_cases["equipment_ap"] = True
|
|
|
|
|
allure.attach(body=str(profile_data['equipment_ap']),
|
|
|
|
|
name="Equipment AP Profile Created")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
test_cases["equipment_ap"] = False
|
|
|
|
|
allure.attach(body=str(e),
|
|
|
|
|
name="Equipment AP Profile Creation Failed")
|
|
|
|
|
|
|
|
|
|
# Push the Equipment AP Profile to AP
|
|
|
|
|
try:
|
|
|
|
|
for i in get_equipment_id:
|
|
|
|
|
instantiate_profile.push_profile_old_method(equipment_id=i)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
print("failed to create AP Profile")
|
|
|
|
|
|
|
|
|
|
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
|
|
|
|
ssid_names = []
|
|
|
|
|
for i in instantiate_profile.profile_creation_ids["ssid"]:
|
|
|
|
|
ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
|
|
|
|
|
ssid_names.sort()
|
|
|
|
|
|
|
|
|
|
# This loop will check the VIF Config with cloud profile
|
|
|
|
|
vif_config = []
|
|
|
|
|
test_cases['vifc'] = False
|
|
|
|
|
for i in range(0, 18):
|
|
|
|
|
vif_config = list(ap_ssh.get_vif_config_ssids())
|
|
|
|
|
vif_config.sort()
|
|
|
|
|
print(vif_config)
|
|
|
|
|
print(ssid_names)
|
|
|
|
|
if ssid_names == vif_config:
|
|
|
|
|
test_cases['vifc'] = True
|
|
|
|
|
break
|
|
|
|
|
time.sleep(10)
|
|
|
|
|
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
|
|
|
|
|
name="SSID Profiles in VIF Config and Controller: ")
|
|
|
|
|
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
|
|
|
|
|
|
|
|
|
# This loop will check the VIF Config with VIF State
|
|
|
|
|
test_cases['vifs'] = False
|
|
|
|
|
for i in range(0, 18):
|
|
|
|
|
vif_state = list(ap_ssh.get_vif_state_ssids())
|
|
|
|
|
vif_state.sort()
|
|
|
|
|
vif_config = list(ap_ssh.get_vif_config_ssids())
|
|
|
|
|
vif_config.sort()
|
|
|
|
|
print(vif_config)
|
|
|
|
|
print(vif_state)
|
|
|
|
|
if vif_state == vif_config:
|
|
|
|
|
test_cases['vifs'] = True
|
|
|
|
|
break
|
|
|
|
|
time.sleep(10)
|
|
|
|
|
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
|
|
|
|
|
name="SSID Profiles in VIF Config and VIF State: ")
|
|
|
|
|
print(test_cases)
|
|
|
|
|
|
|
|
|
|
def teardown_session():
|
|
|
|
|
print("\nRemoving Profiles")
|
|
|
|
|
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
|
|
|
|
|
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
|
|
|
|
|
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
|
|
|
|
|
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
|
|
|
|
|
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
|
|
|
|
|
name="Tear Down in Profiles ")
|
|
|
|
|
time.sleep(20)
|
|
|
|
|
|
|
|
|
|
request.addfinalizer(teardown_session)
|
|
|
|
|
yield test_cases
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -610,7 +254,7 @@ def failure_tracking_fixture(request):
|
|
|
|
|
print("tests_failed_during_module: ")
|
|
|
|
|
print(tests_failed_during_module)
|
|
|
|
|
yield tests_failed_during_module
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope="class")
|
|
|
|
|
def get_vif_state(get_apnos, get_configuration):
|
|
|
|
|
@@ -641,7 +285,7 @@ def pytest_runtest_makereport(item, call):
|
|
|
|
|
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
|
|
|
|
|
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
|
|
|
|
|
#print("TestCasefullNameTEST: " + TestCaseFullName)
|
|
|
|
|
try:
|
|
|
|
|
try:
|
|
|
|
|
#TestCaseName = nCurrentTestMethodNameSplit.removeprefix('test_')
|
|
|
|
|
TestCaseName = nCurrentTestMethodNameSplit.replace('test_', '')
|
|
|
|
|
#print ("\nTestCaseName: " + TestCaseName)
|
|
|
|
|
@@ -653,7 +297,7 @@ def pytest_runtest_makereport(item, call):
|
|
|
|
|
#exception = call.excinfo.value
|
|
|
|
|
#exception_class = call.excinfo.type
|
|
|
|
|
#exception_class_name = call.excinfo.typename
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#exception_traceback = call.excinfo.traceback
|
|
|
|
|
|
|
|
|
|
if result.outcome == "failed":
|
|
|
|
|
@@ -663,7 +307,7 @@ def pytest_runtest_makereport(item, call):
|
|
|
|
|
testCaseNameList.append(TestCaseName)
|
|
|
|
|
testCaseStatusList.append(testCaseFailedStatusValue)
|
|
|
|
|
testCaseErrorMsg.append(exception_type_and_message_formatted)
|
|
|
|
|
testCaseReportURL.append(reporting_client.report_url())
|
|
|
|
|
testCaseReportURL.append(reporting_client.report_url())
|
|
|
|
|
|
|
|
|
|
print("\n TestStatus: " + testCaseFailedStatusValue)
|
|
|
|
|
print(" FailureMsg: " + str(testCaseErrorMsg))
|
|
|
|
|
@@ -687,9 +331,9 @@ def pytest_runtest_makereport(item, call):
|
|
|
|
|
testCaseErrorMsg.append(str(exception_type_Skipped_message_formatted))
|
|
|
|
|
testCaseReportURL.append(reporting_client.report_url())
|
|
|
|
|
print("\n TestStatus: " + testCaseSkippedStatusValue)
|
|
|
|
|
print(" FailureMsg: " + str(testCaseErrorMsg))
|
|
|
|
|
reportPerfecto(TestCaseName, testCaseSkippedStatusValue, testCaseErrorMsg, str(reporting_client.report_url()))
|
|
|
|
|
|
|
|
|
|
print(" FailureMsg: " + str(testCaseErrorMsg))
|
|
|
|
|
reportPerfecto(TestCaseName, testCaseSkippedStatusValue, testCaseErrorMsg, str(reporting_client.report_url()))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def pytest_sessionfinish(session, exitstatus):
|
|
|
|
|
|
|
|
|
|
@@ -699,17 +343,17 @@ def pytest_sessionfinish(session, exitstatus):
|
|
|
|
|
passed_amount = sum(1 for result in session.results.values() if result.passed)
|
|
|
|
|
failed_amount = sum(1 for result in session.results.values() if result.failed)
|
|
|
|
|
skipped_amount = sum(1 for result in session.results.values() if result.skipped)
|
|
|
|
|
# print(f'There are {passed_amount} passed and {failed_amount} failed tests')
|
|
|
|
|
# print(f'There are {passed_amount} passed and {failed_amount} failed tests')
|
|
|
|
|
TotalExecutedCount = failed_amount + passed_amount + skipped_amount
|
|
|
|
|
|
|
|
|
|
print('\n------------------------------------')
|
|
|
|
|
print('Interop Perfecto TestCase Execution Summary')
|
|
|
|
|
print('Interop Perfecto TestCase Execution Summary')
|
|
|
|
|
print('------------------------------------')
|
|
|
|
|
print('Total TestCase Executed: ' + str(TotalExecutedCount))
|
|
|
|
|
print('Total TestCase Executed: ' + str(TotalExecutedCount))
|
|
|
|
|
print('Total Passed: ' + str(passed_amount))
|
|
|
|
|
print('Total Failed: ' + str(failed_amount))
|
|
|
|
|
print('Total Skipped: ' + str(skipped_amount) + "\n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
for index in range(len(testCaseNameList)):
|
|
|
|
|
print(str(index+1) + ") " + str(testCaseNameList[index]) + " : " + str(testCaseStatusList[index]))
|
|
|
|
|
@@ -725,16 +369,16 @@ def setup_perfectoMobile_android(request):
|
|
|
|
|
from appium import webdriver
|
|
|
|
|
driver = None
|
|
|
|
|
reporting_client = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warnings.simplefilter("ignore", ResourceWarning)
|
|
|
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
capabilities = {
|
|
|
|
|
'platformName': request.config.getini("platformName-android"),
|
|
|
|
|
'model': request.config.getini("model-android"),
|
|
|
|
|
'browserName': 'mobileOS',
|
|
|
|
|
#'automationName' : 'Appium',
|
|
|
|
|
'securityToken' : request.config.getini("securityToken"),
|
|
|
|
|
'securityToken' : request.config.getini("securityToken"),
|
|
|
|
|
'useAppiumForWeb' : 'false',
|
|
|
|
|
'useAppiumForHybrid' : 'false',
|
|
|
|
|
#'bundleId' : request.config.getini("appPackage-android"),
|
|
|
|
|
@@ -742,7 +386,7 @@ def setup_perfectoMobile_android(request):
|
|
|
|
|
|
|
|
|
|
driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
|
|
|
|
|
driver.implicitly_wait(35)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
|
|
|
|
|
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
|
|
|
|
|
try:
|
|
|
|
|
@@ -753,7 +397,7 @@ def setup_perfectoMobile_android(request):
|
|
|
|
|
TestCaseName = nCurrentTestMethodNameSplit
|
|
|
|
|
print("\nUpgrade Python to 3.9 to avoid test_ string in your test case name, see below URL")
|
|
|
|
|
#print("https://www.andreagrandi.it/2020/10/11/python39-introduces-removeprefix-removesuffix/")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
projectname = request.config.getini("projectName")
|
|
|
|
|
projectversion = request.config.getini("projectVersion")
|
|
|
|
|
jobname = request.config.getini("jobName")
|
|
|
|
|
@@ -774,14 +418,14 @@ def setup_perfectoMobile_android(request):
|
|
|
|
|
print("----------------------------------------------------------\n\n\n\n")
|
|
|
|
|
driver.close()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception While Tear Down --")
|
|
|
|
|
print(" -- Exception While Tear Down --")
|
|
|
|
|
driver.close()
|
|
|
|
|
print (e)
|
|
|
|
|
finally:
|
|
|
|
|
try:
|
|
|
|
|
driver.quit()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print (e)
|
|
|
|
|
|
|
|
|
|
request.addfinalizer(teardown)
|
|
|
|
|
@@ -789,7 +433,7 @@ def setup_perfectoMobile_android(request):
|
|
|
|
|
if driver is None:
|
|
|
|
|
yield -1
|
|
|
|
|
else:
|
|
|
|
|
yield driver,reporting_client
|
|
|
|
|
yield driver,reporting_client
|
|
|
|
|
|
|
|
|
|
def reportClient(value):
|
|
|
|
|
global reporting_client # declare a to be a global
|
|
|
|
|
@@ -811,7 +455,7 @@ def setup_perfectoMobileWeb(request):
|
|
|
|
|
from selenium import webdriver
|
|
|
|
|
rdriver = None
|
|
|
|
|
reporting_client = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warnings.simplefilter("ignore", ResourceWarning)
|
|
|
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
|
|
|
|
|
|
|
|
@@ -839,18 +483,18 @@ def setup_perfectoMobileWeb(request):
|
|
|
|
|
|
|
|
|
|
def teardown():
|
|
|
|
|
try:
|
|
|
|
|
print(" -- Tear Down --")
|
|
|
|
|
print(" -- Tear Down --")
|
|
|
|
|
reporting_client.test_stop(TestResultFactory.create_success())
|
|
|
|
|
print('Report-Url: ' + reporting_client.report_url() + '\n')
|
|
|
|
|
rdriver.close()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception Not Able To close --")
|
|
|
|
|
print(" -- Exception Not Able To close --")
|
|
|
|
|
print (e.message)
|
|
|
|
|
finally:
|
|
|
|
|
try:
|
|
|
|
|
rdriver.quit()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print (e.message)
|
|
|
|
|
|
|
|
|
|
request.addfinalizer(teardown)
|
|
|
|
|
@@ -858,24 +502,24 @@ def setup_perfectoMobileWeb(request):
|
|
|
|
|
if rdriver is None:
|
|
|
|
|
yield -1
|
|
|
|
|
else:
|
|
|
|
|
yield rdriver,reporting_client
|
|
|
|
|
yield rdriver,reporting_client
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
|
|
|
def setup_perfectoMobile_iOS(request):
|
|
|
|
|
from appium import webdriver
|
|
|
|
|
driver = None
|
|
|
|
|
reporting_client = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warnings.simplefilter("ignore", ResourceWarning)
|
|
|
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
capabilities = {
|
|
|
|
|
'platformName': request.config.getini("platformName-iOS"),
|
|
|
|
|
'model': request.config.getini("model-iOS"),
|
|
|
|
|
'browserName': 'safari',
|
|
|
|
|
#'automationName' : 'Appium',
|
|
|
|
|
'securityToken' : request.config.getini("securityToken"),
|
|
|
|
|
'useAppiumForWeb' : 'false',
|
|
|
|
|
'securityToken' : request.config.getini("securityToken"),
|
|
|
|
|
'useAppiumForWeb' : 'false',
|
|
|
|
|
'autoAcceptAlerts' : 'true',
|
|
|
|
|
#'bundleId' : request.config.getini("bundleId-iOS"),
|
|
|
|
|
'useAppiumForHybrid' : 'false',
|
|
|
|
|
@@ -883,7 +527,7 @@ def setup_perfectoMobile_iOS(request):
|
|
|
|
|
|
|
|
|
|
driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
|
|
|
|
|
driver.implicitly_wait(35)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
|
|
|
|
|
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
|
|
|
|
|
try:
|
|
|
|
|
@@ -894,7 +538,7 @@ def setup_perfectoMobile_iOS(request):
|
|
|
|
|
TestCaseName = nCurrentTestMethodNameSplit
|
|
|
|
|
print("\nUpgrade Python to 3.9 to avoid test_ string in your test case name, see below URL")
|
|
|
|
|
#print("https://www.andreagrandi.it/2020/10/11/python39-introduces-removeprefix-removesuffix/")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
projectname = request.config.getini("projectName")
|
|
|
|
|
projectversion = request.config.getini("projectVersion")
|
|
|
|
|
jobname = request.config.getini("jobName")
|
|
|
|
|
@@ -915,20 +559,20 @@ def setup_perfectoMobile_iOS(request):
|
|
|
|
|
print("----------------------------------------------------------\n\n\n\n")
|
|
|
|
|
driver.close()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception While Tear Down --")
|
|
|
|
|
print(" -- Exception While Tear Down --")
|
|
|
|
|
driver.close()
|
|
|
|
|
print (e)
|
|
|
|
|
finally:
|
|
|
|
|
try:
|
|
|
|
|
driver.quit()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print(" -- Exception Not Able To Quit --")
|
|
|
|
|
print (e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
request.addfinalizer(teardown)
|
|
|
|
|
|
|
|
|
|
if driver is None:
|
|
|
|
|
yield -1
|
|
|
|
|
else:
|
|
|
|
|
yield driver,reporting_client
|
|
|
|
|
yield driver,reporting_client
|
|
|
|
|
|
|
|
|
|
|