mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-03 12:27:53 +00:00
Wifi 6921 (#408)
* Added Rerutn Upload and Download speed function in Android lib Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com> * Added Multi psk wpa2 testcase with upto 16 vlans in Android Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com> * Added Rate limiting testcase in Android Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com> * Added random string to ssid names in Rate limiting testcase in Android Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com> * Added random string attached ssids in multi_psk testcase in Android Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>
This commit is contained in:
@@ -3758,7 +3758,6 @@ def get_ip_address_eap_and(request, WifiName, User, ttls_passwd, setup_perfectoM
|
|||||||
# -----------------To Open Connections page---------------------------
|
# -----------------To Open Connections page---------------------------
|
||||||
closeApp(connData["appPackage-android"], setup_perfectoMobile)
|
closeApp(connData["appPackage-android"], setup_perfectoMobile)
|
||||||
return ip_address_element_text, ssid_with_internet
|
return ip_address_element_text, ssid_with_internet
|
||||||
|
|
||||||
#only to connect to wifi
|
#only to connect to wifi
|
||||||
def wifi_connect_eap(request, WifiName, User, ttls_passwd, setup_perfectoMobile, connData):
|
def wifi_connect_eap(request, WifiName, User, ttls_passwd, setup_perfectoMobile, connData):
|
||||||
print("\n-------------------------------------")
|
print("\n-------------------------------------")
|
||||||
@@ -6677,3 +6676,75 @@ def get_phone_information(setup_perfectoMobile, search_this):
|
|||||||
device_information = driver.execute_script('mobile:handset:info', params)
|
device_information = driver.execute_script('mobile:handset:info', params)
|
||||||
print("device information for "+search_this+" is: ", device_information)
|
print("device information for "+search_this+" is: ", device_information)
|
||||||
return device_information
|
return device_information
|
||||||
|
|
||||||
|
#------------Return upload download rate------------------------------
|
||||||
|
def return_upload_download_speed_android(request, setup_perfectoMobile, get_APToMobileDevice_data):
|
||||||
|
print("\n-------------------------------------")
|
||||||
|
print("Verify Upload & Download Speed")
|
||||||
|
print("-------------------------------------")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile[1]
|
||||||
|
driver = setup_perfectoMobile[0]
|
||||||
|
connData = get_APToMobileDevice_data
|
||||||
|
|
||||||
|
driver.switch_to.context('WEBVIEW_1')
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("Launching Chrome")
|
||||||
|
report.step_start("Google Home Page")
|
||||||
|
driver.get(connData["webURL"])
|
||||||
|
print("Enter Search Text")
|
||||||
|
elementFindTxt = driver.find_element_by_xpath(connData["lblSearch"])
|
||||||
|
elementFindTxt.send_keys("Internet Speed Test")
|
||||||
|
except Exception as e:
|
||||||
|
print("Launching Chrome Failed")
|
||||||
|
print (e)
|
||||||
|
# allure.attach(name="Speed Test logs: ", body=str("Launching Safari Failed"))
|
||||||
|
# allure.attach(name="Speed Test logs: ", body=str("Error log: " + e))
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("Click Search Button")
|
||||||
|
report.step_start("Click Search Button")
|
||||||
|
time.sleep(2)
|
||||||
|
driver.implicitly_wait(2)
|
||||||
|
elelSearch = driver.find_element_by_xpath("//*[@class='aajZCb']//*[@class='nz2CCf']/li[1]/div[2]")
|
||||||
|
elelSearch.click()
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
time.sleep(2)
|
||||||
|
driver.implicitly_wait(2)
|
||||||
|
elelSearch = driver.find_element_by_xpath("//*[@class='aajZCb']//*[@class='nz2CCf']/li[1]/div[2]")
|
||||||
|
elelSearch.click()
|
||||||
|
except:
|
||||||
|
print("Search Drop Down not active...")
|
||||||
|
return False
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("Click Run Speed Test Button...")
|
||||||
|
report.step_start("Click Run Speed Test Button")
|
||||||
|
driver.find_element_by_xpath(connData["BtnRunSpeedTest"]).click()
|
||||||
|
except NoSuchElementException:
|
||||||
|
print("Error in speed test element ", NoSuchElementException)
|
||||||
|
# allure.attach(name="Speed Test logs: ", body=str("Search Run Speed Test not active..." + NoSuchElementException))
|
||||||
|
return False
|
||||||
|
|
||||||
|
#Get upload/Download Speed
|
||||||
|
try:
|
||||||
|
print("Get Download Speed")
|
||||||
|
report.step_start("Get upload/Download Speed")
|
||||||
|
time.sleep(60)
|
||||||
|
downloadMbps = driver.find_element_by_xpath(connData["downloadMbps"])
|
||||||
|
downloadSpeed = downloadMbps.text
|
||||||
|
print("Download: " + downloadSpeed + " Mbps")
|
||||||
|
|
||||||
|
print("Get Upload Speed")
|
||||||
|
report.step_start("Get Upload Speed")
|
||||||
|
UploadMbps = driver.find_element_by_xpath(connData["UploadMbps"])
|
||||||
|
uploadSpeed = UploadMbps.text
|
||||||
|
print("Upload: " + uploadSpeed + " Mbps")
|
||||||
|
allure.attach(name="Speed Test logs: ", body=str("Upload: " + uploadSpeed + " Mbps" + " Download: " + downloadSpeed + " Mbps"))
|
||||||
|
print("Access Point Verification Completed Successfully")
|
||||||
|
except NoSuchElementException:
|
||||||
|
print("Access Point Verification NOT Completed, checking Connection....")
|
||||||
|
|
||||||
|
return downloadSpeed, uploadSpeed
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,296 @@
|
|||||||
|
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 random
|
||||||
|
import sys
|
||||||
|
import allure
|
||||||
|
import string
|
||||||
|
|
||||||
|
if 'perfecto_libs' not in sys.path:
|
||||||
|
sys.path.append(f'../libs/perfecto_libs')
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.interop, pytest.mark.android, pytest.mark.interop_and,
|
||||||
|
pytest.mark.rate_limiting, pytest.mark.bridge]
|
||||||
|
|
||||||
|
from android_lib import closeApp, set_APconnMobileDevice_android, Toggle_AirplaneMode_android, ForgetWifiConnection, openApp, \
|
||||||
|
get_ip_address_and, return_upload_download_speed_android, wifi_connect, wifi_disconnect_and_forget
|
||||||
|
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_2g_RL",
|
||||||
|
"appliedRadios": ["2G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_wpa2_5g_RL",
|
||||||
|
"appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wpa": [
|
||||||
|
{"ssid_name": "ssid_wpa_2g_RL",
|
||||||
|
"appliedRadios": ["2G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_wpa_5g_RL",
|
||||||
|
"appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_2g_RL",
|
||||||
|
"appliedRadios": ["2G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_wpa3_5g_RL",
|
||||||
|
"appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"rate-limit": {
|
||||||
|
"ingress-rate": 60,
|
||||||
|
"egress-rate": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
for sec_modes in setup_params_general['ssid_modes'].keys():
|
||||||
|
for i in range(len(setup_params_general['ssid_modes'][sec_modes])):
|
||||||
|
N = 3
|
||||||
|
rand_string = (''.join(random.choices(string.ascii_uppercase +
|
||||||
|
string.digits, k=N)))+str(int(time.time_ns())%10000)
|
||||||
|
setup_params_general['ssid_modes'][sec_modes][i]['ssid_name'] = setup_params_general['ssid_modes'][sec_modes][i]['ssid_name'] + "_"+ rand_string
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Bridge MODE Rate Limiting")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_profiles',
|
||||||
|
[setup_params_general],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_profiles")
|
||||||
|
class TestRateLimitingBridge(object):
|
||||||
|
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
def test_rate_limiting_wpa2_2g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
def test_rate_limiting_wpa2_5g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@pytest.mark.wpa
|
||||||
|
@pytest.mark.twog
|
||||||
|
def test_rate_limiting_wpa_2g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa"][0]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@pytest.mark.wpa
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
def test_rate_limiting_wpa_5g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa"][1]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
def test_rate_limiting_wpa3_2g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"][0]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
def test_rate_limiting_wpa3_5g(self, request, get_vif_state, get_ap_logs,
|
||||||
|
get_ToggleAirplaneMode_data, setup_perfectoMobile_android):
|
||||||
|
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"][1]
|
||||||
|
ssidName = profile_data["ssid_name"]
|
||||||
|
ssidPassword = profile_data["security_key"]
|
||||||
|
up_rate = profile_data["rate-limit"]["ingress-rate"]
|
||||||
|
down_rate = profile_data["rate-limit"]["egress-rate"]
|
||||||
|
print("SSID_NAME: " + ssidName)
|
||||||
|
print("SSID_PASS: " + ssidPassword)
|
||||||
|
print("Upload rate:" + (str)(up_rate))
|
||||||
|
print("Download rate:" + (str)(down_rate))
|
||||||
|
get_vif_state.append(ssidName)
|
||||||
|
|
||||||
|
if ssidName not in get_vif_state:
|
||||||
|
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||||
|
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||||
|
|
||||||
|
report = setup_perfectoMobile_android[1]
|
||||||
|
driver = setup_perfectoMobile_android[0]
|
||||||
|
connData = get_ToggleAirplaneMode_data
|
||||||
|
|
||||||
|
wifi_connect(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
down_speed, up_speed = return_upload_download_speed_android(request, setup_perfectoMobile_android, connData)
|
||||||
|
wifi_disconnect_and_forget(request, ssidName, ssidPassword, setup_perfectoMobile_android, connData)
|
||||||
|
print(down_speed, up_speed)
|
||||||
|
if float(down_speed) < float(down_rate) and float(up_speed) < float(up_rate):
|
||||||
|
assert True
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
Reference in New Issue
Block a user