簡介Appium是可以用于native app(原生應用)、web app(web應用)及hybrid app(混合模式)的自動化測試框架。它使用的是WebDriver協(xié)議。 一些概念在開始學習之前,介紹一點必要的概念,對理解Appium框架是很有好處的。 C/S模型Appium的核心是一個支持REST API的web服務器。因為它是一個服務器,所以,對應地,就有客戶端。客戶端與服務器間建立連接,客戶端向服務器發(fā)送命令,服務器接收并執(zhí)行這些命令,最后再將這些命令的結果返回給客戶端。 Session(會話)Appium的自動化工作都需要在session的環(huán)境中完成??蛻舳私o服務器發(fā)送一個請求 desired capabilitiesDesired capabilities是一組鍵值對(key-value),用來告訴服務器要啟動怎樣的session,說白了就是一些配置信息。 Appium Server/Appium DesktopAppium是用Node.js編寫的,你可以通過源碼編譯安裝,當然,也可以直接使用npm。 不過,我安裝的是Appium Desktop,它對Appium Server進行了GUI封裝,集成了運行Appium server所需的組件,還帶了appium Inspector(檢查工具),可以用它檢查app的層級結構(與Chrome DevTools的“檢查”類似)。 Appium ClientAppium支持的客戶端庫有:Java、Ruby、Python、PHP、JS和C#等。你可以根據你實際的編程經驗選擇對應語言的客戶端庫。 下載環(huán)境說明盡管appium支持在多個操作系統(tǒng)上使用,但為了讓環(huán)境更通用易得,筆者采用的是windows系統(tǒng)(如Windows 7和Windows 10)和Android設備,使用python進行Appium Case的編寫。 Client Librariespython版的客戶端庫下載地址:https://pypi./pypi/Appium-Python-Client 其它客戶端庫下載地址:http:///downloads.html Desktop AppsWindows版本下載地址:https://github.com/appium/appium-desktop/releases/download/v1.0.0/appium-desktop-Setup-1.0.0.exe appium-desktop-Setup-1.0.0.exe運行后直接安裝在C盤,不能修改安裝路徑。 其它系統(tǒng)下載地址:https://github.com/appium/appium-desktop/releases/tag/v1.0.0 其它Java JDK安裝Java JDK,并設置 Android SDK安裝Android SDK(Level17或更高版本api),設置 編程語言因為打算使用Python編寫Case,所以需要安裝python,這里選擇的版本是Python2.7。 安裝后請安裝python版的客戶端庫,后續(xù)根據需要,還將安裝其它python庫。 環(huán)境使用運行Appium Server
啟動Appium session
以下,以app和appPackage兩種capability來說明配置方法:
app的值為你電腦本地的apk文件。 點擊“Start Session”,該apk會自動安裝到設備中并運行,最終出現(xiàn)該apk的appium調試界面:
添加appActivity的鍵值對: 其中, appPackage的值為設備中某app的包名; appActivity為該包名的launchable activity name; 點擊“Start Session”后,該app自動啟動,最終出現(xiàn)該apk的appium調試界面: 總結
相關知識native app、web app和hybrid appNative App(原生應用)是一種基于智能手機本地操作系統(tǒng)(如iOS、Android等)并使用原生程式編寫運行的第三方應用程序,也叫本地app。 Web App就是運行于網絡和標準瀏覽器上,基于網頁技術開發(fā)實現(xiàn)特定功能的應用。 Hybrid App(混合模式移動應用)是指介于web-app、native-app這兩者之間的app,雖然看上去是一個Native App,但只有一個UI WebView,里面訪問的是一個Web App。Hybrid App同時使用網頁語言與程序語言開發(fā),總體特性更接近Native App但是和Web App區(qū)別較大。 WebDriver協(xié)議REST API詳見:http://www./ 根據包名獲取launchable activity name進入adb shell中:
那么, |
|
來自: wenxuefeng360 > 《待分類1》