mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-31 02:48:11 +00:00 
			
		
		
		
	 8319567964
			
		
	
	8319567964
	
	
	
		
			
			- template for standalone scripts Signed-off-by: Sushant Bawiskar <sushant.bawiskar@candelatech.com>
		
			
				
	
	
		
			160 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python3.9
 | |
| """
 | |
| 
 | |
|     interop_tools : Tools for Interop
 | |
|                 reboot
 | |
|     ./interop_tools --device "{\"Galaxy S9\":\"Android\"}" --project_name "" --job_name "" --job_number 1 --test_tag "" --test_case_name ""
 | |
|     ./interop_tools --device "{\"Galaxy S9\":\"Android\"}" --job_number 1
 | |
| """
 | |
| 
 | |
| import sys
 | |
| 
 | |
| if "libs" not in sys.path:
 | |
|     sys.path.append("../libs/perfecto_libs/")
 | |
| 
 | |
| import argparse
 | |
| import paramiko
 | |
| 
 | |
| 
 | |
| import datetime
 | |
| import sys
 | |
| import os
 | |
| import time
 | |
| import warnings
 | |
| from _pytest.outcomes import xfail
 | |
| import urllib3
 | |
| from perfecto.model.model import Job, Project
 | |
| from perfecto import (PerfectoExecutionContext, PerfectoReportiumClient,TestContext, TestResultFactory)
 | |
| import pytest
 | |
| import logging
 | |
| import re
 | |
| from selenium.common.exceptions import NoSuchElementException, TimeoutException
 | |
| from selenium.webdriver.common.by import By
 | |
| from selenium.webdriver.support.ui import WebDriverWait
 | |
| from appium.webdriver.common.mobileby import MobileBy
 | |
| from selenium.webdriver.support import expected_conditions as EC
 | |
| from appium import webdriver
 | |
| 
 | |
| from android_lib import *
 | |
| from iOS_lib import *
 | |
| import json
 | |
| 
 | |
| # device = iPhone-12, iPhone-11, iPhone-7 ,platform_name=iOS
 | |
| # device =  Galaxy S20, Galaxy S10.*, Galaxy S9, Pixel 4, platform_name = Android
 | |
| 
 | |
| class perfecto_tools:
 | |
| 
 | |
|     def __init__(self, project_name="TIP-test-Execution", job_name="reboot-devices", job_number=1,
 | |
|                  test_tag="TIP-PyTest-Execution", test_case_name="reboot", device="iPhone-12",
 | |
|                  platform_name="iOS", browser_name="mobileOS"):
 | |
|         warnings.simplefilter("ignore", ResourceWarning)
 | |
|         urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 | |
| 
 | |
|         self.driver = None
 | |
|         self.reporting_client = None
 | |
|         self.projectname = project_name
 | |
|         self.projectversion = 1.0
 | |
|         self.jobname = job_name
 | |
|         self.jobnumber = job_number
 | |
|         self.tags = test_tag
 | |
|         self.device = device  # iPhone-11
 | |
|         self.testCaseName = test_case_name
 | |
|         self.platform_name = platform_name  # iOS
 | |
|         self.browser_name = browser_name
 | |
|         self.capabilities = {
 | |
|             'platformName': self.platform_name,
 | |
|             'model': self.device,
 | |
|             'browserName': self.browser_name,
 | |
|             'securityToken': 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJpYXQiOjE2MjE4NjgyOTksImp0aSI6IjIzNGFiOTM1LWIxYjQtNGZiOC1hZmJiLTM0OTQwNzU5MjIwMyIsImlzcyI6Imh0dHBzOi8vYXV0aDIucGVyZmVjdG9tb2JpbGUuY29tL2F1dGgvcmVhbG1zL3RpcC1wZXJmZWN0b21vYmlsZS1jb20iLCJhdWQiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwic3ViIjoiN2I1MzBhZTAtODgxOC00N2I5LTgzZjMtN2ZhMGZiMGRkYjRlIiwidHlwIjoiT2ZmbGluZSIsImF6cCI6Im9mZmxpbmUtdG9rZW4tZ2VuZXJhdG9yIiwibm9uY2UiOiI1MzI2NDQxNS0xYTQwLTQ1ZTctOGVkMi1hOTNiYWZmZWNjYjIiLCJzZXNzaW9uX3N0YXRlIjoiY2YzY2JlOGMtY2Y5OC00NzRlLWJmODctYTIxNzU0NzVhM2EzIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.4a4v6AKxmY95Zb-l84K_Od49WPikwOHP7ryctfmnn-w',
 | |
|             'useAppiumForWeb': 'false',
 | |
|             'useAppiumForHybrid': 'false',
 | |
|         }
 | |
