使用Appium自動化測試app(六)------實戰篇3(unittest)
阿新 • • 發佈:2018-12-12
import unittest import threading from time import sleep from appium import webdriver server = 'http://localhost:4723/wd/hub' # 連線裝置引數 desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5556', 'appPackage': 'com.facebook.katana', 'appActivity': '.LoginActivity', # 彈框默認同意 'autoAcceptAlerts': 'True', 'noReset': 'True', } class LoginTest(unittest.TestCase): # setUp()方法用於測試用例執行前的初始化工作. 如果用例中需要訪問資料庫, 可以在setUp中建立 # 如果測試用例需要啟動Appium服務, 需要在該方法中啟動Appium服務 def setUp(self): self.driver = webdriver.Remote(server, desired_caps) # tearDown()方法用於測試用例執行之後的善後工作, 如關閉資料庫連線, 退出應用 # 無論這個方法寫在哪裡都是最後執行的 def tearDown(self): self.driver.quit() # 具體的測試用例, 必須要以test開頭 def test_start(self): x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['height'] while True: if 'Like button. Double tap and hold to react.' in self.driver.page_source: sleep(2) self.driver.find_element_by_accessibility_id('Like button. Double tap and hold to react.').click() sleep(2) self.driver.swipe(x * 0.5, y * 0.75, x * 0.5, y * 0.25, 500) sleep(2) if __name__ == '__main__': # 構造測試集 # loadTestsFromTestCase()根據給定的測試類,獲取其中的所有測試方法,並返回一個測試套件 suite = unittest.TestLoader().loadTestsFromTestCase(LoginTest) # unittest框架的TextTestRunner()類, 通過該類下面的run()方法來執行suite所組裝的測試用例, 入參為suite測試套件 # verbosity 引數可以為0,1,2 意思大致就是數字越大測試結果就資訊就越全 unittest.TextTestRunner(verbosity=2).run(suite)