跨平臺、開源、多設備多系統的支持,而且文檔詳細,還有中文版本,實在是業界良心。
關于Appium的介紹,官方的文檔已經說得很清楚了,我這兒大致提煉一下幾個重要的點。
1.無需為了自動化,而重新編譯或者修改你的應用
在iOS上,這個特性是顯然的。前面也說道了,因為Apple提供了Accessibility特性,讓你可以得到控件響應的id,frame等。還可以通過代理,從而得到樹形層級結構。
2.跨平臺
這主要歸功于Appium的自動化統一接口WebDriver API.WebDriver(也就是 "Selenium WebDriver")。我們使用這套統一的接口,在各自平臺上去解釋,得到不同的底層實現。比如iOS這邊是UIAutomation和UITest,Android則是UiAutomator和Instrumentation。
3.多種語言編寫&執行測試腳本
這得益于Appium的C/S架構,我們將編寫執行腳本的部分稱為客戶端(Clinet),腳本內容遵循統一接口。每一行,其實就是Client向服務器去發送一條Http消息,然后Server解析并翻譯成對應平臺(iOS/Adr)的實際測試命令,再發送給Device,再執行??梢酝ㄟ^下面的示意圖簡單了解。
因為Server層的存在,和統一接口的隔離,實現了腳本實現和執行條件的多樣性?,F已知的就支持Java、Python、js、Ruby等方式的Client API。
同樣,官方文檔的快速開始也給出了詳盡的步驟。但是實際上我在MAC上安裝Appium的時候,還是遇到了各種各樣的坑。這個指南部分,希望能幫助大家趟過這些坑。
0.下載圖形化桌面應用 Appium App
目前更新到1.5,不支持Xcode8 和UITest。如果還在使用Xcode 7系列的版本可以直接下載使用。
1.安裝 homebrew & node 如果接觸過web前端的同學應該不會陌生。
2.node安裝appium
npm install -g appium
到這里需要掛代理翻墻。如果沒有條件的話,可以使用淘寶的NPM 鏡像。
安裝到一半,應該會遇到/usr/local
目錄權限問題。這里給個小提示,建議給/usr/local/lib/node_modules/appium
開全權限sudo chmod -R 777 ./
,不建議使用sudo,據說會遇到別的問題。如果中途遇到錯誤,使用
npm uninstall -g appium
命令卸載,然后重裝。如果卸載不了,就直接去Finder/usr/local/lib/node_modules/appium
目錄刪除就好了。
安裝好之后,運行
$ appium &
命令就可以啟動Appium的server了。
安裝好了Appium server之后,可以開始運行第一個程序了。去官網下載示例代碼。下載之后你能看到有一個apps的文件夾和examples文件夾,前者放的是示例程序,后面是不同語言客戶端的測試腳本。打開 apps/TestApp
,運行能看到這是一個單頁面的程序,最上方有兩個輸入框,輸入數字,點擊Compute Sum按鈕,就能得出兩者相加的和。
下面我們就來做這個部分的UI自動化測試。找一個自己熟悉的Client語言去執行自動化腳本,比如Java。打開,是一個Maven工程,下載了相應依賴庫。之后打開SimpleTest文件,因為Xcode 8不支持UIAutomation框架,所以需要在setup中指定capability方式為XCUItest。
原文轉自:http://www.jianshu.com/p/aae160cb9cc4