我的第一個Python+Appium指令碼之APP登入指令碼
阿新 • • 發佈:2019-02-01
#coding:utf-8
from appium import webdriver
import time
import unittest
import os
import HTMLTestRunner
from selenium.webdriver.support.ui import WebDriverWait
class LoginTest(unittest.TestCase):
def setUp(self):
desired_caps={}
desired_caps['platformName'] = 'Android' #Android系統 or IOS系統
desired_caps['deviceName']='D1CGAPE6C2902581' #真機或模組器名
desired_caps['platformVersion'] = '7.1.1' #Android系統版本
desired_caps['appPackage']='com.appPackage' #APP包名
desired_caps['appActivity']='com.appPackage.WelcomeActivity' #APP啟動Activity
desired_caps['noReset' ]=True #每次開啟APP不開啟重置,否則每次都進入四個歡迎頁
desired_caps['resetKeyboard'] = True #隱藏鍵盤
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #啟動APP
def test_login(self):
driver = self.driver
# 進入首頁後點擊我的按鈕
time.sleep(5)
driver.find_element_by_id('ActivityMainTabMe' ).click()
time.sleep(2)
# 跳轉到登入介面清空賬號輸入框並輸入使用者名稱
driver.find_element_by_id('LoginUserED').clear() #APP有儲存使用者名稱功能
driver.find_element_by_id('LoginUserED').set_value('18888888888')
# 清空密碼輸入框並輸入密碼
driver.find_element_by_id('LoginPwdED').clear()
driver.find_element_by_id('LoginPwdED').set_value('123456')
# 點選登入按鈕
driver.find_element_by_id('LoginBtn').click()
time.sleep(5)
# 我的的APP登入成功後會返回到首頁,需要再次點選我的進入個人中心頁面
driver.find_element_by_id('ActivityMainTabMe').click()
# 獲取登入後的暱稱
name = driver.find_element_by_id('MeNameTv').text
# 新增斷言,若暱稱不正確,則列印錯誤資訊
try:
assert '黃大大' in name
print('loginUser is right')
except AssertionError as e:
print('loginUser is Error')
# 點選右上角設定,進入設定頁面
driver.find_element_by_id('MeSetting').click()
# 點選退出按鈕
driver.find_element_by_id('SettingExitLoginBtn').click()
# 彈出退出提示介面,點選確定
driver.find_element_by_id('android:id/button1').click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
#構造測試套件
suite=unittest.TestSuite()
suite.addTest(LoginTest("test_login"))
#按照一定格式獲取當前時間
now=time.strftime("%Y-%m-%d %H_%M_%S")
##將當前時間加入到報告檔名稱中,定義測試報告存放路徑
filename='F:\ ' + now + 'result.html'
#定義測試報告
fp=open(filename,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='測試報告',description='用例執行情況:')
runner.run(suite)
#關閉報告
fp.close()