mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-22 05:45:11 +00:00
118 lines
6.7 KiB
Python
118 lines
6.7 KiB
Python
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 = 1
|
|
tags = 'TestTag'
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
#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 = 'VerifyAPToMobileDeviceAndroid'
|
|
|
|
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': 'Android',
|
|
'securityToken' : 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw',
|
|
#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://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub', capabilities)
|
|
self.driver.implicitly_wait(30)
|
|
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)
|