使用Python自動化測試iOS項目

來源:互聯網
上載者:User

標籤:hub   儲存   使用   touch   client   support   過程   python庫   100%   

WebDriverAgent在 iOS 端實現了一個 WebDriver server ,藉助這個 server 我們可以遠端控制 iOS 裝置。你可以啟動、殺死應用,點擊、滾動視圖,或者確定頁面展示是否正確。

項目地址:https://github.com/facebook/WebDriverAgent

facebook-wda這個Python庫,通過直接構造HTTP請求直接跟WebDriverAgent通訊。

項目地址:https://github.com/openatx/facebook-wda

安裝WebDriverAgent

從github上下載代碼

1 git clone https://github.com/facebook/WebDriverAgent

安裝依賴

1 ./Scripts/bootstrap.sh

WebDriverAgent使用的是 Carthage 來管理依賴的,所以你需要安裝Carthage環境。

配置好認證,然後Command+U運行,不是Command+R

如果想用USB通訊的話看這裡 https://github.com/facebook/WebDriverAgent/wiki/USB-support

正常啟動後效果

輸出你手機ip地址說明正常啟動了。

訪問 http://ip:8100/inspector 可以看到App的UI圖層,方便寫測試指令碼。

安裝facebook-wda
1 pip install --pre facebook-wda
小試牛刀:完成App自動下載,安裝

(先取消Touch ID安裝App)

利用Safari跳轉App在AppStore頁面

1234567 app_url = ‘https://itunes.apple.com/cn/app/id425349261?mt=8‘c = wda.Client(‘http://ip:8100‘)# 開啟safaris = c.session(‘com.apple.mobilesafari‘, [‘-u‘, app_url])e = s(name=u‘開啟‘).get(timeout=10, raise_error=False)e.tap()time.sleep(5)

下載App

1234567891011121314151617181920212223242526 s = c.session()if s(className=‘Button‘, name=u‘擷取‘).wait(timeout=10, raise_error=False):# 以前沒有下載過print(‘點擊擷取‘)e = s(className=‘Button‘, name=u‘擷取‘).get(timeout=2, raise_error=False)e.tap()# 等待顯示安裝e = s(className=‘Button‘, name=u‘安裝‘).get(timeout=30, raise_error=False)if e:e.tap()print(‘是否需要輸入密碼‘)if s(className="SecureTextField").wait(timeout=5, raise_error=False):print(‘輸入密碼‘)e = s(className="SecureTextField").get(timeout=5, raise_error=False)e.set_text("password")print(‘點擊登入‘)e = s(className=‘Button‘, name=u‘登入‘).get(timeout=5, raise_error=False)e.tap()else:print(‘不需要輸入密碼‘)elif s(className=‘Button‘, name=u‘重新下載‘).wait(timeout=5, raise_error=False):print(‘點擊重新下載‘)e = s(className=‘Button‘, name=u‘重新下載‘).get(timeout=10, raise_error=False)e.tap()else:exit()

顯示下載進度

1234567891011121314151617 # 有個載入的過程while s(className=‘Button‘, name=u‘正在載入‘).wait(timeout=3, raise_error=False):pass # 隔3秒檢查有沒有下載完成print(‘等待下載完成‘)while s(className=‘Button‘, name=u‘正在下載‘).wait(timeout=3, raise_error=False):value = s(className=‘Button‘, name=u‘正在下載‘).get(timeout=3, raise_error=False).valueif value is None:continuesys.stdout.write("已下載%s\r" % value.encode("utf-8"))sys.stdout.flush()time.sleep(1)sys.stdout.write("已下載100%\r")sys.stdout.flush()# 下載完成print(‘\n下載完成‘)

儲存檔案為 Test_Demo.py ,運行測試

12345 $ python Test_Demo.py點擊重新下載等待下載完成已下載100%下載完成
小結

通過使用WebDriverAgentfacebook-wda能測試任何App(也可以製作簡單的App協助工具輔助,例如最近比較火的跳一跳)。

使用Python自動化測試iOS項目

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.