手機App分兩大類:原生APP(Native App)和混合APP(Hybrid App)web
原生APP(Native App)設計模式
實際就是咱們所常見的傳統App開發模式,雲端數據存儲 + APP應用客戶端。App應用客戶端,包含了全部的UI元素、框架邏輯等。只有數據存儲在雲端。api
混合APP(Hybrid App)瀏覽器
就是HTML5 App,混合App一般由兩部分組成,HTML5雲網站 + App應用客戶端,這裏的App應用客戶端實際只是個架子,裏面的UI元素和邏輯,都是存儲在雲端的,每次在打開App時,去雲端獲取數據呈現給手機用戶。說白了,混合App就是將Web頁面嵌套到了App應用客戶端中。因爲每次打開App都要向HTML雲端服務請求數據,因此會產生不小的數據流量,而且若是沒有網絡,會致使沒法看到HTML App。這就是常說的H5頁面。網絡
Appium介紹app
是一個開源、跨平臺的自動化測試框架,它適用於原生APP 和 混合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接口。
Appium工做流
Appium跨平臺
小貼士:平時咱們經過cnp安裝的是純appium-server,而經過appium-destop 裝的是定位元素的工具,只不過是集成了appium-server。