iOS 系統UI自動化測試介紹(3)

發表于:2016-11-15來源:簡書作者:孢子菌點擊數: 標簽:自動化測試
跨平臺、開源、多設備多系統的支持,而且文檔詳細,還有 中文版本 ,實在是業界良心。 背景 關于Appium的介紹, 官方的文檔 已經說得很清楚了,我這兒

跨平臺、開源、多設備多系統的支持,而且文檔詳細,還有中文版本,實在是業界良心。

背景

關于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了。

Hello World!

安裝好了Appium server之后,可以開始運行第一個程序了。去官網下載示例代碼。下載之后你能看到有一個apps的文件夾和examples文件夾,前者放的是示例程序,后面是不同語言客戶端的測試腳本。打開 apps/TestApp,運行能看到這是一個單頁面的程序,最上方有兩個輸入框,輸入數字,點擊Compute Sum按鈕,就能得出兩者相加的和。


Paste_Image.png

下面我們就來做這個部分的UI自動化測試。找一個自己熟悉的Client語言去執行自動化腳本,比如Java。打開,是一個Maven工程,下載了相應依賴庫。之后打開SimpleTest文件,因為Xcode 8不支持UIAutomation框架,所以需要在setup中指定capability方式為XCUItest。

原文轉自:http://www.jianshu.com/p/aae160cb9cc4

...
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97