APP UI自動(dòng)化測(cè)試思路總結(jié)

python+appium自動(dòng)化測(cè)試系列就要告一段落了,本篇博客咱們做個(gè)小結(jié)。
首先想要說(shuō)明一下,APP自動(dòng)化測(cè)試可能很多公司不用,但也是大部分自動(dòng)化測(cè)試工程師、高級(jí)測(cè)試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時(shí)間去掌握的,畢竟誰(shuí)也不會(huì)跟錢過(guò)不去。
接下來(lái),一起總結(jié)一下APP UI自動(dòng)化測(cè)試的思路吧。

一,開發(fā)語(yǔ)言選擇

通常用于自動(dòng)化測(cè)試的編程語(yǔ)言有:Python、Java、Javascript、Ruby、C#、PHP等。一般我們會(huì)選擇自己熟悉的編程語(yǔ)言來(lái)編寫自動(dòng)化腳本,但對(duì)于編程基礎(chǔ)基本為0的童鞋(或者專注于做自動(dòng)化測(cè)試的童鞋),推薦學(xué)習(xí)使用Python。

相對(duì)于其他語(yǔ)言,Python做自動(dòng)化測(cè)試有以下優(yōu)點(diǎn):

  • 對(duì)于初學(xué)者來(lái)說(shuō),Python語(yǔ)法簡(jiǎn)潔,可讀性強(qiáng),易于學(xué)習(xí)
  • 有強(qiáng)大的第三方庫(kù),編寫腳本效率更高
  • Python中的Pytest自動(dòng)化測(cè)試框架是目前最流行的測(cè)試框架之一

二,測(cè)試框架選擇

選擇編開發(fā)語(yǔ)言之后,我們需要選擇UI測(cè)試框架。目前較為主流或者使用較多的APP UI自動(dòng)化測(cè)試框架有Appium、Airtest等。

1,Appium

  • 持續(xù)維護(hù)中且開源
  • Appium server支持在Windows、macOS、Linux上運(yùn)行
  • 支持多種主流編程語(yǔ)言,如Python、Java、Javascript、Ruby等
  • 支持Android、ios、H5自動(dòng)化測(cè)試(集成了UiAutomator、UiAutomation框架)
  • 環(huán)境搭建較為復(fù)雜

2,Airtest

  • 由網(wǎng)易開發(fā)(官方文檔),只支持python語(yǔ)言
  • 提供集成Airtest與Poco兩個(gè)測(cè)試框架的強(qiáng)大的IDE,對(duì)新手很友好
  • 集成基于圖像識(shí)別的UI自動(dòng)化測(cè)試框架airtest,即使不懂代碼也能編寫自動(dòng)化腳本
  • 跨平臺(tái),可對(duì)Windows、Android和iOS應(yīng)用軟件進(jìn)行自動(dòng)化測(cè)試
  • 對(duì)游戲測(cè)試較為友好
  • Airtest與Poco本質(zhì)上是python的兩個(gè)第三方庫(kù),測(cè)試環(huán)境搭建沒(méi)有Appium那么復(fù)雜

3,選擇框架

根據(jù)實(shí)際情況選擇合適的框架。

以下情況可以優(yōu)先選擇網(wǎng)易的Airtest (Airtest官網(wǎng)):

  • 無(wú)編程基礎(chǔ)
  • 游戲測(cè)試
  • 測(cè)試場(chǎng)景較為單一(Appium相對(duì)來(lái)說(shuō)較為笨重)
  • 支付寶小程序自動(dòng)化(博主目前使用Airtest集成的Poco框架做支付寶小程序自動(dòng)化測(cè)試)

以下情況建議選擇Appium:

  • 測(cè)試場(chǎng)景比較復(fù)雜(如需要多臺(tái)手機(jī)批量測(cè)試)
  • 測(cè)試腳本語(yǔ)言非Python(Airtest目前只支持Python)

三,單元測(cè)試框架選擇

區(qū)別于上面所說(shuō)的UI測(cè)試框架,單元測(cè)試框架用于加載測(cè)試用例、執(zhí)行測(cè)試用例、斷言、輸出測(cè)試結(jié)果等。

