Skip to content

Commit

Permalink
Added Android Test Cases
Browse files Browse the repository at this point in the history
Signed-off-by: raj-TIP <[email protected]>
  • Loading branch information
raj-TIP committed May 26, 2021
1 parent b76a7c5 commit 12a73f5
Show file tree
Hide file tree
Showing 21 changed files with 757 additions and 250 deletions.
2 changes: 1 addition & 1 deletion lanforge/lanforge-scripts
Submodule lanforge-scripts updated from de86a4 to 7b596c
77 changes: 57 additions & 20 deletions libs/perfecto_libs/android_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,14 @@ def setup_perfectoMobile_android(request):

TestCaseFullName = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
nCurrentTestMethodNameSplit = re.sub(r'\[.*?\]\ *', "", TestCaseFullName)
TestCaseName = nCurrentTestMethodNameSplit.removeprefix('test_')
#print ("\nTestCaseName: " + TestCaseName)

try:
TestCaseName = nCurrentTestMethodNameSplit.removeprefix('test_')
print ("\nTestCaseName: " + TestCaseName)
except Exception as e:
TestCaseName = nCurrentTestMethodNameSplit
print("\nUpgrade Python to 3.9 to avoid test_ string in your test case name, see below URL")
print("https://www.andreagrandi.it/2020/10/11/python39-introduces-removeprefix-removesuffix/")

projectname = request.config.getini("projectName")
projectversion = request.config.getini("projectVersion")
jobname = request.config.getini("jobName")
Expand All @@ -97,12 +102,35 @@ def setup_perfectoMobile_android(request):

def teardown():
try:
print(" -- Tear Down --")
reporting_client.test_stop(TestResultFactory.create_success())
print('Report-Url: ' + reporting_client.report_url() + '\n')
print("\n\n---------- Tear Down ----------")


testFailed = request.session.testsfailed
if testFailed>0:
print ("Test Case Failure, please check report link: " + testCaseName)
reporting_client.test_stop(TestResultFactory.create_failure("Exception See Test Case"))
#seen = {None}
#session = request.node
#print(session)
elif testFailed<=0:
reporting_client.test_stop(TestResultFactory.create_success())

#amount = len(request.session.items)
#print("Test Session Items: ")
#print(amount)

#tests_count = request.session.testscollected
#print("Test Collected: ")
#print(tests_count)

