移動端自動化測試-WTF Appium
手機App分為兩大類,原生App(Native App)和混合APP(Hybrid App)
原生App(Native App)
原生App實際就是我們所常見的傳統App開發模式,雲端數據存儲+App應用客戶端。App應用客戶端,包含了所有的UI元素、框架邏輯等。只有數據存儲在雲端。
混合App(Hybrid App)
混合App就是HTML5 App,混合App通常由兩部分組成,HTML5雲網站+App應用客戶端,這裏的App應用客戶端實際只是個架子,裏面的UI元素和邏輯,都是存儲在雲端的,每次在打開App時,去雲端獲取數據呈現給手機用戶。說白了混合App就是將Web頁面嵌套到了App應用客戶端中。由於每次打開App都要向HTML雲端服務請求數據,所以會產生不小的數據流量,並且如果沒有網絡,會導致無法看到HTML App。這就是常說的H5頁面。
Appium介紹
Appium是一個開源、跨平臺的自動化測試框架,它適用於Native App、Hybrid App。
Appium有個比較好的設計哲學,簡單的說就是不要為了移動端自動化測試而單獨開發一套Api接口,所以Appium也是基於Selenium的Webdriver進行了擴展,擴展了一些操作移動端的Api接口,在我們學習完Selenium的Api接口後,我們在學習Appium只需要學習擴展的那些操作移動端的Api接口即可。
Appium最牛之處在於支持跨平臺操作。實際上我們在測試時是啟動了一個Appium Server,這個Server可以放到任意的機器上,供公司的自動化測試人員共同使用。
Appium原理
Appium既然是基於Selenium做的二次擴展,那麽Appium也是一個經典的Client-Server的設計模式,我們的Code就是狹義上的客戶端,Server端與Selenium不同,Selenium直接測試瀏覽器Web頁面,將瀏覽器作為服務端。而Appium的服務端是我們自己啟動的Appium-Server。數據與操作命令傳遞與Selenium Api接口相同,遵守REST設計風格的Api接口。(所謂的REST設計風格,只是一幫喜歡寫論文的人裝逼搞出來的名詞,讓大家看的雲裏霧裏。簡單的理解,就是一種接口設計方式,網上對於REST的解釋層出不窮,翻譯成三句話,看URL知道要什麽、看HTTP Metod知道幹什麽、看HTTP Status Code知道結果。)
Appium工作流
移動端自動化測試-WTF Appium