Files
wlan-testing/tests/e2e/interOp/openroaming_test/android/test_OpenRoaming_BridgeMode.py
Sushant Bawiskar 7a4c9724fd Wifi 7159 (#415)
* - To return from perfecto logger if we are running testcases for unique ssid

Signed-off-by: Sushant Bawiskar <sushant.bawiskar@candelatech.com>

* - To add unique ssid schema as a part of testcase

Signed-off-by: Sushant Bawiskar <sushant.bawiskar@candelatech.com>

* - removing marker from openroaming tescases

Signed-off-by: Sushant Bawiskar <sushant.bawiskar@candelatech.com>

* Resolved conflicts in Interop/conftest

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Android devices needed for cleanup

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed marker to match ios and Android test cases with devices in Interop Testing workflow

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added run-lf argument in return function of setup_profiles

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added WIFI branches in reference for allure report generation

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed marker to Suite B

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added extra runners

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Nat mode

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Vlan mode

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added extra 1 min if --run-lf is used

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* changed cleanup requirements

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added vlan to ssid names in setup profiles of Enterprise mode test

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed testbed name

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed Regression to performance

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Reverted to original Interop workflow file

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Chnaged file name to performance.yml

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

Co-authored-by: haricharan-jaka <haricharan.jaka@candelatech.com>
2022-03-23 20:33:34 +05:30

341 lines
16 KiB
Python

from logging import exception
import unittest
import warnings
from perfecto.test import TestResultFactory
import pytest
import sys
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from appium import webdriver
from selenium.common.exceptions import NoSuchElementException
import sys
import allure
if 'perfecto_libs' not in sys.path:
sys.path.append(f'../libs/perfecto_libs')
pytestmark = [pytest.mark.sanity, pytest.mark.interop, pytest.mark.android, pytest.mark.interop_and, pytest.mark.openRoaming, pytest.mark.bridge]
# pytestmark = [pytest.mark.openRoaming]
from android_lib import closeApp, set_APconnMobileDevice_android, verify_APconnMobileDevice_Android, deleteOpenRoamingInstalledProfile, downloadInstallOpenRoamingProfile, verifyUploadDownloadSpeed_android, Toggle_AirplaneMode_android, ForgetWifiConnection, openApp
"""
EAP Passpoint Test: BRIDGE Mode
pytest -m "interop_iOS and eap_passpoint and bridge"
"""
setup_params_eap = {
"mode": "BRIDGE",
"ssid_modes": {
"open": [
{"ssid_name": "passpoint_profile_download", "appliedRadios": ["is2dot4GHz"]}
],
"wpa2_eap": [
{"ssid_name": "ssid_wpa2_eap_passpoint_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_wpa2_eap_passpoint_5g", "appliedRadios": ["is5GHz"]}
],
"wpa2_only_eap": [
{"ssid_name": "ssid_wpa2_only_eap_passpoint_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_wpa2_only_eap_passpoint_5g", "appliedRadios": ["is5GHz"]}
]
}
}
@allure.feature("BRIDGE MODE EAP PASSPOINT SETUP")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_eap],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestOpenRoamingBridgeMode(object):
@pytest.mark.wpa2_eap
@pytest.mark.twog
@pytest.mark.parametrize(
'push_ap_profile',
[{"ssid_names": ["ssid_wpa2_eap_passpoint_2g", "passpoint_profile_download"]}],
indirect=True,
scope="function"
)
@pytest.mark.usefixtures("push_ap_profile")
def test_OpenRoaming_2g_WPA2_EAP(self, passpoint_profile_info, push_ap_profile, request, get_APToMobileDevice_data, setup_perfectoMobile_android):
"""
EAP Passpoint BRIDGE Mode
pytest -m "interop_iOS and eap_passpoint and bridge and wpa2_eap and twog"
"""
result = push_ap_profile['ssid_wpa2_eap_passpoint_2g']['vif_config']
print(result)
if result:
allure.attach(name="Config push to AP for ssid_wpa2_eap_passpoint_2g successful ", body="")
else:
allure.attach(name="Config push to AP for ssid_wpa2_eap_passpoint_2g failed", body="")
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
assert result
result = push_ap_profile['ssid_wpa2_eap_passpoint_2g']['vif_state']
if result:
allure.attach(name="Config apply to AP for ssid_wpa2_eap_passpoint_2g successful ", body="")
else:
allure.attach(name="Config apply to AP for ssid_wpa2_eap_passpoint_2g failed", body="")
assert result
print("SSID to download profile :: ", setup_params_eap["ssid_modes"]["open"][0]["ssid_name"])
print("SSID to validate connectivity :: ", setup_params_eap["ssid_modes"]["wpa2_eap"][0]["ssid_name"])
print("Profile download URL :: ", passpoint_profile_info["profile_download_url_ios"])
print("Profile name to remove :: ", passpoint_profile_info["profile_name_on_device"])
#SSID to download profile :: passpoint_profile_download
#SSID to validate connectivity :: ssid_wpa2_eap_passpoint_5g
#Profile download URL :: https://onboard.almondlabs.net/ios.html
#Profile name to remove :: AmeriBand
report = setup_perfectoMobile_android[1]
driver = setup_perfectoMobile_android[0]
connData = get_APToMobileDevice_data
downloadProfileSSID = setup_params_eap["ssid_modes"]["open"][0]["ssid_name"]
downloadProfileSSIDPass = ""
profileDownloadURL = "https://onboard.almondlabs.net/ttls/androidconfig.cfg"
profileName = passpoint_profile_info["profile_name_on_device"]
profileNameSSID = setup_params_eap["ssid_modes"]["wpa2_eap"][1]["ssid_name"]
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
#Set Wifi/AP Mode
set_APconnMobileDevice_android(request, downloadProfileSSID, downloadProfileSSIDPass, setup_perfectoMobile_android, connData)
#Install Profile
downloadInstallOpenRoamingProfile(request, profileDownloadURL, setup_perfectoMobile_android, connData)
#ForgetWifi Original
ForgetWifiConnection(request, setup_perfectoMobile_android, downloadProfileSSID, connData)
try:
verify_APconnMobileDevice_Android(request, profileNameSSID, setup_perfectoMobile_android, connData)
#Verify Upload download Speed from device Selection
verifyUploadDownloadSpeed_android(request, setup_perfectoMobile_android, connData)
except Exception as e:
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
assert False
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
@pytest.mark.wpa2_eap
@pytest.mark.fiveg
@pytest.mark.parametrize(
'push_ap_profile',
[{"ssid_names": ["ssid_wpa2_eap_passpoint_5g", "passpoint_profile_download"]}],
indirect=True,
scope="function"
)
@pytest.mark.usefixtures("push_ap_profile")
def test_OpenRoaming_5g_WPA2_EAP(self, passpoint_profile_info, push_ap_profile, request, get_APToMobileDevice_data, setup_perfectoMobile_android):
"""
EAP Passpoint BRIDGE Mode
pytest -m "interop_iOS and eap_passpoint and bridge and wpa2_eap and fiveg"
"""
result = push_ap_profile['ssid_wpa2_eap_passpoint_5g']['vif_config']
if result:
allure.attach(name="Config push to AP for ssid_wpa2_eap_passpoint_5g successful ", body="")
else:
allure.attach(name="Config push to AP for ssid_wpa2_eap_passpoint_5g failed", body="")
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
assert result
result = push_ap_profile['ssid_wpa2_eap_passpoint_5g']['vif_state']
if result:
allure.attach(name="Config apply to AP for ssid_wpa2_eap_passpoint_5g successful ", body="")
else:
allure.attach(name="Config apply to AP for ssid_wpa2_eap_passpoint_5g failed", body="")
assert result
print("SSID to download profile :: ", setup_params_eap["ssid_modes"]["open"][0]["ssid_name"])
print("SSID to validate connectivity :: ", setup_params_eap["ssid_modes"]["wpa2_eap"][1]["ssid_name"])
print("Profile download URL :: ", passpoint_profile_info["profile_download_url_ios"])
print("Profile name to remove :: ", passpoint_profile_info["profile_name_on_device"])
#SSID to download profile :: passpoint_profile_download
#SSID to validate connectivity :: ssid_wpa2_eap_passpoint_5g
#Profile download URL :: https://onboard.almondlabs.net/ios.html
#Profile name to remove :: AmeriBand
report = setup_perfectoMobile_android[1]
driver = setup_perfectoMobile_android[0]
connData = get_APToMobileDevice_data
downloadProfileSSID = setup_params_eap["ssid_modes"]["open"][0]["ssid_name"]
downloadProfileSSIDPass = ""
profileDownloadURL = "https://onboard.almondlabs.net/ttls/androidconfig.cfg"
profileName = passpoint_profile_info["profile_name_on_device"]
profileNameSSID = setup_params_eap["ssid_modes"]["wpa2_eap"][1]["ssid_name"]
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
#Set Wifi/AP Mode
set_APconnMobileDevice_android(request, downloadProfileSSID, downloadProfileSSIDPass, setup_perfectoMobile_android, connData)
#Install Profile
downloadInstallOpenRoamingProfile(request, profileDownloadURL, setup_perfectoMobile_android, connData)
#ForgetWifi Original
ForgetWifiConnection(request, setup_perfectoMobile_android, downloadProfileSSID, connData)
try:
verify_APconnMobileDevice_Android(request, profileName, setup_perfectoMobile_android, connData)
#Verify Upload download Speed from device Selection
verifyUploadDownloadSpeed_android(request, setup_perfectoMobile_android, connData)
except Exception as e:
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
assert False
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
@pytest.mark.wpa2_only_eap
@pytest.mark.twog
@pytest.mark.parametrize(
'push_ap_profile',
[{"ssid_names": ["ssid_wpa2_only_eap_passpoint_2g", "passpoint_profile_download"]}],
indirect=True,
scope="function"
)
@pytest.mark.usefixtures("push_ap_profile")
def test_OpenRoaming_wpa2_only_eap_2g(self, passpoint_profile_info, push_ap_profile, request, get_APToMobileDevice_data, setup_perfectoMobile_android):
"""
EAP Passpoint BRIDGE Mode
pytest -m "interop_iOS and eap_passpoint and bridge and wpa2_only_eap and twog"
"""
result = push_ap_profile['ssid_wpa2_only_eap_passpoint_2g']['vif_config']
if result:
allure.attach(name="Config push to AP for ssid_wpa2_only_eap_passpoint_2g successful ", body="")
else:
allure.attach(name="Config push to AP for ssid_wpa2_only_eap_passpoint_2g failed", body="")
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
assert result
result = push_ap_profile['ssid_wpa2_only_eap_passpoint_2g']['vif_state']
if result:
allure.attach(name="Config apply to AP for ssid_wpa2_only_eap_passpoint_2g successful ", body="")
else:
allure.attach(name="Config apply to AP for ssid_wpa2_only_eap_passpoint_2g failed", body="")
assert result
print("SSID to download profile :: ", setup_params_eap["ssid_modes"]["open"][0]["ssid_name"])
print("SSID to validate connectivity :: ", setup_params_eap["ssid_modes"]["wpa2_only_eap"][0]["ssid_name"])
print("Profile download URL :: ", passpoint_profile_info["profile_download_url_ios"])
print("Profile name to remove :: ", passpoint_profile_info["profile_name_on_device"])
report = setup_perfectoMobile_android[1]
driver = setup_perfectoMobile_android[0]
connData = get_APToMobileDevice_data
downloadProfileSSID = setup_params_eap["ssid_modes"]["open"][0]["ssid_name"]
downloadProfileSSIDPass = ""
#profileDownloadURL = passpoint_profile_info["profile_download_url_ios"]
profileDownloadURL = "https://onboard.almondlabs.net/ttls/androidconfig.cfg"
profileName = passpoint_profile_info["profile_name_on_device"]
profileNameSSID = setup_params_eap["ssid_modes"]["wpa2_eap"][1]["ssid_name"]
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
#ForgetWifi
#ForgetWifiConnection(request, setup_perfectoMobile_android, profileNameSSID, connData)
#Set Wifi/AP Mode
set_APconnMobileDevice_android(request, downloadProfileSSID, downloadProfileSSIDPass, setup_perfectoMobile_android, connData)
#Install Profile
downloadInstallOpenRoamingProfile(request, profileDownloadURL, setup_perfectoMobile_android, connData)
#ForgetWifi Original
ForgetWifiConnection(request, setup_perfectoMobile_android, downloadProfileSSID, connData)
try:
verify_APconnMobileDevice_Android(request, profileNameSSID, setup_perfectoMobile_android, connData)
#Verify Upload download Speed from device Selection
verifyUploadDownloadSpeed_android(request, setup_perfectoMobile_android, connData)
except Exception as e:
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
assert False
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
@pytest.mark.wpa2_only_eap
@pytest.mark.fiveg
@pytest.mark.parametrize(
'push_ap_profile',
[{"ssid_names": ["ssid_wpa2_only_eap_passpoint_5g", "passpoint_profile_download"]}],
indirect=True,
scope="function"
)
@pytest.mark.usefixtures("push_ap_profile")
def test_OpenRoaming_wpa2_only_eap_5g(self, passpoint_profile_info, push_ap_profile, request, get_APToMobileDevice_data, setup_perfectoMobile_android):
"""
EAP Passpoint BRIDGE Mode
pytest -m "interop_iOS and eap_passpoint and bridge and wpa2_only_eap and fiveg"
"""
result = push_ap_profile['ssid_wpa2_only_eap_passpoint_5g']['vif_config']
if result:
allure.attach(name="Config push to AP for ssid_wpa2_only_eap_passpoint_5g successful ", body="")
else:
allure.attach(name="Config push to AP for ssid_wpa2_only_eap_passpoint_5g failed", body="")
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
assert result
result = push_ap_profile['ssid_wpa2_only_eap_passpoint_5g']['vif_state']
if result:
allure.attach(name="Config apply to AP for ssid_wpa2_only_eap_passpoint_5g successful ", body="")
else:
allure.attach(name="Config apply to AP for ssid_wpa2_only_eap_passpoint_5g failed", body="")
assert result
print("SSID to download profile :: ", setup_params_eap["ssid_modes"]["open"][0]["ssid_name"])
print("SSID to validate connectivity :: ", setup_params_eap["ssid_modes"]["wpa2_only_eap"][1]["ssid_name"])
print("Profile download URL :: ", passpoint_profile_info["profile_download_url_ios"])
print("Profile name to remove :: ", passpoint_profile_info["profile_name_on_device"])
report = setup_perfectoMobile_android[1]
driver = setup_perfectoMobile_android[0]
connData = get_APToMobileDevice_data
downloadProfileSSID = setup_params_eap["ssid_modes"]["open"][0]["ssid_name"]
downloadProfileSSIDPass = ""
profileDownloadURL = "https://onboard.almondlabs.net/ttls/androidconfig.cfg"
profileName = passpoint_profile_info["profile_name_on_device"]
profileNameSSID = setup_params_eap["ssid_modes"]["wpa2_eap"][1]["ssid_name"]
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
#Set Wifi/AP Mode
set_APconnMobileDevice_android(request, downloadProfileSSID, downloadProfileSSIDPass, setup_perfectoMobile_android, connData)
#Install Profile
downloadInstallOpenRoamingProfile(request, profileDownloadURL, setup_perfectoMobile_android, connData)
#ForgetWifi Original
ForgetWifiConnection(request, setup_perfectoMobile_android, downloadProfileSSID, connData)
try:
verify_APconnMobileDevice_Android(request, profileNameSSID, setup_perfectoMobile_android, connData)
#Verify Upload download Speed from device Selection
verifyUploadDownloadSpeed_android(request, setup_perfectoMobile_android, connData)
except Exception as e:
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)
assert False
#Delete Profile Under Settings
deleteOpenRoamingInstalledProfile(request, profileName, setup_perfectoMobile_android, connData)