|         self.app_data = {
 | |
|             "webURL": "https://www.google.com",
 | |
|             "lblSearch": "//*[@class='gLFyf']",
 | |
|             "elelSearch": "(//*[@class='sbic sb43'])[1]",
 | |
|             "BtnRunSpeedTest": "//*[text()='RUN SPEED TEST']",
 | |
|             "bundleId-iOS-Settings": 'com.apple.Preferences',
 | |
|             "bundleId-iOS-Safari": 'com.apple.mobilesafari',
 | |
|             "downloadMbps": "//*[@id='knowledge-verticals-internetspeedtest__download']/P[@class='spiqle']",
 | |
|             "UploadMbps": "//*[@id='knowledge-verticals-internetspeedtest__upload']/P[@class='spiqle']",
 | |
|             # Android
 | |
|             "platformName-android": 'Android',
 | |
|             "appPackage-android": 'com.android.settings'
 | |
|         }
 | |
| 
 | |
|         self.driver = webdriver.Remote(
 | |
|             "https://tip.perfectomobile.com/nexperience/perfectomobile/wd/hub",
 | |
|             self.capabilities
 | |
|         )
 | |
|         self.device_model_name = self.driver.execute_script('mobile:handset:info', {'property': 'model'})
 | |
|         self.perfecto_execution_context = PerfectoExecutionContext(self.driver, self.tags, Job(self.jobname, self.jobnumber),
 | |
|                                                               Project(self.projectname, self.projectversion))
 | |
|         self.reporting_client = PerfectoReportiumClient(self.perfecto_execution_context)
 | |
|         self.reporting_client.test_start(test_case_name, TestContext([], "Perforce"))
 | |
| 
 | |
|     def driver_wait(self, time):
 | |
|         self.driver.implicitly_wait(time)
 | |
| 
 | |
|     def reboot(self):
 | |
|         params = {}
 | |
|         print("rebooting..",self.device_model_name)
 | |
|         self.driver.execute_script('mobile:handset:reboot', params)
 | |
|         print("rebooting complete !!")
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(prog="interop_tools",
 | |
|                                      formatter_class=argparse.RawTextHelpFormatter,
 | |
|                                      allow_abbrev=True,
 | |
|                                      epilog="About interop_tools.py",
 | |
|                                      description="Tools for Interop")
 | |
| 
 | |
|     parser.add_argument('--device', type=str, help=' --device : device you want to reboot',
 | |
|                         default="{\"Galaxy S20\": 'Android', \"Galaxy S10.*\": 'Android', \"Galaxy S9\": 'Android', \"Pixel 4\": 'Android',\"iPhone-12\": 'iOS', \"iPhone-11\": 'iOS', \"iPhone-7\" : 'iOS'}")
 | |
| 
 | |
|     parser.add_argument('--project_name', type=str, help='', default="TIP-test-Execution")
 | |
|     parser.add_argument('--job_name', type=str, help='', default="reboot-devices")
 | |
|     parser.add_argument('--job_number', type=int, help='', default=1)
 | |
|     parser.add_argument('--test_tag', type=str, help='', default="TIP-PyTest-Execution")
 | |
|     parser.add_argument('--test_case_name', type=str, help='', default="reboot")
 | |
| 
 | |
|     args = parser.parse_args()
 | |
|     print(args.device)
 | |
|     device = json.loads(args.device)
 | |
|     job_name = args.job_name
 | |
|     job_number = args.job_number
 | |
|     test_tag = args.test_tag
 | |
|     test_case_name = args.test_case_name
 | |
| 
 | |
| 
 | |
|     for device_name,platform in device.items():
 | |
|         try:
 | |
|             perfecto_tool = perfecto_tools(device=device_name,
 | |
|                                            platform_name=platform,
 | |
|                                            job_name=job_name,
 | |
|                                            job_number=job_number,
 | |
|                                            test_tag=test_tag,
 | |
|                                            test_case_name=str(test_case_name+"-"+device_name))
 | |
|             try:
 | |
|                 perfecto_tool.reboot()
 | |
|                 perfecto_tool.reporting_client.test_stop(TestResultFactory.create_success())
 | |
|             except:
 | |
|                 print("Reboot Failed !")
 | |
|                 perfecto_tool.reporting_client.test_stop(TestResultFactory.create_failure("Failed!"))
 | |
|             finally:
 | |
|                 try:
 | |
|                     perfecto_tool.driver.close()
 | |
|                 except:
 | |
|                     print("not able to close the driver")
 | |
|                 try:
 | |
|                     perfecto_tool.driver.quit()
 | |
|                 except:
 | |
|                     print("not able to quit the driver")
 | |
|         except:
 | |
|             print("Failed to get Driver")
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 |