print('Report-Url: ' + reporting_client.report_url())
print("----------------------------------------------------------")
driver.close()
except Exception as e:
print(" -- Exception Not Able To close --")
print(" -- Exception While Tear Down --")
reporting_client.test_stop(TestResultFactory.create_failure("Exception"))
print('Report-Url-Failure: ' + reporting_client.report_url() + '\n')
driver.close()
print (e.message)
finally:
try:
Expand Down Expand Up @@ -152,14 +180,24 @@ def set_APconnMobileDevice_android(WifiName, WifiPass, setup_perfectoMobile, con
print("Get Connected Wifi Name if any")
report.step_start("Get Connected Wifi Name if any")
try:
driver.implicitly_wait(35)
driver.implicitly_wait(20)
WifiNameElement = driver.find_element_by_xpath("//*[@resource-id='android:id/summary']")
Wifi_AP_Name = WifiNameElement.text
print("Current Wifi Status Name: " + Wifi_AP_Name)
except NoSuchElementException:
report.step_start("Wifi Radio Button Enabled")
WifiRadioBtnConnections = driver.find_element_by_xpath("//*[@resource-id='android:id/switch_widget' and @content-desc='Wi-Fi']")
WifiRadioBtnConnections.click()
report.step_start("Checking Wifi Radio Button Status")
try:
driver.implicitly_wait(5)
WifiRadioBtnConnections = driver.find_element_by_xpath("//*[@resource-id='android:id/switch_widget' and @content-desc='Wi-Fi' and @text='Off']")
report.step_start("Wifi Radio Button Disabled, Enabling Radio Button..")
print("Wifi Radio Button Disabled, Enabling Radio Button..")
WifiRadioBtnConnections.click()
except NoSuchElementException:
Wifi_AP_Name="Null"
driver.implicitly_wait(25)
report.step_start("Wifi Radio Button Already Enabled")
print("Wifi Radio Button Already Enabled")

except NoSuchElementException:
Wifi_AP_Name="Null"
print("Device not connected to any Wifi")
Expand Down Expand Up @@ -309,7 +347,7 @@ def ForgetWifiConnection(setup_perfectoMobile, WifiName, connData):
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
contexts = driver.contexts
print(contexts)
#print(contexts)

#Open Settings Application
openApp(connData["appPackage-android"], setup_perfectoMobile)
Expand Down Expand Up @@ -343,6 +381,7 @@ def ForgetWifiConnection(setup_perfectoMobile, WifiName, connData):
wifiElement.click()

if Wifi_AP_Name.__eq__(WifiName):
report.step_start("Wifi Name Matches - Already Connected To: " + Wifi_AP_Name)
print("Wifi Name Matches - Already Connected To: " + Wifi_AP_Name)

print("Load Wifi Details Page")
Expand All @@ -366,13 +405,13 @@ def ForgetWifiConnection(setup_perfectoMobile, WifiName, connData):
report.step_start("Verify if wifi is disconnected from: " + WifiName)
WifiForget= driver.find_element_by_xpath("//*[@resource-id='com.android.settings:id/summary' and @text='Connected']/parent::*/android.widget.TextView[@text='" + WifiName + "']")
print("Wifi Not disconnected, check xpath for: " + WifiName)
assert False
except NoSuchElementException:
print("Wifi Disconnected Successfully: " + WifiName)

else:
print("Wifi Does not Match with Wifi: " + WifiName)

report.step_start("Wifi Does not Match with Wifi: " + WifiName)
report.step_start("Probably wifi auto connected to another network")
try:
report.step_start("Wifi Details Page")
WifiInternetDetails = driver.find_element_by_xpath("//*[@resource-id='com.android.settings:id/wifi_details']")
Expand All @@ -386,14 +425,13 @@ def ForgetWifiConnection(setup_perfectoMobile, WifiName, connData):
WifiForget.click()
except NoSuchElementException:
print("Wifi Connection Error: " + WifiName)



print("Verify if wifi is disconnected from: " + WifiName)
try:
report.step_start("Verify if wifi is disconnected from: " + WifiName)
WifiForget= driver.find_element_by_xpath("//*[@resource-id='com.android.settings:id/summary' and @text='Connected']/parent::*/android.widget.TextView[@text='" + WifiName + "']")
print("Wifi Not disconnected, check xpath for: " + WifiName)
assert False

except NoSuchElementException:
print("Wifi Disconnected Successfully: " + WifiName)

Expand Down Expand Up @@ -457,7 +495,7 @@ def Toggle_AirplaneMode_android(setup_perfectoMobile, connData):
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
contexts = driver.contexts
print(contexts)
#print(contexts)

#Open Settings Application
openApp(connData["appPackage-android"], setup_perfectoMobile)
Expand Down Expand Up @@ -513,7 +551,7 @@ def Toggle_WifiMode_android(setup_perfectoMobile, WifiName, connData):
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
contexts = driver.contexts
print(contexts)
#print(contexts)

#Open Settings Application
openApp(connData["appPackage-android"], setup_perfectoMobile)
Expand Down Expand Up @@ -587,7 +625,6 @@ def Toggle_WifiMode_android(setup_perfectoMobile, WifiName, connData):

return WifiFlag


def verifyUploadDownloadSpeed_android(setup_perfectoMobile, get_APToMobileDevice_data):
print("\n-------------------------------------")
print("Verify Upload & Download Speed")
Expand Down
138 changes: 81 additions & 57 deletions libs/perfecto_libs/iOS_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
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 selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.mobileby import MobileBy
Expand Down Expand Up @@ -42,7 +41,12 @@ def rebootPhone(setup_perfectoMobile):
setup_perfectoMobile[0].execute_script('mobile:handset:reboot', params)

def set_APconnMobileDevice_iOS(WifiName, WifiPass, setup_perfectoMobile, connData):

print("\n-------------------------------------")
print("Select Wifi/AccessPoint Connection")
print("-------------------------------------")

reportFlag = True

print("Verifying Wifi/AP Connection Details....")
report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
Expand Down Expand Up @@ -79,10 +83,14 @@ def set_APconnMobileDevice_iOS(WifiName, WifiPass, setup_perfectoMobile, connDat

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

try:
report.step_start("Verify Wifi Connected Status")
WifiXpath = "//*[@label='selected']/parent::*/parent::*/XCUIElementTypeStaticText[@label='"+ Wifi_AP_Name + "']"
elementWifName = driver.find_element_by_xpath(WifiXpath)
except NoSuchElementException:
reportFlag = False
assert reportFlag

#Check AP Internet Error Msg
print("Checking Internet Connection Error..")
report.step_start("Checking Internet Connection Error..")
Expand All @@ -106,6 +114,8 @@ def set_APconnMobileDevice_iOS(WifiName, WifiPass, setup_perfectoMobile, connDat
wifiXpath2.click()

except NoSuchElementException:
reportFlag = False
assert reportFlag
print("\n Can't find Wifi/AP NAME.....CheckXpath & Wifi Name")

#Set password if Needed
Expand All @@ -123,10 +133,17 @@ def set_APconnMobileDevice_iOS(WifiName, WifiPass, setup_perfectoMobile, connDat

try:
WifiInternetErrMsg2 = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text
reportFlag = False
except NoSuchElementException:
reportFlag = True
print("No Wifi-AP Error Internet Error: " + WifiName)
return reportFlag

def Toggle_AirplaneMode_iOS(setup_perfectoMobile, connData):
print("\n-----------------------")
print("Toggle Airplane Mode")
print("-----------------------")

report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
currentResult = True
Expand Down Expand Up @@ -210,14 +227,18 @@ def verify_APconnMobileDevice_iOS(WifiName, setup_perfectoMobile, connData):
return None

def ForgetWifiConnection(setup_perfectoMobile, wifiName, connData):
print("\n-----------------------------")
print("Forget Wifi/AP Connection")
print("-----------------------------")

report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]

report.step_start("Switching Driver Context")
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
contexts = driver.contexts
print(contexts)
#print(contexts)

report.step_start("Forget Existing Wifi")
openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile)
Expand Down Expand Up @@ -274,6 +295,10 @@ def ForgetWifiConnection(setup_perfectoMobile, wifiName, connData):
elementforgetWifi.click()

def Toggle_WifiMode_iOS(setup_perfectoMobile, connData):
print("\n-----------------------")
print("Toggle Wifi Mode")
print("-----------------------")

report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]

Expand Down Expand Up @@ -435,60 +460,59 @@ def tearDown(setup_perfectoMobile):
print (e.message)

def verifyUploadDownloadSpeediOS(setup_perfectoMobile, get_APToMobileDevice_data):
print("Verify Upload Download Speed")
print("\n-------------------------------------")
print("Verify Upload & Download Speed")
print("-------------------------------------")

report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
connData = get_APToMobileDevice_data
currentResult = True

report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
connData = get_APToMobileDevice_data
currentResult = True
contexts = driver.contexts
#print("Printing Context")
#print(contexts)

driver.switch_to.context('WEBVIEW_1')


print("Launching Safari")
report.step_start("Google Home Page")
driver.get(connData["webURL"])
print("Enter Search Text")
elementFindTxt = driver.find_element_by_xpath(connData["lblSearch"])
elementFindTxt.send_keys("Internet Speed Test")

try:
print("Click Search Button")
elelSearch = driver.find_element_by_xpath("//*[@class='aajZCb']/li[1]/div[1]")
elelSearch.click()
except NoSuchElementException:
currentResult = False
print("Search Drop Down not active...")

contexts = driver.contexts
print("Printing Context")
print(contexts)
print("Click Run Speed Test Button...")
report.step_start("Click Run Speed Test Button")
driver.find_element_by_xpath(connData["BtnRunSpeedTest"]).click()

driver.switch_to.context('WEBVIEW_1')
#Get upload/Download Speed
try:
report.step_start("Get upload/Download Speed")
time.sleep(60)
downloadMbps = driver.find_element_by_xpath(connData["downloadMbps"])
downloadSpeed = downloadMbps.text
print("Download: " + downloadSpeed + " Mbps")

UploadMbps = driver.find_element_by_xpath(connData["UploadMbps"])
uploadSpeed = UploadMbps.text
print("Upload: " + uploadSpeed + " Mbps")

try:
print("Launching Safari")
report.step_start("Google Home Page")
driver.get(connData["webURL"])
print("Enter Search Text")
elementFindTxt = driver.find_element_by_xpath(connData["lblSearch"])
elementFindTxt.send_keys("Internet Speed Test")

try:
print("Click Search Button")
elelSearch = driver.find_element_by_xpath("//*[@class='aajZCb']/li[1]/div[1]")
elelSearch.click()
except NoSuchElementException:
currentResult = False
print("Search Drop Down not active...")

print("Click Run Speed Test Button...")
report.step_start("Click Run Speed Test Button")
driver.find_element_by_xpath(connData["BtnRunSpeedTest"]).click()

#Get upload/Download Speed
try:
report.step_start("Get upload/Download Speed")
time.sleep(60)
downloadMbps = driver.find_element_by_xpath(connData["downloadMbps"])
downloadSpeed = downloadMbps.text
print("Download: " + downloadSpeed + " Mbps")

UploadMbps = driver.find_element_by_xpath(connData["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 = False
except Exception as e:
print (e.message)
print("Access Point Verification Completed Successfully")


return currentResult
except NoSuchElementException:
print("Access Point Verification NOT Completed, checking Connection....")
currentResult = False

return currentResult


2 changes: 1 addition & 1 deletion sync_repos.bash
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ if [ -d ../wlan-lanforge-scripts ]
then
rm -fr lanforge/lanforge-scripts

cp -ar ../wlan-lanforge-scripts lanforge/lanforge-scripts
cp -a ../wlan-lanforge-scripts lanforge/lanforge-scripts
fi

Loading

0 comments on commit 12a73f5

Please sign in to comment.