從解讀Appium官網的第一段話開始敲開移動互聯網自動化的大門

1、移動互聯網背景

隨着智能手機的普及和互聯網的發展,移動互聯網已經漸漸成爲人們的一種的生活方式;既然是生活方式,那麼對生活品質就會有不斷的提升要求,就會對所用的移動互聯網產品有更高的體驗需求,這對於我們測試工程師來說就有了更高的質量保證要求,而時間短,進度快,種類多,使得我們僅靠人工很難保證版本的測試充分,這個時候就需要藉助自動化來釋放人力,提升效率了。

1.1 一般架構

  • 移動端:用戶會通過公司的產品來使用公司的業務,這些移動端產品包含了Android App、IOS App、H5、小程序
  • 服務端:用戶所有的操作最終會通過各種協議,類似HTTP協議等,發送至公司的服務集羣進行處理
    在這裏插入圖片描述

1.2 測試階段

通常我們一個項目的開展都要經歷需求、研發、測試、交付這幾個過程,而客戶端的測試階段也就是處於產品交付之前:
在這裏插入圖片描述

1.3 UI自動化誤解與價值

1.3.1 誤解

很多人認爲UI自動化沒有用或者只能模擬人工點點點,其實不然,有這種看法大多還是因爲我們自身的能力和理解不夠(包括我本人也是在不斷學習,增加認識)。

  • 技術上:沒有用更好的POM進行封裝維護;
  • 框架上:沒有增加Watch,智能等待,失敗重試等機制來使框架有更靈活的機制
  • 策略上:沒有使用分層測試的策略,合理的控制UI自動化的規模,並不是所有的手工用例都需要用UI自動化去實現
    • 少數核心用例交給自動化測試
    • 大部分的基礎迴歸測試交給自動遍歷
    • 新功能測試交給人工測試
      在這裏插入圖片描述
1.3.2 價值

上面的提到的誤解如果解開就可以正確合理的開展UI自動化測試,就可以爲企業帶來實際的價值,當然,做起來並沒有那麼容易,需要我們測試工程師不斷的探索,本人也是名小學生,在這場升學之路上努力求學中~

扯遠了,拉回來~ 通過下面這張圖來看我們的測試架構,來提煉出UI自動化測試的價值所在
在這裏插入圖片描述

  • 迴歸測試
  • 自動探索測試
  • 專項自動化測試
  • 競品分析

2、主角登場——Appium

上面廢話了這麼多,就爲了引出今天的主角——Appium,一個爲了移動端UI自動化而生的框架,先來看Appium官網打開後看到的第一句話,如下:
在這裏插入圖片描述
還是谷歌翻譯一下~:

Appium是用於原生,混合和移動Web應用程序的開源測試自動化框架。
它使用WebDriver協議驅動iOS,Android和Windows應用程序。

沒錯,就是這簡單的一段話,描述出了Appium的優勢、架構和底層實現原理,下面通過對這段話的解讀來認識Appium,敲開移動互聯網自動化的第一道門

2.1 Appium是誰

Appium ,單詞的由來就是App+Selenium的組合,因此顧名思義,爲了App而來,與Selenium有很大的關係,看下面的架構圖:
在這裏插入圖片描述
從架構圖中我們可以看到,最上層就是用的Selenium實現,因此AppiumSelenium一樣遵從WebDriver協議,通過Selenium客戶端將請求轉發至Android或者IOS上框架的引擎的實現,如果用過Selenium做web自動化的話,現在幾乎可以無縫的切換至appium,很多的用法和思想都保持一致;

2.2 優勢解讀

  • 既然上層使用了selenium,那麼selenium的跨語言性應該也保留了下來—— 跨語言 ,支持Java Python ruby PHP nodejs等
  • 官方介紹中提到了多個平臺的支持,再結合上述的架構圖——多平臺支持 Android、 IOS、 Windows
  • 官方還提到了多種開發模式支持 native hybird webview,這些就可以使我們可以在H5和小程序上開展UI自動化了

如下圖很好的展示了Appium對上述優勢的支持:
在這裏插入圖片描述
除了上述之外還有的優勢就是

  • 支持跨App,可以在多個App之間交互
  • 不依賴源代碼,可以測試第三方應用,比如測試微信服務號

2.3 集大成者-底層引擎的實現

先來看目前mobile自動化的方案,如下對各個端有不同的實現方案,五花八門,且很多不支持跨App
在這裏插入圖片描述
而Appium幾乎包括了所有的優勢,可謂是集大成者,爲何?再來看appium官方GitHub給出的底層引擎實現說明(很多已經淘汰,我們學習推薦使用的即可):
在這裏插入圖片描述

  • Android端
    • espresso :Android官方支持的框架
    • selendroid:eBay實現的框架
    • uiautomator:Android官方實現的集成測試的框架
    • uiautomator2(推薦使用):基於uiautomator的一個拓展,也是我們目前最推薦使用的框架
  • IOS端
    • uiautomation
    • xcuitest(推薦使用)

另外還有Mac和Windows的驅動引擎支持

正是因爲這些引擎的支持實現,所以Appium纔可謂是集大成者,是目前一款優秀的移動端UI自動化框架,我們使用Appium只負責告訴各個底層,我需要做哪些操作,具體如何操作Appium是不管的,由各底層的驅動去完成即可。

3、廣告環節(總結)

最後,如果做移動端自動化測試,我們推薦的是使用Appium框架去敲開這扇大門,進入移動互聯網自動化的世界

  • 跨語言:Java、Python、nodejs等
  • 跨平臺
    • Android、 IOS
    • Windows、Mac
  • 底層多引擎可切換
  • 生態豐富,社區強大
    • 官方文檔中英文皆有,中文由testerhome社區組織翻譯
    • testerhome社區有衆多高手分享經驗,討論採坑,走前人填平的路,助(祝)前進的道路一馬平川!
寫在最後:

經驗欠缺,能力尚弱,還在路上摸索前進,有志同道合的小夥伴歡迎交流指導~
想了解怎麼安裝配置環境的小夥伴可以參考另一篇文章:
Windows(Win10)、Mac下安裝appium

相關鏈接:
appium官網:http://appium.io/
appium官方GitHub:https://github.com/appium/appium
testerhome社區:https://testerhome.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章