python+appium自動化測試系列就要告一段落了,本篇博客我們作個小結。html
首先想要說明一下,APP自動化測試可能不少公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,因此爲了更好的待遇,咱們仍是須要花時間去掌握的,畢竟誰也不會跟錢過不去。python
接下來,一塊兒總結一下APP UI自動化測試的思路吧。ios
一般用於自動化測試的編程語言有:Python、Java、Javascript、Ruby、C#、PHP等。通常咱們會選擇本身熟悉的編程語言來編寫自動化腳本,但對於編程基礎基本爲0的童鞋(或者專一於作自動化測試的童鞋),推薦學習使用Python。編程
相對於其餘語言,Python作自動化測試有如下優勢:小程序
對於初學者來講,Python語法簡潔,可讀性強,易於學習windows
有強大的第三方庫,編寫腳本效率更高設計模式
Python中的Pytest自動化測試框架是目前最流行的測試框架之一app
選擇編開發語言以後,咱們須要選擇UI測試框架。目前較爲主流或者使用較多的APP UI自動化測試框架有Appium、Airtest等。框架
開源編程語言
Appium server支持在Windows、macOS、Linux上運行
支持多種主流編程語言,如Python、Java、Javascript、Ruby等
支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)
環境搭建較爲複雜
由網易開發(官方文檔),只支持python語言
提供集成Airtest與Poco兩個測試框架的強大的IDE,對新手很友好
集成基於圖像識別的UI自動化測試框架airtest,即便不懂代碼也能編寫自動化腳本
跨平臺,可對Windows、Android和iOS應用軟件進行自動化測試
對遊戲測試較爲友好
Airtest與Poco本質上是python的兩個第三方庫,測試環境搭建沒有Appium那麼複雜
根據實際狀況選擇合適的框架。
如下狀況能夠優先選擇網易的Airtest (Airtest官網):
無編程基礎
遊戲測試
測試場景較爲單一(Appium相對來講較爲笨重)
支付寶小程序自動化(博主目前使用Airtest集成的Poco框架作支付寶小程序自動化測試)
如下狀況建議選擇Appium:
測試場景比較複雜(如須要多臺手機批量測試)
測試腳本語言非Python(Airtest目前只支持Python)
區別於上面所說的UI測試框架,單元測試框架用於加載測試用例、執行測試用例、斷言、輸出測試結果等。
不一樣的開發語言有各自對應的單元測試框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。博主主要使用Python作自動化測試,因此這裏只針對Python單元測試框架作說明。
python主流的單元測試框架:
unittest,Python自帶的單元測試框架
pytest,基於unittest開發,易用性好,信息更詳細,插件衆多
robot framework,基於Python的關鍵字驅動測試框架,有界面,自帶報告及log,功能完善,清晰美觀
這裏強烈推薦使用pytest,功能強大且容易上手,官方文檔爲英文,中文可參考Pytest 使用手冊。
有條件的話建議使用Mac機器專門用於UI自動化測試,由於ios app ui自動化只能在Mac機器上進行。
剛開始進行測試腳本調試時能夠選擇模擬器,Android模擬器可選擇Gernymotion、夜神模擬器,具體參考博客Android模擬器的使用
待整個測試項目開發完成後,建議換成真機跑自動化腳本,這樣更接近真實的用戶使用場景。
建議安裝python 3以上的版本,官方已經中止對python2版本的更新維護。
windows環境下搭建Appium請參考博客appium環境搭建,Mac下搭建Appium稍微複雜點,後續會寫博客分享。
若選擇Airtest框架的話,請參考官網。
爲了驗證整個測試環境是否搭建成功、是否能跑通用例,通常咱們須要先編寫簡單的測試腳本並執行,經過則說明整個環境搭建成功。
推薦使用Page Object設計模式來開發APP UI自動化測試項目,請參考博客Page Object設計模式。
不一樣的開發語言、不一樣的單元測試框架可選用不一樣的測試報告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成測試報告,可參考博客unittest單元測試框架。Pytest框架使用pytest-html生成報告或經過allure定製測試報告。
以上步驟完成後,繼續往測試項目裏新增測試用例即可。
根據上述步驟編寫完成整個app UI自動化測試項目,且運行一段時間穩定後,就能夠考慮進行Jenkins的集成,請參考博客Jenkins集成appium自動化測試(Windows篇) 或 遠程Jenkins新增Mac節點。
總結APP UI自動化可以使用如下幾種實現方式:
1,python + appium + unittest + HTMLTestRunner
2,python + appium + pytest + pytest-html / allure
3,python + Airtest(AirtestIDE)
4,python + Poco + pytest + pytest-html / allure
可根據實際狀況自行選擇。