diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..40b7e1583 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "/Library/Developer/CommandLineTools/usr/bin/python3" +} \ No newline at end of file diff --git a/libs/perfecto/conftest.py b/libs/perfecto/conftest.py new file mode 100644 index 000000000..073052cee --- /dev/null +++ b/libs/perfecto/conftest.py @@ -0,0 +1,535 @@ +import datetime +import sys +import os +import time +import warnings +from selenium.common.exceptions import NoSuchElementException +import urllib3 +from perfecto.model.model import Job, Project +from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,TestContext, TestResultFactory) +import pytest +import logging + +from urllib3 import exceptions + +def pytest_addoption(parser): + parser.addini("perfectoURL", "Cloud URL") + parser.addini("securityToken", "Security Token") + parser.addini("platformName-iOS", "iOS Platform") + parser.addini("platformName-android", "Android Platform") + parser.addini("model-iOS", "iOS Devices") + parser.addini("model-android", "Android Devices") + parser.addini("bundleId-iOS", "iOS Devices") + parser.addini("bundleId-iOS-Settings", "iOS Settings App") + parser.addini("appPackage-android", "Android Devices") + parser.addini("wifi-SSID-5gl-Pwd", "Wifi 5g Password") + parser.addini("wifi-SSID-2g-Pwd", "Wifi 2g Password") + parser.addini("Default-SSID-5gl-perfecto-b", "Wifi 5g AP Name") + parser.addini("Default-SSID-2g-perfecto-b", "Wifi 2g AP Name") + parser.addini("Default-SSID-perfecto-b", "Wifi AP Name") + parser.addini("bundleId-iOS-Ping", "Ping Bundle ID") + parser.addini("browserType-iOS", "Mobile Browser Name") + parser.addini("projectName", "Project Name") + parser.addini("projectVersion", "Project Version") + parser.addini("jobName", "CI Job Name") + parser.addini("jobNumber", "CI Job Number") + parser.addini("reportTags", "Report Tags") + + parser.addoption( + "--access-points", + # nargs="+", + default=["Perfecto"], + help="list of access points to test" + ) + +@pytest.fixture(scope="class") +def setup_perfectoMobileWeb(request): + from selenium 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': request.config.getini("browserType-iOS"), + 'securityToken' : request.config.getini("securityToken") + } + + driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities) + driver.implicitly_wait(25) + + projectname = request.config.getini("projectName") + projectversion = request.config.getini("projectVersion") + jobname = request.config.getini("jobName") + jobnumber = request.config.getini("jobNumber") + tags = request.config.getini("reportTags") + testCaseName = request.config.getini("jobName") + + print("Setting Perfecto ReportClient....") + perfecto_execution_context = PerfectoExecutionContext(driver, tags, Job(jobname, jobnumber),Project(projectname, projectversion)) + reporting_client = PerfectoReportiumClient(perfecto_execution_context) + reporting_client.test_start(testCaseName, TestContext([], "Raj")) + + if driver is None: + yield -1 + else: + yield driver,reporting_client + + try: + print(" -- Tear Down --") + reporting_client.test_stop(TestResultFactory.create_success()) + print('Report-Url: ' + reporting_client.report_url() + '\n') + driver.close() + except Exception as e: + print(" -- Exception Not Able To close --") + print (e.message) + finally: + try: + driver.quit() + except Exception as e: + print(" -- Exception Not Able To Quit --") + print (e.message) + +@pytest.fixture(scope="class") +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"), + 'securityToken' : request.config.getini("securityToken"), + 'bundleId' : request.config.getini("bundleId-iOS"), + } + + driver = webdriver.Remote('https://'+request.config.getini("perfectoURL")+'.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities) + driver.implicitly_wait(25) + + projectname = request.config.getini("projectName") + projectversion = request.config.getini("projectVersion") + jobname = request.config.getini("jobName") + jobnumber = request.config.getini("jobNumber") + tags = request.config.getini("reportTags") + testCaseName = request.config.getini("jobName") + + print("Setting Perfecto ReportClient....") + perfecto_execution_context = PerfectoExecutionContext(driver, tags, Job(jobname, jobnumber),Project(projectname, projectversion)) + reporting_client = PerfectoReportiumClient(perfecto_execution_context) + reporting_client.test_start(testCaseName, TestContext([], "Raj")) + + if driver is None: + yield -1 + else: + yield driver,reporting_client + + try: + print(" -- Tear Down --") + reporting_client.test_stop(TestResultFactory.create_success()) + print('Report-Url: ' + reporting_client.report_url() + '\n') + driver.close() + except Exception as e: + print(" -- Exception Not Able To close --") + print (e.message) + finally: + try: + driver.quit() + except Exception as e: + print(" -- Exception Not Able To Quit --") + print (e.message) + +@pytest.fixture(scope="function") +def get_PassPointConniOS_data(request): + passPoint_data = { + "netAnalyzer-inter-Con-Xpath": "//*[@label='Network Connected']/parent::*/XCUIElementTypeButton", + "bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"), + "bundleId-iOS-Ping": request.config.getini("bundleId-iOS-Ping") + } + yield passPoint_data + +@pytest.fixture(scope="function") +def get_APToMobileDevice_data(request): + passPoint_data = { + "webURL": "https://www.google.com", + "lblSearch": "//*[@class='gLFyf']", + "elelSearch": "(//*[@class='sbic sb43'])[1]", + "BtnRunSpeedTest": "//*[text()='RUN SPEED TEST']", + "downloadMbps": "//*[@id='knowledge-verticals-internetspeedtest__download']/P[@class='spiqle']", + "UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']", + "lblSearch2": "test " + } + yield passPoint_data + +@pytest.fixture(scope="function") +def get_AccessPointConn_data(request): + passPoint_data = { + "bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"), + "bundleId-iOS-Ping": request.config.getini("bundleId-iOS-Ping"), + "Default-SSID-5gl-perfecto-b": request.config.getini("Default-SSID-5gl-perfecto-b"), + "Default-SSID-2g-perfecto-b": request.config.getini("Default-SSID-2g-perfecto-b"), + "Default-SSID-perfecto-b": request.config.getini("Default-SSID-perfecto-b") + + } + yield passPoint_data + +@pytest.fixture(scope="function") +def get_ToggleAirplaneMode_data(request): + passPoint_data = { + "bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"), + "lblSearch": "//*[@class='gLFyf']", + "elelSearch": "(//*[@class='sbic sb43'])[1]", + "BtnRunSpeedTest": "//*[text()='RUN SPEED TEST']", + "downloadMbps": "//*[@id='knowledge-verticals-internetspeedtest__download']/P[@class='spiqle']", + "UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']", + + } + yield passPoint_data + +@pytest.fixture(scope="function") +def get_ToggleWifiMode_data(request): + passPoint_data = { + "bundleId-iOS-Settings": request.config.getini("bundleId-iOS-Settings"), + "wifi-SSID-5gl-Pwd": request.config.getini("wifi-SSID-5gl-Pwd"), + "wifi-SSID-2g-Pwd": request.config.getini("wifi-SSID-2g-Pwd") + } + yield passPoint_data + +def openApp(appName, setup_perfectoMobile): + #print("Refreshing App: " + appName) + setup_perfectoMobile[1].step_start("Opening App: " + appName) + params = {'identifier': appName} + #Open/Close/Open Action is performed to ensure the app is back to its Original Settings + setup_perfectoMobile[0].execute_script('mobile:application:open', params) + setup_perfectoMobile[0].execute_script('mobile:application:close', params) + setup_perfectoMobile[0].execute_script('mobile:application:open', params) + +def closeApp(appName, setup_perfectoMobile): + #print("Closing App.." + appName) + setup_perfectoMobile[1].step_start("Closing App: " + appName) + params = {'identifier': appName} + setup_perfectoMobile[0].execute_script('mobile:application:close', params) + +def set_APconnMobileDevice_iOS(WifiName, setup_perfectoMobile, connData): + + print("Verifying Wifi/AP Connection Details....") + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + report.step_start("Set Wifi Network to " + WifiName) + + #Open Settings Application + openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile) + + try: + # print("Verifying Connected Wifi Connection") + report.step_start("Verifying Connected Wifi Connection") + element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") + Wifi_AP_Name = element.text + except NoSuchElementException: + print("Exception: Verify Xpath - UpdateXpath") + + #NEED to fail if Wifi AP NAME isn't in the approved list AKA 5g & 2g. + #print("Wifi Name Matches - Already Connected To: " + Wifi_AP_Name) + #print("Wifi Name Matches - Already Connected To: " + WifiName) + + if Wifi_AP_Name.__eq__(WifiName): + print("Wifi Name Matches - Already Connected To: " + Wifi_AP_Name) + + #Verify if Ap is connected with Wifi + report.step_start("Verify Wifi Connection Status..") + #print("Click Wifi Connection..") + element.click() + + #Verifies if AP is connected to Wifi status + #print("Verify Wifi Connection Status..") + report.step_start("Verify Wifi Connected Status") + WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" + elementWifName = driver.find_element_by_xpath(WifiXpath) + + #Check AP Internet Error Msg + print("Checking Internet Connection Error..") + report.step_start("Checking Internet Connection Error..") + + try: + WifiInternetErrMsg = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text + except NoSuchElementException: + report.assertSoft + print("Wifi-AP Connected Successfully: " + Wifi_AP_Name) + + else: + try: + report.step_start("Selecting Wifi...: " + WifiName) + element.click() + except NoSuchElementException: + print("Exception: Selection Wifi Network") + + try: + wifiXpath2 = driver.find_element_by_xpath("//*[@label='"+ WifiName + "']") + wifiXpath2.click() + + except NoSuchElementException: + print("\n Can't find Wifi/AP NAME.....CheckXpath & Wifi Name") + # print (e.message) + + #Set password if Needed + try: + wifiPassword = driver.find_element_by_xpath("//*[@label='Password']") + wifiPassword.send_keys(connData["wifi-SSID-2g-Pwd"]) + except NoSuchElementException: + print("Enter Password Page Not Loaded ") + + try: + joinBTN = driver.find_element_by_xpath("//*[@label='Join']") + joinBTN.click() + except NoSuchElementException: + print("Join Button Not Enabled...Verify if Password is set properly ") + + try: + WifiInternetErrMsg2 = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text + except NoSuchElementException: + print("Wifi-AP Connected Successfully: " + WifiName) + +def Toggle_AirplaneMode_iOS(setup_perfectoMobile, connData): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + #Open Settings Application + openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile) + + #Toggle Airplane Mode + print("Toggle Airplane Mode..") + report.step_start("Toggle Airplane Mode") + try: + AirplaneMode = driver.find_element_by_xpath("//XCUIElementTypeSwitch[@label='Airplane Mode']") + #Toggle Airplane Mode + AirplaneMode.click() + + #Verify Cellular Mode Text + report.step_start("Verify Cellular Mode") + try: + CellularMsgEle = driver.find_element_by_xpath("//*[@name='Airplane Mode' and @value='Airplane Mode']") + #ssertEqual(CellularMsgEle.text, "Airplane Mode", "Airplane Mode Not Triggerd") + print("Verify Cellular Mode Text: Airplane Mode Success") + except NoSuchElementException: + print("Cellular Mode Not in Airplane Mode: ERROR") + + #Set Airplane Mode Back + AirplaneMode.click() + except NoSuchElementException: + print("Airplane Wifi Button not loaded...") + + #Verify No Sim Card Installed Msg Popup + report.step_start("Verify No Sim Card Installed Msg Popup") + print("Verify No Sim Card Installed Msg Popup..") + try: + NoSimCardErrorMsg = driver.find_element_by_xpath("//*[@value='No SIM Card Installed']") + except NoSuchElementException: + print("No Sim Card AlertMsg") + + #Click ok on No Sim Card Msg Popup + print("Click ok on No Sim Card Msg Popup..") + report.step_start("Click ok on No Sim Card Msg Popup") + try: + NoSimCardErrorMsgOK = driver.find_element_by_xpath("//*[@label='OK']") + NoSimCardErrorMsgOK.click() + except NoSuchElementException: + print("No Sim Card AlertMsg") + +def verify_APconnMobileDevice_iOS(WifiName, setup_perfectoMobile, connData): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + report.step_start("Verifying WifiName: " + WifiName) + + #Refresh Settings Application + openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile) + + #Verifies if AP is connected to Wifi status + try: + # print("Verifying Connected Wifi Connection") + report.step_start("Verifying Connected Wifi Connection") + element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") + Wifi_AP_Name = element.text + + except NoSuchElementException: + print("Exception: Verify Xpath - UpdateXpath") + + try: + if Wifi_AP_Name.__eq__(WifiName): + print("Wifi Name Matched Successful ") + #print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'" + " Not Equal To: " + WifiName + "....Check AP Name Syntax") + return True + else: + print ("-- Wifi Don't Match Match -- ") + #print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'" + " Not Equal To: " + WifiName + "....Check AP Name Syntax") + return False + except NoSuchElementException: + print("Exception Checking Wifi/AP connection NAME...") + return None + +def Toggle_WifiMode_iOS(setup_perfectoMobile, connData): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + #Open Settings Application + #openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile) + + report.step_start("Toggle Wifi Mode") + print("Toggle Wifi Mode..") + try: + WifiMode = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='1']") + #Toggle Wifi Mode + WifiMode.click() + #Verify Radio Button Mode + try: + WifiDissconnected = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']") + #self.assertEqual(WifiDissconnected.text, "Airplane Mode", "Airplane Mode Not Triggerd") + print("Wifi Radio Button Toggled to Disable") + except NoSuchElementException: + print("Wifi Radio Button Not Disabled...") + + #Set Airplane Mode Back + WifiDissconnected.click() + print("Wifi Radio Button Toggled to Enabled") + except NoSuchElementException: + print("Airplane Wifi Button not loaded...") + +def get_WifiIPAddress_iOS(setup_perfectoMobile, connData): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile) + + try: + # print("Verifying Connected Wifi Connection") + report.step_start("Loading Wifi Page") + element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") + element.click() + except NoSuchElementException: + print("Exception: Verify Xpath - unable to click on Wifi") + + report.step_start("Wifi Page") + WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ connData["Default-SSID-perfecto-b"] + "']" + elementWifName = driver.find_element_by_xpath(WifiXpath) + #Check AP Internet Error Msg + print("Checking Internet Connection Error...") + report.step_start("Checking Internet Connection Error..") + + try: + driver.implicitly_wait(5) + WifiInternetErrMsg = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text + except NoSuchElementException: + #Need to fail test case + driver.implicitly_wait(25) + print("Wifi Connected without any errors: " + connData["Default-SSID-perfecto-b"]) + #Fail TEST CASE + + try: + WifiInternetInfo=driver.find_element_by_xpath("(//XCUIElementTypeButton[@label='More Info'])[1]") + WifiInternetInfo.click() + except NoSuchElementException: + print("Wifi-AP Connected Successfully: " + connData["Default-SSID-perfecto-b"]) + + try: + WifiIPaddress= driver.find_element_by_xpath("(//*[@label='Router']/parent::*/XCUIElementTypeStaticText)[2]").text + return WifiIPaddress + except NoSuchElementException: + print("Wifi-AP Connected Successfully: " + connData["Default-SSID-perfecto-b"]) + + return None + +def ping_deftapps_iOS(setup_perfectoMobile, AP_IPaddress): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + report.step_start("Pinging deftapps....") + try: + pingHost = "//*[@value='']" + element2 = driver.find_element_by_xpath(pingHost) + element2.clear() + #element2.send_keys(AP_IPaddress) + element2.send_keys("8.8.8.8") + + #Ping Enable + report.step_start("Pingin Host") + print("Pingin Host..") + element3 = driver.find_element_by_xpath("//*[@label='go']") + element3.click() + + time.sleep(10) + + #handle any popup + + report.step_start("Stop Ping Host") + print("Stop Ping Host..") + element4 = driver.find_element_by_xpath("//*[@label='Stop']") + element4.click() + + # /* Check Packet Loss */ + report.step_start("Verifying Packet Loss..") + print("Verifying Packet Loss..") + try: + element5 = driver.find_element_by_xpath("//XCUIElementTypeStaticText[@label='0']") + #assertEqual(element5.text, "0", "Packet Loss Exist, Please Check Device") + except NoSuchElementException: + print("No Packet Loss Detected 1st Attempt") + + report.step_start("Verifying Packet Sent..") + print("Verifying Packet Sent..") + try: + packetSent = driver.find_element_by_xpath("//XCUIElementTypeStaticText[@label='Sent']/parent::*/XCUIElementTypeStaticText[2]").text + #assertEqual(element5.text, "0", "Packet Loss Exist, Please Check Device") + except NoSuchElementException: + print("-------Exception: Packet Sent Error, check object ID") + + report.step_start("Verifying Packet Received..") + print("Verifying Packet Received..") + try: + packetReceived = driver.find_element_by_xpath("//XCUIElementTypeStaticText[@label='Received']/parent::*/XCUIElementTypeStaticText[2]").text + #assertEqual(element5.text, "0", "Packet Loss Exist, Please Check Device") + except NoSuchElementException: + print("-------Exception: Packet Sent Error, check object ID") + + print("Total Packet Sent: " + packetSent + " Packed Recieved: " + packetReceived) + + # Also Check #Sendto: No route to host + print("Verifying No route to host Error Msg....") + report.step_start("Verifying No route to host Error Msg..") + try: + element7 = driver.find_element_by_xpath("(//XCUIElementTypeStaticText[@label='Sendto: No route to host'])[2]") + print("Packet Loss Detected on AP!!!!!: " + AP_IPaddress) + #self.assertNotEqual(element7.text, "Sendto: No route to host", "Packet Loss Exist, Please Check Device AP: " + Wifi_AP_Name) + except NoSuchElementException: + print("\nNo Packet Loss Detected on AP!!!!!: " + AP_IPaddress) + + except NoSuchElementException: + print("Exception while ping Deft App on iOS") + + return None + +def tearDown(setup_perfectoMobile): + report = setup_perfectoMobile[1] + driver = setup_perfectoMobile[0] + + report.step_start("Exception Failure Tear Down....") + + try: + print(" -- Tear Down --") + report.test_stop(TestResultFactory.create_failure) + print('Report-Url: ' + report.report_url() + '\n') + driver.close() + except Exception as e: + print(" -- Exception Not Able To close --") + print (e.message) + finally: + try: + driver.quit() + except Exception as e: + print(" -- Exception Not Able To Quit --") + print (e.message) \ No newline at end of file diff --git a/libs/perfecto/iOS/BaseClassWebiOS.py b/libs/perfecto/iOS/BaseClassWebiOS.py deleted file mode 100644 index aeaca61f4..000000000 --- a/libs/perfecto/iOS/BaseClassWebiOS.py +++ /dev/null @@ -1,115 +0,0 @@ -import os -import sys -import unittest -import warnings -import urllib3 -import argparse -from perfecto.model.model import Job, Project -from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,TestContext, TestResultFactory) -#from appium import webdriver -from selenium import webdriver - -class TestConf(unittest.TestCase): - projectname = 'TIP Project' - projectversion = '1.0' - jobname = 'Tip-CI-Regression' - jobnumber = 2 - tags = 'TestTag' - - def __init__(self, *args, **kwargs): - warnings.simplefilter("ignore", ResourceWarning) - #Suppress InsecureRequestWarning: Unverified HTTPS request is being made - urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - - self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw' - self.host = 'tip.perfectomobile.com' - self.driver = None - self.reporting_client = None - self.running = False - self.suitesetup = False - self.setupclient = None - self.tags = '' - self.testCaseName = 'VerifyAPToMobileDevice' - super(TestConf, self).__init__(*args, **kwargs) - - - def init_listener(self, projectname=None, projectversion=None, jobname=None, jobnumber=None): - """ - This key word helps to initialize the listener with proper project info - :param projectname: current project name - :param projectversion: current project version - :param jobname: the CI job name - :param jobnumber: the CI job number - :return: - """ - if projectname != None: - self.projectname = projectname - if projectversion != None: - self.projectversion = projectversion - if jobname != None: - self.jobname = jobname - if jobnumber != None: - self.jobnumber = int(float(jobnumber)) - - - def setUp(self): - warnings.simplefilter("ignore", ResourceWarning) - capabilities = { - 'platformName': 'iOS', - #'manufacturer': 'Apple', - 'browserName': 'safari', - 'securityToken' : 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw', - #'bundleId': 'com.apple.mobilesafari', - #'enableAppiumBehavior': True, # Enable new architecture of Appium - # 'autoLaunch': True, # To work with hybrid applications, install the iOS/Android application as instrumented. - 'model': 'iPhone.*' - } - - #self.driver = webdriver.Remote('https://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities) - - self.driver = webdriver.Remote('https://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities) - self.driver.implicitly_wait(20) - self.create_reporting_client() - self.reporting_client.test_start(self.testCaseName, TestContext([], 'TipCustomTag')) - - def run(self, result=None): - self.currentResult = True # remember result for use in tearDown - unittest.TestCase.run(self, result) # call superclass run method - - def tearDown(self): - warnings.simplefilter("ignore", ResourceWarning) - try: - print("-------------------------------------------") - print(" -- Tear Down --") - - self.reporting_client.test_stop(TestResultFactory.create_success()) - #if self.currentResult.wasSuccessful(): - # self.reporting_client.test_stop(TestResultFactory.create_success()) - # else: - # self.reporting_client.test_stop(TestResultFactory.create_failure('failure 4096' * 1000)) - - # self.reporting_client.test_stop(TestResultFactory.create_failure(self.currentResult.errors, - # self.currentResult.failures)) - # Print report's url - print('Report-Url: ' + self.reporting_client.report_url() + '\n') - except Exception as e: - print (e.message) - - try: - self.driver.close() - except Exception as e: - print(" -- Exception Not Able To close --") - print (e.message) - finally: - try: - self.driver.quit() - except Exception as e: - print(" -- Exception Not Able To Quit --") - print (e.message) - - - def create_reporting_client(self): - perfecto_execution_context = PerfectoExecutionContext(self.driver, self.tags, Job(self.jobname, self.jobnumber), - Project(self.projectname, self.projectversion)) - #perfecto_execution_context = PerfectoExecutionContext(self.driver, ['execution tag1', 'execution tag2']) - self.reporting_client = PerfectoReportiumClient(perfecto_execution_context) diff --git a/libs/perfecto/iOS/BaseClassiOS.py b/libs/perfecto/iOS/BaseClassiOS.py deleted file mode 100644 index e09ba58fb..000000000 --- a/libs/perfecto/iOS/BaseClassiOS.py +++ /dev/null @@ -1,109 +0,0 @@ -import os -import sys -import unittest -import warnings -import urllib3 -import argparse -from perfecto.model.model import Job, Project -from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,TestContext, TestResultFactory) -from appium import webdriver -from selenium import webdriver - -class TestConf(unittest.TestCase): - projectname = 'TIP Project' - projectversion = '1.0' - jobname = 'Tip-CI-Regression' - jobnumber = 2 - tags = 'TestTag' - - def __init__(self, *args, **kwargs): - warnings.simplefilter("ignore", ResourceWarning) - #Suppress InsecureRequestWarning: Unverified HTTPS request is being made - urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - - self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw' - self.host = 'tip.perfectomobile.com' - self.driver = None - self.reporting_client = None - self.running = False - self.suitesetup = False - self.setupclient = None - self.tags = '' - self.testCaseName = 'VerifyAPToMobileDevice' - super(TestConf, self).__init__(*args, **kwargs) - - def init_listener(self, projectname=None, projectversion=None, jobname=None, jobnumber=None): - """ - This key word helps to initialize the listener with proper project info - :param projectname: current project name - :param projectversion: current project version - :param jobname: the CI job name - :param jobnumber: the CI job number - :return: - """ - if projectname != None: - self.projectname = projectname - if projectversion != None: - self.projectversion = projectversion - if jobname != None: - self.jobname = jobname - if jobnumber != None: - self.jobnumber = int(float(jobnumber)) - - - def setUp(self): - warnings.simplefilter("ignore", ResourceWarning) - capabilities = { - 'platformName': 'iOS', - 'manufacturer': 'Apple', - 'model': 'iPhone.*', - 'bundleId': 'net.techet.netanalyzerlite', - 'securityToken' : "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw", - - } - - - self.driver = webdriver.Remote('https://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities) - self.create_reporting_client() - self.reporting_client.test_start(self.testCaseName, TestContext([], 'TipCustomTag')) - - def run(self, result=None): - self.currentResult = result # remember result for use in tearDown - unittest.TestCase.run(self, result) # call superclass run method - - def tearDown(self): - warnings.simplefilter("ignore", ResourceWarning) - try: - print("-------------------------------------------") - print(" -- Tear Down --") - - self.reporting_client.test_stop(TestResultFactory.create_success()) - #if self.currentResult.wasSuccessful(): - # self.reporting_client.test_stop(TestResultFactory.create_success()) - # else: - # self.reporting_client.test_stop(TestResultFactory.create_failure('failure 4096' * 1000)) - - # self.reporting_client.test_stop(TestResultFactory.create_failure(self.currentResult.errors, - # self.currentResult.failures)) - # Print report's url - print('Report-Url: ' + self.reporting_client.report_url() + '\n') - except Exception as e: - print (e.message) - - try: - self.driver.close() - except Exception as e: - print(" -- Exception Not Able To close --") - print (e.message) - finally: - try: - self.driver.quit() - except Exception as e: - print(" -- Exception Not Able To Quit --") - print (e.message) - - def create_reporting_client(self): - perfecto_execution_context = PerfectoExecutionContext(self.driver, self.tags, Job(self.jobname, self.jobnumber), - Project(self.projectname, self.projectversion)) - #perfecto_execution_context = PerfectoExecutionContext(self.driver, ['execution tag1', 'execution tag2']) - self.reporting_client = PerfectoReportiumClient(perfecto_execution_context) diff --git a/libs/perfecto/iOS/ToggleAirplaneModeiOS.py b/libs/perfecto/iOS/ToggleAirplaneModeiOS.py deleted file mode 100644 index f58034193..000000000 --- a/libs/perfecto/iOS/ToggleAirplaneModeiOS.py +++ /dev/null @@ -1,180 +0,0 @@ -import time -import unittest -import warnings - -#from perfecto import TestResultFactory -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.common.by import By -import argparse -from BaseClassiOS import TestConf - - -class ReportingTests(TestConf): - - def test_navigation(self): - warnings.simplefilter("ignore", ResourceWarning) - try: - # assert 'Perfecto' in self.driver.title - print("-------------------------------------------") - #REPORTIUM TEST START - #self.reporting_client.step_start("BasicConnectionTest") - #DefaultGateWayAccessPoint = self.driver.find_element_by_xpath("//*[@label='Default Gateway IP']/parent::*/XCUIElementTypeButton").text - # print("Device-DefaultGateWay-AP: " + "'"+ DefaultGateWayAccessPoint + "'") - #self.assertNotEqual(DefaultGateWayAccessPoint, "N/A", "Check Wifi Access Point") - print("Verify Internet Connection..") - self.reporting_client.step_start("Verify Internet Connection") - networkAccessPoint = self.driver.find_element_by_xpath("//*[@label='Network Connected']/parent::*/XCUIElementTypeButton").text - print("Network-AccessPoint-Connected: " + "'"+ networkAccessPoint + "'") - - #Open Setting Application - print("Opening Settings App..") - self.reporting_client.step_start("Opening Settings App") - params = {'identifier': 'com.apple.Preferences'} - self.driver.execute_script('mobile:application:open', params) - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - print("Verify Wifi Connection Name..") - self.reporting_client.step_start("Verify Wifi Connection Name") - element = self.driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") - Wifi_AP_Name = element.text - print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'") - - #Verify if Ap is connected with Wifi - self.reporting_client.step_start("Click Wifi Connection") - print("Click Wifi Connection..") - element.click() - - #Verifies if AP is connected to Wifi status - print("Verify Wifi Connection Status..") - self.reporting_client.step_start("Verify Wifi Connection Status") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - print("Checking Internet Connection Error..") - self.reporting_client.step_start("Checking Internet Connection Error") - # self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - - #Close/Open App resets the settings app back to home page - self.reporting_client.step_start("Close/Open App Reset Settings") - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - #Toggle Airplane Mode - print("Toggle Airplane Mode..") - self.reporting_client.step_start("Toggle Airplane Mode..") - try: - AirplaneMode = self.driver.find_element_by_xpath("//XCUIElementTypeSwitch[@label='Airplane Mode']") - #Toggle Airplane Mode - AirplaneMode.click() - - #Verify Cellular Mode Text - try: - self.reporting_client.step_start("Verify Cellular Mode..") - CellularMsgEle = self.driver.find_element_by_xpath("//*[@name='Airplane Mode' and @value='Airplane Mode']") - self.assertEqual(CellularMsgEle.text, "Airplane Mode", "Airplane Mode Not Triggerd") - except NoSuchElementException: - print("Exception Cellular Mode Not in Airplane Mode: CheckPhoneStatus") - - #Set Airplane Mode Back - AirplaneMode.click() - except NoSuchElementException: - print("Airplane Wifi Button not loaded...") - - #Verify No Sim Card Installed Msg Popup - print("Verify No Sim Card Installed Msg Popup..") - self.reporting_client.step_start("Verify No Sim Card Installed Msg Popup") - try: - NoSimCardErrorMsg = self.driver.find_element_by_xpath("//*[@value='No SIM Card Installed']") - except NoSuchElementException: - print(" ----- No Sim Card AlertMsg ----") - - #Click ok on No Sim Card Msg Popup - print("Click ok on No Sim Card Msg Popup..") - self.reporting_client.step_start("Click ok on No Sim Card Msg Popup..") - try: - NoSimCardErrorMsgOK = self.driver.find_element_by_xpath("//*[@label='OK']") - NoSimCardErrorMsgOK.click() - except NoSuchElementException: - print(" ----- No Sim Card AlertMsg -----") - - #Close/Open App resets the settings app back to home page - self.reporting_client.step_start("Close/Open App resets the settings") - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - #time.sleep(5) - self.reporting_client.step_start("Verify Wifi Connection Name after Toggle Mode") - print("Verify Wifi Connection Name after Airplane Toggle Mode..") - element22 = self.driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") - Wifi_AP_NameNew = element22.text - print("Wifi_AP_ConnNameAfterToggle: " + "'"+ Wifi_AP_NameNew + "'") - - #self.assertqual(Wifi_AP_Name, "Sendto: No route to host", "Packet Loss Exist, Please Check Device AP: " + Wifi_AP_Name) - #self.assertEqual(Wifi_AP_Name, Wifi_AP_NameNew, "AP Connection Successfull") - - #Verify if Ap is connected with Wifi - self.reporting_client.step_start("Click Wifi Connection after Airplane Toggle Mode") - print("Click Wifi Connection after Airplane Toggle Mode..") - element22.click() - - #Verifies if AP is connected to Wifi status - print("Verify Wifi Connection Status..") - self.reporting_client.step_start("Verify Wifi Connection Status") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - print("Checking Internet Connection Error..") - self.reporting_client.step_start("Checking Internet Connection Error") - # self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - - #Close Settings App - self.reporting_client.step_start("Close Settings App") - print("Close Settings App") - self.driver.execute_script('mobile:application:close', params) - - except NoSuchElementException as ex: - self.currentResult = False - #self.reporting_client.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) - print (ex.message) - self.currentResult = True - #self.reporting_client.test_stop(Tes - -if __name__ == '__main__': - # parser = argparse.ArgumentParser(description="Perfecto Arguments") - - #parser.add_argument( - # "-c", - # "--cloud_name", - # metavar="cloud_name", - # help="Perfecto cloud name. (E.g. demo)", - #) - # parser.add_argument( - # "-s", - # "--security_token", - # metavar="security_token", - # help="Perfecto cloud name. (E.g. demo)", - # ) - - #args = vars(parser.parse_args()) - - #if not args["cloud_name"]: - # parser.print_help() - # parser.error( - # "cloud_name parameter is empty. Pass the argument -c followed by cloud_name" - # ) - # exit - - #print(str(args["cloud_name"])) - - unittest.main() diff --git a/libs/perfecto/iOS/ToggleWifiModeiOS.py b/libs/perfecto/iOS/ToggleWifiModeiOS.py deleted file mode 100644 index 4477d499c..000000000 --- a/libs/perfecto/iOS/ToggleWifiModeiOS.py +++ /dev/null @@ -1,141 +0,0 @@ -import time -import unittest -import warnings - -#from perfecto import TestResultFactory -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.common.by import By -import argparse -from BaseClassiOS import TestConf - - -class ReportingTests(TestConf): - - def test_navigation(self): - warnings.simplefilter("ignore", ResourceWarning) - try: - # assert 'Perfecto' in self.driver.title - print("-------------------------------------------") - #REPORTIUM TEST START - #self.reporting_client.step_start("BasicConnectionTest") - #DefaultGateWayAccessPoint = self.driver.find_element_by_xpath("//*[@label='Default Gateway IP']/parent::*/XCUIElementTypeButton").text - # print("Device-DefaultGateWay-AP: " + "'"+ DefaultGateWayAccessPoint + "'") - #self.assertNotEqual(DefaultGateWayAccessPoint, "N/A", "Check Wifi Access Point") - print("Verify Internet Connection..") - self.reporting_client.step_start("Verify Internet Connection") - networkAccessPoint = self.driver.find_element_by_xpath("//*[@label='Network Connected']/parent::*/XCUIElementTypeButton").text - print("Network-AccessPoint-Connected: " + "'"+ networkAccessPoint + "'") - - #Open Setting Application - Resets to Home - print("Opening Settings App..") - self.reporting_client.step_start("Opening Settings App") - params = {'identifier': 'com.apple.Preferences'} - self.driver.execute_script('mobile:application:open', params) - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - print("Verify Wifi Connection Name..") - self.reporting_client.step_start("Verify Wifi Connection Name.") - element = self.driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") - Wifi_AP_Name = element.text - print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'") - - #Verify if Ap is connected with Wifi - self.reporting_client.step_start("Click Wifi Connection.") - print("Click Wifi Connection..") - element.click() - - #Verifies if AP is connected to Wifi status - print("Verify Wifi Connection Status..") - self.reporting_client.step_start("Verify Wifi Connection Status") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - self.reporting_client.step_start("Checking Internet Connection Error") - print("Checking Internet Connection Error..") - # self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - - #Close/Open App resets the settings app back to home page - #self.driver.execute_script('mobile:application:close', params) - #self.driver.execute_script('mobile:application:open', params) - - #Toggle Wifi Mode - self.reporting_client.step_start("Toggle Wifi Mode") - print("Toggle Wifi Mode..") - try: - WifiMode = self.driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='1']") - #Toggle Wifi Mode - WifiMode.click() - #Verify Radio Button Mode - try: - WifiDissconnected = self.driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']") - #self.assertEqual(WifiDissconnected.text, "Airplane Mode", "Airplane Mode Not Triggerd") - print("Wifi Radio Button Disconnected Successfully") - except NoSuchElementException: - print("Wifi Radio Button Not Disabled...") - - #Set Airplane Mode Back - WifiDissconnected.click() - except NoSuchElementException: - print("Airplane Wifi Button not loaded...") - - #Verifies if AP is connected to Wifi status - self.reporting_client.step_start("Verify Wifi Connection Status") - print("Verify Wifi Connection Status..") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - print("Checking Internet Connection Error..") - self.reporting_client.step_start("Checking Internet Connection Error") - # self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - - #Close Settings App - self.reporting_client.step_start("Close Settings App") - print("Close Settings App") - self.driver.execute_script('mobile:application:close', params) - - except NoSuchElementException as ex: - self.currentResult = False - #self.reporting_client.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) - print (ex.message) - self.currentResult = True - #self.reporting_client.test_stop(Tes - -if __name__ == '__main__': - # parser = argparse.ArgumentParser(description="Perfecto Arguments") - - #parser.add_argument( - # "-c", - # "--cloud_name", - # metavar="cloud_name", - # help="Perfecto cloud name. (E.g. demo)", - #) - # parser.add_argument( - # "-s", - # "--security_token", - # metavar="security_token", - # help="Perfecto cloud name. (E.g. demo)", - # ) - - #args = vars(parser.parse_args()) - - #if not args["cloud_name"]: - # parser.print_help() - # parser.error( - # "cloud_name parameter is empty. Pass the argument -c followed by cloud_name" - # ) - # exit - - #print(str(args["cloud_name"])) - - unittest.main() diff --git a/libs/perfecto/iOS/VerifyAPToMobileDevice.py b/libs/perfecto/iOS/VerifyAPToMobileDevice.py deleted file mode 100644 index e026800be..000000000 --- a/libs/perfecto/iOS/VerifyAPToMobileDevice.py +++ /dev/null @@ -1,110 +0,0 @@ -import time - -import unittest -import warnings -from selenium.webdriver.common.keys import Keys -#from perfecto import TestResultFactory -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.common.by import By -import argparse - -from urllib3.exceptions import HeaderParsingError -from BaseClassWebiOS import TestConf - - -class ReportingTests(TestConf): - - def test_navigation(self): - try: - print("-----------------AP TO MOBILE DEVICE--------------------------") - #REPORTIUM TEST START - #self.reporting_client.step_start("BasicConnectionTest") - - #Search - try: - self.reporting_client.step_start("Google Home Page") - self.driver.get('https://www.google.com') - lblSearch = "//*[@class='gLFyf']" - elementFindTxt = self.driver.find_element_by_xpath(lblSearch) - elementFindTxt.send_keys("Internet Speed Test") - - try: - elelSearch = self.driver.find_element_by_xpath("(//*[@class='sbic sb43'])[1]") - elelSearch.click() - except NoSuchElementException: - print("Enter Not Active...") - - self.reporting_client.step_start("Verify Run Button") - BtnRunSpeedTest = "//*[text()='RUN SPEED TEST']" - self.driver.find_element_by_xpath(BtnRunSpeedTest).click() - - #Get upload/Download Speed - try: - self.reporting_client.step_start("Get upload/Download Speed") - time.sleep(60) - downloadMbps = self.driver.find_element_by_xpath("//*[@id='knowledge-verticals-internetspeedtest__download']/P[@class='spiqle']") - downloadSpeed = downloadMbps.text - print("Download: " + downloadSpeed + " Mbps") - - UploadMbps = self.driver.find_element_by_xpath("//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']") - uploadSpeed = UploadMbps.text - print("Upload: " + uploadSpeed + " Mbps") - - print("Access Point Verification Completed Successfully") - - except NoSuchElementException: - print("Access Point Verification NOT Completed, checking Connection....") - - except Exception as e: - print (e.message) - - #refresh page //*[@label="reload"] - #TestAgain: //*[text()="TEST AGAIN"] - - - - # time.sleep(20) - - - #Close Settings App - # self.driver.execute_script('mobile:application:close', params2) - - #REPORTIUM TEST END - #self.reporting_client.step_end() - - except NoSuchElementException as ex: - self.currentResult = False - #self.reporting_client.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) - print (ex.message) - self.currentResult = True - #self.reporting_client.test_stop(Tes - -if __name__ == '__main__': - # parser = argparse.ArgumentParser(description="Perfecto Arguments") - - #parser.add_argument( - # "-c", - # "--cloud_name", - # metavar="cloud_name", - # help="Perfecto cloud name. (E.g. demo)", - #) - # parser.add_argument( - # "-s", - # "--security_token", - # metavar="security_token", - # help="Perfecto cloud name. (E.g. demo)", - # ) - - #args = vars(parser.parse_args()) - - #if not args["cloud_name"]: - # parser.print_help() - # parser.error( - # "cloud_name parameter is empty. Pass the argument -c followed by cloud_name" - # ) - # exit - - #print(str(args["cloud_name"])) - unittest.main() - - \ No newline at end of file diff --git a/libs/perfecto/iOS/VerifyAccessPointConnectionTest.py b/libs/perfecto/iOS/VerifyAccessPointConnectionTest.py deleted file mode 100644 index e7f29373f..000000000 --- a/libs/perfecto/iOS/VerifyAccessPointConnectionTest.py +++ /dev/null @@ -1,160 +0,0 @@ -import time -import unittest - -#from perfecto import TestResultFactory -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.common.by import By -import argparse -from BaseClassiOS import TestConf - - -class ReportingTests(TestConf): - - def test_navigation(self): - try: - # assert 'Perfecto' in self.driver.title - print("-------------------------------------------") - #REPORTIUM TEST START - #self.reporting_client.step_start("BasicConnectionTest") - self.reporting_client.step_start("Check Wifi Access Point") - DefaultGateWayAccessPoint = self.driver.find_element_by_xpath("//*[@label='Default Gateway IP']/parent::*/XCUIElementTypeButton").text - print("Device-DefaultGateWay-AP: " + "'"+ DefaultGateWayAccessPoint + "'") - self.assertNotEqual(DefaultGateWayAccessPoint, "N/A", "Check Wifi Access Point") - - networkAccessPoint = self.driver.find_element_by_xpath("//*[@label='Network Connected']/parent::*/XCUIElementTypeButton").text - print("Network-AccessPoint-Connected: " + "'"+ networkAccessPoint + "'") - - #Open Setting Application - print("Opening Settings App..") - self.reporting_client.step_start("Opening Settings App") - params = {'identifier': 'com.apple.Preferences'} - self.driver.execute_script('mobile:application:open', params) - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - #Verify Wifi Connected Network - #try: - # settingsBTN = self.driver.find_element_by_xpath("//XCUIElementTypeButton[@label='Settings']") - # settingsBTN.click() - #except NoSuchElementException: - #print("Wifi Main Menu") - - print("Verify Wifi Connection Name..") - self.reporting_client.step_start("Verify Wifi Connection Name..") - element = self.driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") - Wifi_AP_Name = element.text - print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'") - - #Verify if Ap is connected with Wifi - self.reporting_client.step_start("Click Wifi Connection..") - print("Click Wifi Connection..") - element.click() - - #Verifies if AP is connected to Wifi status - print("Verify Wifi Connection Status..") - self.reporting_client.step_start("Verify Wifi Connection Status..") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - self.reporting_client.step_start("Checking Internet Connection Error") - print("Checking Internet Connection Error..") - self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - self.driver.implicitly_wait(30) - - #Close Settings App - self.reporting_client.step_start("Close Settings App") - print("Close Settings App") - self.driver.execute_script('mobile:application:close', params) - - #Open Ping App - print("Open Ping Application & Ping Host..") - self.reporting_client.step_start("Open Ping Application & Ping Host") - params2 = {'identifier': 'com.deftapps.ping'} - self.driver.execute_script('mobile:application:open', params2) - # The reason to close is to clear any cache from any previous failures - self.reporting_client.step_start("Clear any App Cache") - self.driver.execute_script('mobile:application:close', params2) - self.driver.execute_script('mobile:application:open', params2) - - pingHost = "//*[@value='']" - element2 = self.driver.find_element_by_xpath(pingHost) - element2.clear() - element2.send_keys(DefaultGateWayAccessPoint) - - #Ping Enable - self.reporting_client.step_start("Pingin Host") - print("Pingin Host..") - element3 = self.driver.find_element_by_xpath("//XCUIElementTypeButton[@label='Ping']") - element3.click() - - time.sleep(10) - self.reporting_client.step_start("Stop Ping Host") - print("Stop Ping Host..") - element4 = self.driver.find_element_by_xpath("//*[@label='Stop']") - element4.click() - - # /* Check Packet Loss */ - self.reporting_client.step_start("Verifying Packet Loss..") - print("Verifying Packet Loss..") - try: - element5 = self.driver.find_element_by_xpath("//XCUIElementTypeStaticText[@label='0']") - self.assertEqual(element5.text, "0", "Packet Loss Exist, Please Check Device") - except NoSuchElementException: - print("No Packet Loss Detected 1st Attempt") - - # Also Check #Sendto: No route to host - print("Verifying No route to host Error Msg....") - self.reporting_client.step_start("Verifying No route to host Error Msg..") - try: - element7 = self.driver.find_element_by_xpath("(//XCUIElementTypeStaticText[@label='Sendto: No route to host'][2]") - #self.assertNotEqual(element7.text, "Sendto: No route to host", "Packet Loss Exist, Please Check Device AP: " + Wifi_AP_Name) - except NoSuchElementException: - print("No Packet Loss Detected on AP!!!!!: " + Wifi_AP_Name) - - #Close Settings App - self.reporting_client.step_start("Close Application") - self.driver.execute_script('mobile:application:close', params2) - - #REPORTIUM TEST END - #self.reporting_client.step_end() - - except NoSuchElementException as ex: - self.currentResult = False - #self.reporting_client.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) - print (ex.message) - self.currentResult = True - #self.reporting_client.test_stop(Tes - -if __name__ == '__main__': - # parser = argparse.ArgumentParser(description="Perfecto Arguments") - - #parser.add_argument( - # "-c", - # "--cloud_name", - # metavar="cloud_name", - # help="Perfecto cloud name. (E.g. demo)", - #) - # parser.add_argument( - # "-s", - # "--security_token", - # metavar="security_token", - # help="Perfecto cloud name. (E.g. demo)", - # ) - - #args = vars(parser.parse_args()) - - #if not args["cloud_name"]: - # parser.print_help() - # parser.error( - # "cloud_name parameter is empty. Pass the argument -c followed by cloud_name" - # ) - # exit - - #print(str(args["cloud_name"])) - - unittest.main() diff --git a/libs/perfecto/iOS/VerifyPassPointConnection.py b/libs/perfecto/iOS/VerifyPassPointConnection.py deleted file mode 100644 index bb7f2033a..000000000 --- a/libs/perfecto/iOS/VerifyPassPointConnection.py +++ /dev/null @@ -1,156 +0,0 @@ -import time -import unittest -import warnings - -#from perfecto import TestResultFactory -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.common.by import By -import argparse -from BaseClassiOS import TestConf - - -class ReportingTests(TestConf): - - def test_navigation(self): - warnings.simplefilter("ignore", ResourceWarning) - try: - # assert 'Perfecto' in self.driver.title - print("-------------------------------------------") - #REPORTIUM TEST START - #self.reporting_client.step_start("BasicConnectionTest") - #DefaultGateWayAccessPoint = self.driver.find_element_by_xpath("//*[@label='Default Gateway IP']/parent::*/XCUIElementTypeButton").text - # print("Device-DefaultGateWay-AP: " + "'"+ DefaultGateWayAccessPoint + "'") - #self.assertNotEqual(DefaultGateWayAccessPoint, "N/A", "Check Wifi Access Point") - print("Verify Internet Connection..") - self.reporting_client.step_start("Verify Internet Connection") - networkAccessPoint = self.driver.find_element_by_xpath("//*[@label='Network Connected']/parent::*/XCUIElementTypeButton").text - print("Network-AccessPoint-Connected: " + "'"+ networkAccessPoint + "'") - - #Open Setting Application - print("Opening Settings App..") - self.reporting_client.step_start("Opening Settings App") - params = {'identifier': 'com.apple.Preferences'} - self.driver.execute_script('mobile:application:open', params) - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - #Verify Wifi Connected Network - self.reporting_client.step_start("Verify Wifi Connected Network") - try: - settingsBTN = self.driver.find_element_by_xpath("//XCUIElementTypeButton[@label='Settings']") - settingsBTN.click() - except NoSuchElementException: - print("Wifi Main Menu") - - print("Verify Wifi Connection Name..") - self.reporting_client.step_start("Verify Wifi Connection Name") - element = self.driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']/XCUIElementTypeStaticText[2]") - Wifi_AP_Name = element.text - print("Wifi_AP_ConnName: " + "'"+ Wifi_AP_Name + "'") - - #Verify if Ap is connected with Wifi - self.reporting_client.step_start("Click Wifi Connection..") - print("Click Wifi Connection..") - element.click() - - #Verifies if AP is connected to Wifi status - print("Verify Wifi Connection Status..") - self.reporting_client.step_start("Verify Wifi Connection Status..") - WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']" - elementWifName = self.driver.find_element_by_xpath(WifiXpath) - - #Check AP Internet Error Msg - print("Checking Internet Connection Error..") - self.reporting_client.step_start("Checking Internet Connection Error..") - # self.driver.implicitly_wait(5) - try: - WifiInternetErrMsg = self.driver.find_element_by_xpath("//*[@label='No Internet Connection']").text - except NoSuchElementException: - print("Connected-Wifi-AP..Connection Successfull") - - #Close/Open App resets the settings app back to home page - self.reporting_client.step_start("Close/Open App to Reset.") - self.driver.execute_script('mobile:application:close', params) - self.driver.execute_script('mobile:application:open', params) - - #Toggle Airplane Mode - print("Toggle Airplane Mode..") - self.reporting_client.step_start("Toggle Airplane Mode") - try: - AirplaneMode = self.driver.find_element_by_xpath("//XCUIElementTypeSwitch[@label='Airplane Mode']") - #Toggle Airplane Mode - AirplaneMode.click() - - #Verify Cellular Mode Text - self.reporting_client.step_start("Verify Cellular Moded") - try: - CellularMsgEle = self.driver.find_element_by_xpath("//*[@name='Airplane Mode' and @value='Airplane Mode']") - self.assertEqual(CellularMsgEle.text, "Airplane Mode", "Airplane Mode Not Triggerd") - print("Verify Cellular Mode Text: Airplane Mode Success") - except NoSuchElementException: - print("Cellular Mode Not in Airplane Mode: ERROR") - - #Set Airplane Mode Back - AirplaneMode.click() - except NoSuchElementException: - print("Airplane Wifi Button not loaded...") - - #Verify No Sim Card Installed Msg Popup - self.reporting_client.step_start("Verify No Sim Card Installed Msg Popup") - print("Verify No Sim Card Installed Msg Popup..") - try: - NoSimCardErrorMsg = self.driver.find_element_by_xpath("//*[@value='No SIM Card Installed']") - except NoSuchElementException: - print("No Sim Card AlertMsg") - - #Click ok on No Sim Card Msg Popup - print("Click ok on No Sim Card Msg Popup..") - self.reporting_client.step_start("Click ok on No Sim Card Msg Popup") - try: - NoSimCardErrorMsgOK = self.driver.find_element_by_xpath("//*[@label='OK']") - NoSimCardErrorMsgOK.click() - except NoSuchElementException: - print("No Sim Card AlertMsg") - - #AirplaneMode.click() - - #Close Settings App - self.reporting_client.step_start("Close Settings App") - print("Close Settings App") - self.driver.execute_script('mobile:application:close', params) - - except NoSuchElementException as ex: - self.currentResult = False - #self.reporting_client.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) - print (ex.message) - self.currentResult = True - #self.reporting_client.test_stop(Tes - -if __name__ == '__main__': - # parser = argparse.ArgumentParser(description="Perfecto Arguments") - - #parser.add_argument( - # "-c", - # "--cloud_name", - # metavar="cloud_name", - # help="Perfecto cloud name. (E.g. demo)", - #) - # parser.add_argument( - # "-s", - # "--security_token", - # metavar="security_token", - # help="Perfecto cloud name. (E.g. demo)", - # ) - - #args = vars(parser.parse_args()) - - #if not args["cloud_name"]: - # parser.print_help() - # parser.error( - # "cloud_name parameter is empty. Pass the argument -c followed by cloud_name" - # ) - # exit - - #print(str(args["cloud_name"])) - - unittest.main() diff --git a/libs/perfecto/iOS/test_APToMobileDevice.py b/libs/perfecto/iOS/test_APToMobileDevice.py new file mode 100644 index 000000000..e6753c61f --- /dev/null +++ b/libs/perfecto/iOS/test_APToMobileDevice.py @@ -0,0 +1,69 @@ +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 +from conftest import tearDown + +class TestVerifyAPToMobileDevice(object): + + #@pytest.mark.sanity + #@pytest.mark.wpa2_personal + #@pytest.mark.VerifyApTo_MobileDeviceWeb + def test_VerifyApTo_MobileDeviceWeb(self, get_APToMobileDevice_data, setup_perfectoMobileWeb): + + try: + report = setup_perfectoMobileWeb[1] + driver = setup_perfectoMobileWeb[0] + + try: + report.step_start("Google Home Page") + driver.get(get_APToMobileDevice_data["webURL"]) + elementFindTxt = driver.find_element_by_xpath(get_APToMobileDevice_data["lblSearch"]) + elementFindTxt.send_keys("Internet Speed Test") + + try: + elelSearch = driver.find_element_by_xpath(get_APToMobileDevice_data["elelSearch"]) + elelSearch.click() + except NoSuchElementException: + print("Enter Not Active...") + + report.step_start("Verify Run Button") + driver.find_element_by_xpath(get_APToMobileDevice_data["BtnRunSpeedTest"]).click() + + get_APToMobileDevice_data["BtnRunSpeedTest"] + get_APToMobileDevice_data["BtnRunSpeedTest"] + + #Get upload/Download Speed + try: + report.step_start("Get upload/Download Speed") + time.sleep(60) + downloadMbps = driver.find_element_by_xpath(get_APToMobileDevice_data["downloadMbps"]) + downloadSpeed = downloadMbps.text + print("Download: " + downloadSpeed + " Mbps") + + UploadMbps = driver.find_element_by_xpath(get_APToMobileDevice_data["UploadMbps"]) + uploadSpeed = UploadMbps.text + print("Upload: " + uploadSpeed + " Mbps") + + print("Access Point Verification Completed Successfully") + + except NoSuchElementException: + print("Access Point Verification NOT Completed, checking Connection....") + + currentResult = True + + assert currentResult + except Exception as e: + print (e.message) + + except exception as e: + print (e.message) + tearDown(setup_perfectoMobileWeb) + \ No newline at end of file diff --git a/libs/perfecto/iOS/test_AccessPointConnection.py b/libs/perfecto/iOS/test_AccessPointConnection.py new file mode 100644 index 000000000..524bdeb76 --- /dev/null +++ b/libs/perfecto/iOS/test_AccessPointConnection.py @@ -0,0 +1,52 @@ +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 +from conftest import closeApp, openApp, ping_deftapps_iOS, Toggle_AirplaneMode_iOS, set_APconnMobileDevice_iOS, verify_APconnMobileDevice_iOS, get_WifiIPAddress_iOS +#from conftest import + +class TestAccessPointConnection(object): + + #@pytest.mark.sanity + #@pytest.mark.wpa2_personal + #@pytest.mark.VerifyApTo_MobileDeviceWeb + #@pytest.mark.parametrize('bundleID-iOS', [net.techet.netanalyzerlite]) + def test_AccessPointConnection(self, get_AccessPointConn_data, setup_perfectoMobile_iOS): + + try: + report = setup_perfectoMobile_iOS[1] + driver = setup_perfectoMobile_iOS[0] + connData = get_AccessPointConn_data + + #Set Wifi/AP Mode + set_APconnMobileDevice_iOS(connData["Default-SSID-perfecto-b"], setup_perfectoMobile_iOS, connData) + + #Need An ip To ping + wifi_ip = get_WifiIPAddress_iOS(setup_perfectoMobile_iOS, connData) + + #Open Ping Application + openApp(connData["bundleId-iOS-Ping"], setup_perfectoMobile_iOS) + + ping_deftapps_iOS(setup_perfectoMobile_iOS, wifi_ip) + + + + #Toggle AirplaneMode + #Toggle_AirplaneMode_iOS(setup_perfectoMobile_iOS, get_ToggleAirplaneMode_data) + + #Verify AP After AirplaneMode + #assert verify_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, get_ToggleAirplaneMode_data) + + + except NoSuchElementException as ex: + self.currentResult = False + #report.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) + print (ex.message) + self.currentResult = True + \ No newline at end of file diff --git a/libs/perfecto/iOS/test_PassPointConnection.py b/libs/perfecto/iOS/test_PassPointConnection.py new file mode 100644 index 000000000..a0e0dfea3 --- /dev/null +++ b/libs/perfecto/iOS/test_PassPointConnection.py @@ -0,0 +1,44 @@ +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 +from urllib3 import exceptions +from conftest import closeApp, openApp, Toggle_AirplaneMode_iOS, set_APconnMobileDevice_iOS, tearDown +#from conftest import + +class TestPassPointConnection(object): + + #@pytest.mark.sanity + #@pytest.mark.wpa2_personal + #@pytest.mark.VerifyApTo_MobileDeviceWeb + #@pytest.mark.parametrize('bundleID-iOS', [net.techet.netanalyzerlite]) + def test_PassPointConnection_Mobile(self, setup_perfectoMobile_iOS, get_PassPointConniOS_data): + + #bundleId-iOS=net.techet.netanalyzerlite + #Wifi-5G or 2G Verification + try: + report = setup_perfectoMobile_iOS[1] + driver = setup_perfectoMobile_iOS[0] + connData = get_PassPointConniOS_data + + #Set Wifi Access Mode to #Default-SSID-5gl-perfecto-b/#Default-SSID-2gl-perfecto-b + set_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, get_PassPointConniOS_data) + + #Toggle Airplane Mode and Ensure Wifi Connection. + Toggle_AirplaneMode_iOS(setup_perfectoMobile_iOS, get_PassPointConniOS_data) + + #Close Settings App + closeApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile_iOS) + + except exceptions as e: + print (e.message) + tearDown(setup_perfectoMobile_iOS) + + #except exception as ex \ No newline at end of file diff --git a/libs/perfecto/iOS/test_ToggleAirplaneMode.py b/libs/perfecto/iOS/test_ToggleAirplaneMode.py new file mode 100644 index 000000000..0b5f23567 --- /dev/null +++ b/libs/perfecto/iOS/test_ToggleAirplaneMode.py @@ -0,0 +1,42 @@ +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 +from conftest import closeApp, openApp, Toggle_AirplaneMode_iOS, set_APconnMobileDevice_iOS, verify_APconnMobileDevice_iOS +#from conftest import + +class TestToggleAirplaneMode(object): + + #@pytest.mark.sanity + #@pytest.mark.wpa2_personal + #@pytest.mark.VerifyApTo_MobileDeviceWeb + #@pytest.mark.parametrize('bundleID-iOS', [net.techet.netanalyzerlite]) + def test_ToogleAirplaneMode(self, get_ToggleAirplaneMode_data, setup_perfectoMobile_iOS): + + try: + report = setup_perfectoMobile_iOS[1] + driver = setup_perfectoMobile_iOS[0] + connData = get_ToggleAirplaneMode_data + + #Set Wifi/AP Mode + set_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, get_ToggleAirplaneMode_data) + + #Toggle AirplaneMode + Toggle_AirplaneMode_iOS(setup_perfectoMobile_iOS, get_ToggleAirplaneMode_data) + + #Verify AP After AirplaneMode + assert verify_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, get_ToggleAirplaneMode_data) + + + except NoSuchElementException as ex: + self.currentResult = False + #report.test_stop(TestResultFactory.create_failure("NoSuchElementException", ex)) + print (ex.message) + self.currentResult = True + \ No newline at end of file diff --git a/libs/perfecto/iOS/test_ToggleWifiMode.py b/libs/perfecto/iOS/test_ToggleWifiMode.py new file mode 100644 index 000000000..8719315d2 --- /dev/null +++ b/libs/perfecto/iOS/test_ToggleWifiMode.py @@ -0,0 +1,42 @@ +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 +from conftest import closeApp, openApp, Toggle_AirplaneMode_iOS, set_APconnMobileDevice_iOS, verify_APconnMobileDevice_iOS, Toggle_WifiMode_iOS +#from conftest import + +class TestToggleAirplaneMode(object): + + #@pytest.mark.sanity + #@pytest.mark.wpa2_personal + #@pytest.mark.VerifyApTo_MobileDeviceWeb + #@pytest.mark.parametrize('bundleID-iOS', [net.techet.netanalyzerlite]) + def test_ToogleWifiMode(self, get_ToggleWifiMode_data, setup_perfectoMobile_iOS): + + try: + report = setup_perfectoMobile_iOS[1] + driver = setup_perfectoMobile_iOS[0] + connData = get_ToggleWifiMode_data + + #Set Wifi/AP Mode + set_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, get_ToggleWifiMode_data) + + #Toggle WifiMode + Toggle_WifiMode_iOS(setup_perfectoMobile_iOS, get_ToggleWifiMode_data) + + #Verify AP After AirplaneMode + value = verify_APconnMobileDevice_iOS("Default-SSID-5gl-perfecto-b", setup_perfectoMobile_iOS, connData) + assert value + + + except NoSuchElementException as ex: + assert False + print (ex.message) + + \ No newline at end of file diff --git a/libs/perfecto/pytest.ini b/libs/perfecto/pytest.ini new file mode 100644 index 000000000..fc89ac454 --- /dev/null +++ b/libs/perfecto/pytest.ini @@ -0,0 +1,50 @@ +[pytest] +addopts= --junitxml=test_everything.xml + +# Perfecto Cloud parameters +perfectoURL=tip +securityToken=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw + +# Perfecto CI Report +projectName = TIP-Project +projectVersion = 1.0 +jobName = Tip-CI-Test +jobNumber = 1 +reportTags = TestTag + +# iOS Device Capabilities +platformName-iOS=iOS +#manufacturer-iOS=Apple +model-iOS=iPhone-XR +bundleId-iOS=com.apple.Preferences +#default iOS settings app +bundleId-iOS-Settings=com.apple.Preferences +bundleId-iOS-Ping=com.deftapps.ping +browserType-iOS=safari + +# Android Device Capabilities +platformName-android=Android +model-android=Android.* +appPackage-android=com.android.settings + +wifi-SSID-5gl-Pwd=12345678 +wifi-SSID-2g-Pwd=12345678 + +Default-SSID-5gl-perfecto-b=Default-SSID-5gl-perfecto-b +Default-SSID-2g-perfecto-b=Default-SSID-2g-perfecto-b + +Default-SSID-perfecto-b=Default-SSID-2g-perfecto-b +# iOS Device Parameters +#testbed-name=nola-ext-03 +##equipment-model=ecw5410 +#sdk-user-id=support@example.com +#sdk-user-password=support + +# Android Device Parameters +#t#estrail-base-url=telecominfraproject.testrail.com +#t#estrail-project=opsfleet-wlan +#testrail-user-id=gleb@opsfleet.com +#testrail-user-password=use_command_line_to_pass_this + + +