Files
wlan-testing/libs/perfecto_interop/android_tests.py

165 lines
8.6 KiB
Python

from android_libs import android_libs
class AndroidTests(android_libs):
setup_perfectoMobile = []
android_devices = {
"Galaxy S10.*": {
"platformName-android": "Android",
"model-android": "Galaxy S10.*",
"appPackage-android": "com.android.settings",
"bundleId-iOS-Settings": "com.apple.Preferences",
"bundleId-iOS-Safari": "com.apple.mobilesafari",
"jobName": "Interop-Galaxy-S10",
"jobNumber": 38
},
"Galaxy S20": {
"platformName-android": "Android",
"model-android": "Galaxy S20",
"appPackage-android": "com.android.settings",
"bundleId-iOS-Settings": "com.apple.Preferences",
"bundleId-iOS-Safari": "com.apple.mobilesafari",
"jobName": "Interop-Galaxy-S20",
"jobNumber": 38
}
}
def __init__(self, perfecto_data=None, dut_data=None, device=None, testcase=None):
# super().__init__(perfecto_data=perfecto_data, dut_data=dut_data)
self.perfecto_data = perfecto_data
self.dut_data = dut_data
self.device = device
self.testcase_name = testcase
self.connData = self.get_ToggleAirplaneMode_data(get_device_configuration=self.perfecto_data[device])
print("connData------", self.connData)
def client_connect(self, ssid, passkey):
global ip_address
self.setup_perfectoMobile = list(self.setup_perfectoMobile_android(get_device_configuration=
self.perfecto_data[self.device],
perfecto_data=self.perfecto_data,
testcase=self.testcase_name))
setup_perfecto_mobile = self.setup_perfectoMobile[0]
try:
ssid_with_internet, setup = self.wifi_connect(ssid=ssid, passkey=passkey, setup_perfectoMobile=
setup_perfecto_mobile, connData=self.connData)
if ssid_with_internet is not None:
ip_address = self.get_ip_address(ssid, setup, self.connData)
self.closeApp(self.connData["appPackage-android"], setup)
self.wifi_disconnect(ssid=ssid, setup_perfectoMobile=setup_perfecto_mobile, connData=self.connData)
self.teardown()
print(ip_address, ssid_with_internet)
if ip_address is not None:
return "PASS", "Device got the IP address"
self.teardown()
else:
self.teardown()
return "FAIL", "Device didn't get the IP address"
else:
self.teardown()
return "FAIL", "SSID didn't get the Internet"
except Exception as e:
print(e)
self.teardown()
return "Fail", "Failed due to exception or Unable to find the API path"
def client_connectivity_test(self, ssid, security=None, dut_data=None, passkey=None, mode=None, band=None, num_sta=None):
self.setup_perfectoMobile = list(self.setup_perfectoMobile_android(get_device_configuration=
self.perfecto_data[self.device],
perfecto_data=self.perfecto_data,
testcase=self.testcase_name))
setup_perfecto_mobile = self.setup_perfectoMobile[0]
try:
ssid_with_internet, setup = self.wifi_connect(ssid=ssid, passkey=passkey, setup_perfectoMobile=
setup_perfecto_mobile, connData=self.connData)
if ssid_with_internet is True:
self.closeApp(self.connData["appPackage-android"], setup)
down_speed, up_speed = self.speed_test(setup_perfecto_mobile)
self.wifi_disconnect(ssid=ssid, setup_perfectoMobile=setup_perfecto_mobile, connData=self.connData)
self.teardown()
if down_speed is not None and up_speed is not None:
return "PASS", "Device connected to SSID and ran Internet speed test"
else:
self.teardown()
return "Fail", "Device didn't get connected to SSID"
else:
self.teardown()
return "FAIL", "SSID didn't get the Internet"
except Exception as e:
print(e)
self.teardown()
return "Fail", "Failed due to exception or Unable to find the API path"
def captive_portal(self, ssid, passkey):
global ip_address
self.setup_perfectoMobile = list(self.setup_perfectoMobile_android(get_device_configuration=
self.perfecto_data[self.device],
perfecto_data=self.perfecto_data,
testcase=self.testcase_name))
setup_perfecto_mobile = self.setup_perfectoMobile[0]
try:
ssid_with_internet, setup = self.wifi_connect(ssid=ssid, passkey=passkey, setup_perfectoMobile=
setup_perfecto_mobile, connData=self.connData)
if ssid_with_internet is True:
ip_address = self.connect_captive_portal(ssid, setup, self.connData)
self.closeApp(self.connData["appPackage-android"], setup)
self.wifi_disconnect(ssid=ssid, setup_perfectoMobile=setup_perfecto_mobile, connData=self.connData)
self.teardown()
return ip_address, ssid_with_internet
else:
self.teardown()
except Exception as e:
print(e)
self.teardown()
if __name__ == '__main__':
perfecto_data = {
"securityToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJpYXQiOjE2MzI4Mzc2NDEsImp0aSI6IjAwZGRiYWY5LWQwYjMtNDRjNS1hYjVlLTkyNzFlNzc5ZGUzNiIsImlzcyI6Imh0dHBzOi8vYXV0aDIucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3RpcC1wZXJmZWN0b21vYmlsZS1jb20iLCJhdWQiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiODNkNjUxMWQtNTBmZS00ZWM5LThkNzAtYTA0ZjBkNTdiZDUyIiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiI2ZjE1YzYxNy01YTU5LTQyOWEtODc2Yi1jOTQxMTQ1ZDFkZTIiLCJzZXNzaW9uX3N0YXRlIjoiYmRjZTFmYTMtMjlkYi00MmFmLWI5YWMtYjZjZmJkMDEyOTFhIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.5R85_1R38ZFXv_wIjjCIsj8NJm1p66dCsLJI5DBEmks",
"projectName": "TIP-PyTest-Execution",
"projectVersion": "1.0",
"reportTags": "TestTag",
"perfectoURL": "tip",
"Galaxy S10.*": {
"platformName-android": "Android",
"model-android": "Galaxy S10.*",
"appPackage-android": "com.android.settings",
"bundleId-iOS-Settings": "com.apple.Preferences",
"bundleId-iOS-Safari": "com.apple.mobilesafari",
"jobName": "Interop-Galaxy-S10",
"jobNumber": 38
}
}
access_point = [{
"model": "edgecore_eap101",
"supported_bands": ["2G", "5G"],
"upstream_port": "1.1.eth1",
"supported_modes": ["BRIDGE", "NAT", "VLAN"],
"ssid": {
"2g-ssid": "OpenWifi",
"5g-ssid": "OpenWifi",
"6g-ssid": "candela6ghz",
"2g-password": "OpenWifi",
"5g-password": "OpenWifi",
"6g-password": "hello123",
"2g-encryption": "WPA2",
"5g-encryption": "open",
"6g-encryption": "WPA3",
"2g-bssid": "68:7d:b4:5f:5c:31 ",
"5g-bssid": "68:7d:b4:5f:5c:3c",
"6g-bssid": "68:7d:b4:5f:5c:38"
},
"mode": "wifi6",
"identifier": "903cb36ae255",
"serial_port": True,
"host_ip": "10.28.3.102",
"host_username": "lanforge",
"host_password": "pumpkin77",
"host_ssh_port": 22,
"serial_tty": "/dev/ttyAP5",
"firmware_version": "next-latest"
}]
obj = AndroidTests(perfecto_data=perfecto_data, dut_data=access_point, device="Galaxy S10.*",
testcase="Test_perfecto_check")
print(obj.client_connectivity_test("ssid_wpa2_2g_RL_55K5113", security=None,
dut_data=None, passkey="something", mode=None, band=None, num_sta=None))