Perfecto Mobile Device TestCases

This commit is contained in:
raj-TIP
2021-02-26 00:32:31 -06:00
parent d292af778e
commit 65b56590d3
9 changed files with 922 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import os
import sys
import unittest
import warnings
import urllib3
import argparse
#from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,
# TestContext, TestResultFactory)
from appium import webdriver
#rom selenium import webdriver
class TestConf(unittest.TestCase):
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
super(TestConf, self).__init__(*args, **kwargs)
def setUp(self):
warnings.simplefilter("ignore", ResourceWarning)
capabilities = {
'platformName': 'Android',
'bundleId': 'com.android.settings',
'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.id(), TestContext('Python', 'unittest'))
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 --")
#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, ['execution tag1', 'execution tag2'])
# self.reporting_client = PerfectoReportiumClient(perfecto_execution_context)

View File

@@ -0,0 +1,88 @@
import os
import sys
import unittest
import warnings
import urllib3
import argparse
#from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,
# TestContext, TestResultFactory)
#from appium import webdriver
from selenium import webdriver
class TestConf(unittest.TestCase):
def __init__(self, *args, **kwargs):
#Suppress InsecureRequestWarning: Unverified HTTPS request is being made
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
#Perfecto
self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyODhhNDIyNS1jOTE1LTQwZDctOTc2YS04MDhiMWE3YTFmODYifQ.eyJqdGkiOiJkMmMwNzU5YS0yNWIyLTQ4ZmItYmViNC0wNzAxMWI4MDVmODMiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjE0MjI5MTUxLCJpc3MiOiJodHRwczovL2F1dGgucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3BzLXBlcmZlY3RvbW9iaWxlLWNvbSIsImF1ZCI6Imh0dHBzOi8vYXV0aC5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvcHMtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiMzkzYjMxYTQtNDJiZS00NmIxLTg5MGUtYmRlNzY3ZWEzYjQ2IiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiJmOTQ4MjI2Yi04YWQwLTQ1YTAtYmMzNC04NzQ5MzZjNDQ0NDgiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzMzVhNGM2My01ODE4LTQ0NmMtOTA2NC1iZWZiY2JkZWQ2N2MiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciIsInJlcG9ydF9hZG1pbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgb2ZmbGluZV9hY2Nlc3MifQ.BKnSYDAczir7suvt_5T44pJ5IaZLzsT_JwVAziR4pKg'
self.host = 'ps.perfectomobile.com'
#self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw'
#self.host = 'tip.perfectomobile.com'
self.driver = None
# self.reporting_client = None
super(TestConf, self).__init__(*args, **kwargs)
def setUp(self):
warnings.simplefilter("ignore", ResourceWarning)
capabilities = {
'platformName': 'Android',
'securityToken' : 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyODhhNDIyNS1jOTE1LTQwZDctOTc2YS04MDhiMWE3YTFmODYifQ.eyJqdGkiOiJkMmMwNzU5YS0yNWIyLTQ4ZmItYmViNC0wNzAxMWI4MDVmODMiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjE0MjI5MTUxLCJpc3MiOiJodHRwczovL2F1dGgucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3BzLXBlcmZlY3RvbW9iaWxlLWNvbSIsImF1ZCI6Imh0dHBzOi8vYXV0aC5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvcHMtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiMzkzYjMxYTQtNDJiZS00NmIxLTg5MGUtYmRlNzY3ZWEzYjQ2IiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiJmOTQ4MjI2Yi04YWQwLTQ1YTAtYmMzNC04NzQ5MzZjNDQ0NDgiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzMzVhNGM2My01ODE4LTQ0NmMtOTA2NC1iZWZiY2JkZWQ2N2MiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciIsInJlcG9ydF9hZG1pbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgb2ZmbGluZV9hY2Nlc3MifQ.BKnSYDAczir7suvt_5T44pJ5IaZLzsT_JwVAziR4pKg',
#browserName Chrome/Safari/MobileOS/MobileDefault/PerfectoMobile
'browserName': 'MobileOS'
#'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.
#'OS': 'Android.*'
}
#self.driver = webdriver.Remote('https://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
self.driver = webdriver.Remote('https://ps.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
self.driver.implicitly_wait(30)
# self.create_reporting_client()
# self.reporting_client.test_start(self.id(), TestContext('Python', 'unittest'))
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 --")
#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, ['execution tag1', 'execution tag2'])
# self.reporting_client = PerfectoReportiumClient(perfecto_execution_context)

View File

@@ -0,0 +1,109 @@
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 BaseClassWebAndroid import TestConf
class ReportingTests(TestConf):
def test_navigation(self):
warnings.simplefilter("ignore", ResourceWarning)
try:
print("-----------------AP TO MOBILE DEVICE--------------------------")
#REPORTIUM TEST START
#self.reporting_client.step_start("BasicConnectionTest")
#Search
try:
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...")
time.sleep(15)
BtnRunSpeedTest = "//*[@id='knowledge-verticals-internetspeedtest__test_button']"
self.driver.find_element_by_xpath(BtnRunSpeedTest).click()
#Get upload/Download Speed
try:
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

@@ -0,0 +1,88 @@
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 BaseClassAndroid 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..")
# 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..")
# params = {'identifier': 'com.android.settings'}
#self.driver.execute_script('mobile:application:open', params)
# self.driver.execute_script('mobile:application:close', params)
# self.driver.execute_script('mobile:application:open', params)
# params = {'property': 'All'}
# deviceProperty = self.driver.execute_script('mobile:handset:info', params)
# print("ModelName: " + deviceProperty)
params = {'property': 'deviceId'}
deviceID = self.driver.execute_script('mobile:handset:info', params)
params = {'property': 'model'}
deviceModel = self.driver.execute_script('mobile:handset:info', params)
print("ModelName: " + deviceModel + " DeviceId: " + deviceID)
#modelName = self.driver.desired_capabilities['model']
#deviceID = self.driver.desired_capabilities['deviceId']
#
# print("DeviceID: " + deviceID)
#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,88 @@
import os
import sys
import unittest
import warnings
import urllib3
import argparse
#from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,
# TestContext, TestResultFactory)
#from appium import webdriver
from selenium import webdriver
class TestConf(unittest.TestCase):
def __init__(self, *args, **kwargs):
#Suppress InsecureRequestWarning: Unverified HTTPS request is being made
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
#Perfecto
self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyODhhNDIyNS1jOTE1LTQwZDctOTc2YS04MDhiMWE3YTFmODYifQ.eyJqdGkiOiJkMmMwNzU5YS0yNWIyLTQ4ZmItYmViNC0wNzAxMWI4MDVmODMiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjE0MjI5MTUxLCJpc3MiOiJodHRwczovL2F1dGgucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3BzLXBlcmZlY3RvbW9iaWxlLWNvbSIsImF1ZCI6Imh0dHBzOi8vYXV0aC5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvcHMtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiMzkzYjMxYTQtNDJiZS00NmIxLTg5MGUtYmRlNzY3ZWEzYjQ2IiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiJmOTQ4MjI2Yi04YWQwLTQ1YTAtYmMzNC04NzQ5MzZjNDQ0NDgiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzMzVhNGM2My01ODE4LTQ0NmMtOTA2NC1iZWZiY2JkZWQ2N2MiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciIsInJlcG9ydF9hZG1pbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgb2ZmbGluZV9hY2Nlc3MifQ.BKnSYDAczir7suvt_5T44pJ5IaZLzsT_JwVAziR4pKg'
self.host = 'ps.perfectomobile.com'
#self.securityToken = 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw'
#self.host = 'tip.perfectomobile.com'
self.driver = None
# self.reporting_client = None
super(TestConf, self).__init__(*args, **kwargs)
def setUp(self):
warnings.simplefilter("ignore", ResourceWarning)
capabilities = {
'platformName': 'iOS',
#'manufacturer': 'Apple',
'browserName': 'safari',
'securityToken' : 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyODhhNDIyNS1jOTE1LTQwZDctOTc2YS04MDhiMWE3YTFmODYifQ.eyJqdGkiOiJkMmMwNzU5YS0yNWIyLTQ4ZmItYmViNC0wNzAxMWI4MDVmODMiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjE0MjI5MTUxLCJpc3MiOiJodHRwczovL2F1dGgucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3BzLXBlcmZlY3RvbW9iaWxlLWNvbSIsImF1ZCI6Imh0dHBzOi8vYXV0aC5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvcHMtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiMzkzYjMxYTQtNDJiZS00NmIxLTg5MGUtYmRlNzY3ZWEzYjQ2IiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiJmOTQ4MjI2Yi04YWQwLTQ1YTAtYmMzNC04NzQ5MzZjNDQ0NDgiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzMzVhNGM2My01ODE4LTQ0NmMtOTA2NC1iZWZiY2JkZWQ2N2MiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciIsInJlcG9ydF9hZG1pbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgb2ZmbGluZV9hY2Nlc3MifQ.BKnSYDAczir7suvt_5T44pJ5IaZLzsT_JwVAziR4pKg',
#'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://ps.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
self.driver.implicitly_wait(20)
# self.create_reporting_client()
# self.reporting_client.test_start(self.id(), TestContext('Python', 'unittest'))
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 --")
#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, ['execution tag1', 'execution tag2'])
# self.reporting_client = PerfectoReportiumClient(perfecto_execution_context)

View File

@@ -0,0 +1,78 @@
import os
import sys
import unittest
import warnings
import urllib3
import argparse
#from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,
# TestContext, TestResultFactory)
from appium import webdriver
from selenium import webdriver
class TestConf(unittest.TestCase):
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
super(TestConf, self).__init__(*args, **kwargs)
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.id(), TestContext('Python', 'unittest'))
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 --")
#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, ['execution tag1', 'execution tag2'])
# self.reporting_client = PerfectoReportiumClient(perfecto_execution_context)

View File

@@ -0,0 +1,107 @@
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 BaseClassWeb 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.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...")
BtnRunSpeedTest = "//*[text()='RUN SPEED TEST']"
self.driver.find_element_by_xpath(BtnRunSpeedTest).click()
#Get upload/Download Speed
try:
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

@@ -0,0 +1,146 @@
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")
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..")
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..")
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
print("Click Wifi Connection..")
element.click()
#Verifies if AP is connected to Wifi 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.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
print("Close Settings App")
self.driver.execute_script('mobile:application:close', params)
#Open Ping App
print("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.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
print("Pingin Host..")
element3 = self.driver.find_element_by_xpath("//XCUIElementTypeButton[@label='Ping']")
element3.click()
time.sleep(10)
print("Stop Ping Host..")
element4 = self.driver.find_element_by_xpath("//*[@label='Stop']")
element4.click()
# /* Check 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....")
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.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

@@ -0,0 +1,143 @@
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..")
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..")
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..")
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
print("Click Wifi Connection..")
element.click()
#Verifies if AP is connected to Wifi 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.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 Airplane Mode
print("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:
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
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..")
try:
NoSimCardErrorMsgOK = self.driver.find_element_by_xpath("//*[@label='OK']")
NoSimCardErrorMsgOK.click()
except NoSuchElementException:
print("No Sim Card AlertMsg")
#AirplaneMode.click()
#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()