首頁>科技>

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 實現,因此 Appium 和 Selenium 一樣遵從 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 是不管的,由各底層的驅動去完成即可。

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

跨語言:Java、Python、nodejs等跨平臺:Android、 IOS、Windows、Mac底層多引擎可切換生態豐富,社群強大

(文章來源於霍格沃茲測試學院)

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 5G手機待機僅4G輸出?真相是這樣