前言
由于需求的快速迭代和敏捷測試的要求,在測試過程中引入自動化成為必不可少的手段。作為一個互聯(lián)網(wǎng)測試團隊,我們自然也引入了自動化測試這個環(huán)節(jié)。在眾多的測試框架中,我們選取了相對成熟穩(wěn)定,支持多種平臺的Appium框架。雖然Appium自身的Api能解決大多數(shù)的測試場景,但總有漏網(wǎng)之魚。不巧,就是這些漏網(wǎng)之魚往往成為我們自動化實施中的那些梗。本文主要介紹我們測試團隊在Appium UI自動化實施過程遇到的梗,以及對應(yīng)的解決方法。
自動化測試
Appium自動化框架
我們這里先簡單介紹下Appium。Appium是一個移動端的自動化框架,可用于測試原生應(yīng)用,移動網(wǎng)頁應(yīng)用和混合型應(yīng)用。Appium的核心是一個遵守REST設(shè)計風(fēng)格的web 服務(wù)器,它接受客戶端的連接,接收客戶端的命令,在手機設(shè)備上執(zhí)行命令,然后通過HTTP的響應(yīng)收集命令執(zhí)行的結(jié)果。這種架構(gòu)給我們提供了很好的開放特性:只要某種語言有http 客戶端的api,我們就可以通過這個語言寫我們的測試代碼。
自動化過程
自動化過程廣義上來講是對測試過程的一個建模,就是說通過測試腳本來模擬手工測試的過程。測試過程的三要素是:前提條件,測試步驟,結(jié)果校驗。那么對應(yīng)的自動化測試過程也應(yīng)該包含這三個要素。我們在實施自動化的過程是怎么體現(xiàn)這三個要素的呢?這里可以看下一個典型的測試腳本。
從上面的測試腳本我們可以看出,我們自動化測試是通過找到對應(yīng)的元素,然后執(zhí)行相應(yīng)的動作,即可達到自動化的效果。但這個過程只是最基