不同的開發(fā)語(yǔ)言有各自對(duì)應(yīng)的單元測(cè)試框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。博主主要使用Python做自動(dòng)化測(cè)試,所以這里只針對(duì)Python單元測(cè)試框架做說(shuō)明。

python主流的單元測(cè)試框架:

  • unittest,Python自帶的單元測(cè)試框架
  • pytest,基于unittest開發(fā),易用性好,信息更詳細(xì),插件眾多
  • robot framework,基于Python的關(guān)鍵字驅(qū)動(dòng)測(cè)試框架,有界面,自帶報(bào)告及l(fā)og,功能完善,清晰美觀

這里強(qiáng)烈推薦使用pytest,功能強(qiáng)大且容易上手,官方文檔為英文,中文可參考Pytest 使用手冊(cè))。

四,測(cè)試環(huán)境搭建

1,測(cè)試電腦選擇

有條件的話建議使用Mac機(jī)器專門用于UI自動(dòng)化測(cè)試,因?yàn)閕os app ui自動(dòng)化只能在Mac機(jī)器上進(jìn)行。

2,測(cè)試手機(jī)選擇

剛開始進(jìn)行測(cè)試腳本調(diào)試時(shí)可以選擇模擬器,Android模擬器可選擇Gernymotion、夜神模擬器,具體參考博客Android模擬器的使用

待整個(gè)測(cè)試項(xiàng)目開發(fā)完成后,建議換成真機(jī)跑自動(dòng)化腳本,這樣更接近真實(shí)的用戶使用場(chǎng)景。

3,開發(fā)語(yǔ)言環(huán)境

建議安裝python 3以上的版本,官方已經(jīng)停止對(duì)python2版本的更新維護(hù)。

4,UI自動(dòng)化測(cè)試框架環(huán)境搭建

windows環(huán)境下搭建Appium請(qǐng)參考博客appium環(huán)境搭建,Mac下搭建Appium稍微復(fù)雜點(diǎn),后續(xù)會(huì)寫博客分享。

若選擇Airtest框架的話,請(qǐng)參考官網(wǎng)

五,腳本編寫

1,編寫測(cè)試demo

為了驗(yàn)證整個(gè)測(cè)試環(huán)境是否搭建成功、是否能跑通用例,一般我們需要先編寫簡(jiǎn)單的測(cè)試腳本并執(zhí)行,通過(guò)則說(shuō)明整個(gè)環(huán)境搭建成功。

2,確定目錄結(jié)構(gòu)

推薦使用Page Object設(shè)計(jì)模式來(lái)開發(fā)APP UI自動(dòng)化測(cè)試項(xiàng)目,請(qǐng)參考博客Page Object設(shè)計(jì)模式。

3,選擇測(cè)試報(bào)告

不同的開發(fā)語(yǔ)言、不同的單元測(cè)試框架可選用不同的測(cè)試報(bào)告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成測(cè)試報(bào)告,可參考博客unittest單元測(cè)試框架。Pytest框架使用pytest-html生成報(bào)告或通過(guò)allure定制測(cè)試報(bào)告。

以上步驟完成后,繼續(xù)往測(cè)試項(xiàng)目里新增測(cè)試用例便可。

六,Jenkins集成

根據(jù)上述步驟編寫完成整個(gè)app UI自動(dòng)化測(cè)試項(xiàng)目,且運(yùn)行一段時(shí)間穩(wěn)定后,就可以考慮進(jìn)行Jenkins的集成,請(qǐng)參考博客Jenkins集成appium自動(dòng)化測(cè)試(Windows篇)遠(yuǎn)程Jenkins新增Mac節(jié)點(diǎn)。

七,總結(jié)

總結(jié)APP UI自動(dòng)化可使用以下幾種實(shí)現(xiàn)方式:

1,python + appium + unittest + HTMLTestRunner

2,python + appium + pytest + pytest-html / allure

3,python + Airtest(AirtestIDE)

4,python + Poco + pytest + pytest-html / allure

可根據(jù)實(shí)際情況自行選擇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容