Perfecto Mobile iOS PyTest

This commit is contained in:
raj-TIP
2021-04-08 21:46:39 -05:00
parent d47755695e
commit 22ac30debe
15 changed files with 837 additions and 971 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"python.pythonPath": "/Library/Developer/CommandLineTools/usr/bin/python3"
}

535
libs/perfecto/conftest.py Normal file
View File

@@ -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='<Hostname or IP address>']"
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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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='<Hostname or IP address>']"
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()

View File

@@ -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()

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

50
libs/perfecto/pytest.ini Normal file
View File

@@ -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