mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-02 11:57:49 +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---------------------------
|
||||
closeApp(connData["appPackage-android"], setup_perfectoMobile)
|
||||
return ip_address_element_text, ssid_with_internet
|
||||
|
||||
#only to connect to wifi
|
||||
def wifi_connect_eap(request, WifiName, User, ttls_passwd, setup_perfectoMobile, connData):
|
||||
print("\n-------------------------------------")
|
||||
@@ -6677,3 +6676,75 @@ def get_phone_information(setup_perfectoMobile, search_this):
|
||||
device_information = driver.execute_script('mobile:handset:info', params)
|
||||
print("device information for "+search_this+" is: ", 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