APP UI自動化測試思路總結

2021-02-16 蜀山客

首先想要說明一下,APP自動化測試可能很多公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時間去掌握的,畢竟誰也不會跟錢過不去。

接下來,一起總結一下APP UI自動化測試的思路吧。


一,開發語言選擇

通常用於自動化測試的程式語言有:Python、Java、Javascript、Ruby、C#、PHP等。一般我們會選擇自己熟悉的程式語言來編寫自動化腳本,但對於編程基礎基本為0的童鞋(或者專注於做自動化測試的童鞋),推薦學習使用Python。

相對於其他語言,Python做自動化測試有以下優點:


二,UI測試框架選擇

選擇編開發語言之後,我們需要選擇UI測試框架。目前較為主流或者使用較多的APP UI自動化測試框架有Appium、Airtest等。

1,Appium

開源

Appium server支持在Windows、macOS、Linux上運行

支持多種主流程式語言,如Python、Java、Javascript、Ruby等

支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)

環境搭建較為複雜

2,Airtest

由網易開發(官方文檔),只支持python語言

提供集成Airtest與Poco兩個測試框架的強大的IDE,對新手很友好

集成基於圖像識別的UI自動化測試框架airtest,即使不懂代碼也能編寫自動化腳本

跨平臺,可對Windows、Android和iOS應用軟體進行自動化測試

對遊戲測試較為友好

Airtest與Poco本質上是python的兩個第三方庫,測試環境搭建沒有Appium那麼複雜

3,選擇框架
根據實際情況選擇合適的框架。

以下情況可以優先選擇網易的Airtest :

以下情況建議選擇Appium:


三,單元測試框架選擇

區別於上面所說的UI測試框架,單元測試框架用於加載測試用例、執行測試用例、斷言、輸出測試結果等。

不同的開發語言有各自對應的單元測試框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。這裡只針對Python單元測試框架做說明。

python主流的單元測試框架:

強烈推薦使用pytest,功能強大且容易上手,官方文檔為英文,中文可參考Pytest 使用手冊。


四,測試環境搭建


1,測試電腦選擇

有條件的話建議使用Mac機器專門用於UI自動化測試,因為ios app ui自動化只能在Mac機器上進行。


2,測試手機選擇

剛開始進行測試腳本調試時可以選擇模擬器,Android模擬器可選擇Gernymotion、夜神模擬器

待整個測試項目開發完成後,建議換成真機跑自動化腳本,這樣更接近真實的用戶使用場景。


3,開發語言環境

建議安裝python 3以上的版本,官方已經停止對python2版本的更新維護。


4,UI自動化測試框架環境搭建

windows環境下搭建Appium請參考appium環境搭建,Mac下搭建Appium稍微複雜點

若選擇Airtest框架的話,請參考官網。

五,腳本編寫


1,編寫測試demo

為了驗證整個測試環境是否搭建成功、是否能跑通用例,一般我們需要先編寫簡單的測試腳本並執行,通過則說明整個環境搭建成功。


2,確定目錄結構

推薦使用Page Object設計模式來開發APP UI自動化測試項目


3,選擇測試報告

不同的開發語言、不同的單元測試框架可選用不同的測試報告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成測試報告

Pytest框架使用pytest-html生成報告或通過allure定製測試報告。

以上步驟完成後,繼續往測試項目裡新增測試用例便可。


六,Jenkins集成

根據上述步驟編寫完成整個app UI自動化測試項目,且運行一段時間穩定後,就可以考慮進行Jenkins的集成。

七,總結

總結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

可根據實際情況自行選擇。

相關焦點

  • APP UI自動化測試,思路全總結在這裡了
    首先想要說明一下,APP自動化測試可能很多公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時間去掌握的,畢竟誰也不會跟錢過不去。接下來,一起總結一下APP UI自動化測試的思路吧。通常用於自動化測試的程式語言有:Python、Java、Javascript、Ruby、C#、PHP等。
  • 測試工程師必須要學會的APP UI 自動化都在這裡了!
    首先想要說明一下,APP自動化測試可能很多公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時間去掌握的,畢竟誰也不會跟錢過不去。接下來,一起總結一下APP UI自動化測試的思路吧。通常用於自動化測試的程式語言有:Python、Java、Javascript、Ruby、C#、PHP等。
  • Windows-UI自動化:如何選擇合適的測試框架
    相信只要了解過一點UI自動化測試的朋友,一定不會對Appium感到陌生。作為移動端UI自動化界的元老和王者,appium幾乎是所有UI自動化測試和UI自動化框架嵌套的首選。【缺點】基於移動端ui測試改造,可能因此對於QT應用的的ID識別較差;accecibility_id 理論上支持 autoid定位,但是由於qt的id過長所以支持能力很差,無法找到對應控制項。
  • 移動APP自動化測試框架對比
    從分層測試的角度,自動化測試應該逐層進行。最大量實現自動化測試的應該是單元測試,最容易實現也最容易在早期發現問題;其次是接口級測試,以驗證邏輯為目的進行自動化,由於接口的相對穩定,自動化測試成本相對也可以接受;自動化成本最大的便是UI級自動化測試,然而UI界面是直接反饋給用戶的效果展示,適度的尤其是BVT級的自動化測試也是非常必要的。
  • 不只是移動 App 應用測試方法,還有測試思路……
    移動端測試還是 PC 端測試,業務測試其實都屬於 GUI 測試的範疇,所以基本的測試思路,比如基於頁面對象封裝和基於業務流程封裝的思想是相通的。  移動端應用的測試其自身特點,和其他傳統測試又有一些獨特的測試方法與思路。
  • uiautomator2+python自動化測試1-環境準備
    前言uiautomator是Google提供的用來做安卓自動化測試的一個Java庫。功能很強,可以對第三方App進行測試,獲取屏幕上任意一個APP的任意一個控制項屬性,並對其進行任意操作,但有兩個缺點:測試腳本只能使用Java語言測試腳本必須每次被上傳到設備上運行。
  • 全網最全最細的appium自動化測試環境搭建教程以及appium工作原理
    appium 自動化測試是很早之前做的,一直想留下點什麼,可是一直抽不出一塊完整的時間來做這件事兒。現在終於有了。反觀各種網際網路的招聘,移動測試已經成了主流,如果再不去學習移動自動化測試技術將已經追不上時代的趕腳!好了,廢話不多說,進入正題!二、Appium簡介
  • 報表自動化測試——黑盒測試篇
    基於這個背景,引入自動化測試,旨在通過程序窮舉出各種查詢場景自動進行測試,並記錄各場景的測試結果。需求從背景中收集到以下需求:頁面上有很多查詢條件窮舉查詢條件的組合記錄各組合的測試結果分析先看看頁面長什麼樣子。
  • 自動化測試學習路線
    做了幾年自動化測試,突然想就這個問題,總結一下自己以往的學習經歷,踩過的坑,做一些深入的探討。
  • Android APP自動化測試框架實戰
    1、為什麼需要使用框架實現自動化測試  作為測試工程師,可能在代碼能力上相比開發工程師要弱一點
  • 移動App測試中的最佳做法
    移動軟體測試員必須確保app的所有特定設備功能在app裡都能用。行動裝置的種類這麼多,測試時要將所有的覆蓋是不可能的,所以功能測試時測試員要 專注於他們app的關鍵之處。什麼是真的簡單有效的呢?設備旋轉。我測試工作期間發現有許多bug僅需將設備從縱向旋轉為橫向再旋轉回來就好了。   除了整個手動測試過程,測試自動化對移動app也很重要。
  • 基於自動化用例的精準測試探索
    (3)自動化用例作用無發有效發揮:對於web/api或app 後端服務系統,測試人員對除手工測試外,嘗試最多的測試手段改進就是接口自動化建設,但自動化建設很少有公司在這個方向做的特別好,投放產出比(ROI)特別高的,其根本原因就是自動化的一個核心指標:穩定性太差,隨著項目的迭代,自動化用例積累越來越多,從幾百到幾千,想要這些自動化用例以CI級別觸發(代碼提交一次即觸發一次),用例全部通過穩定在
  • 【推薦】移動App測試中的最佳做法
    選擇一個工具對測試自動化並不容易,但做決定時有一點要牢記,因為很重要: 測試自動化應該使用同樣的程式語言作為產品代碼。如果測試和產品代碼用一樣的語言去寫,那對測試員和開發員都有好處,因為這就使得他們做配對代碼時可以輕鬆些。測試員可以和開發員在同一水平進行交流,他們可以執行測試和產品代碼的代碼審查。對於測試自動化,開發員可以用他們習慣的語言編寫他們自己的腳本。
  • Appium自動化測試環境搭建
    >」進行關注,微信公眾號TestMadman前言Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程
  • 使用pytest-xdist實現分布式APP自動化測試
    不知道大家有沒有遇到這樣一種情況,實際工作中,app自動化測試的用例可能是成百上千條的,如果放在一臺機器上跑,消耗的時間非常久,那能不能使用分布式的來跑測試用例呢?比如有1000條測試用例,給A機器分配500個,給B機器分配500個,同時去跑,這樣耗時就大大減少。剛好pytest-xdist為我們提供了一種可能pytest-xdist是一款分布式測試插件。它在pytest的基礎上做了一些獨有的測試執行模式的擴展。
  • 【松勤軟體測試基礎】APP常見測試點總結
    松勤與你相約基礎就業班自動化測試全棧班
  • 關於面試總結13-app測試面試題
    面試app測試崗位會被問到哪些問題,怎樣讓面試管覺得你對APP測試很精通的樣子?本篇總結了app測試面試時候經常被問的10個相關問題1.什麼是activity?2.Activity生命周期?3.Android四大組件?4.app測試和web測試有什麼區別?5.android和ios測試區別?6.app出現ANR,是什麼原因導致的?
  • 乾貨 | 一文搞定 uiautomator2 自動化測試工具使用
    霍格沃茲測試學院是 python-uiautomator2 金牌贊助商,跟著開源項目作者學測試開發實戰,文末加群。
  • 6年測試老鳥經驗分享:21條自動化測試常見問題及解決思路!
    提起自動化測試,可謂仁者見人,智者見智,心中五味雜陳啊!你從任何一個招聘渠道來看最近兩年對測試崗位的要求,幾乎都要求會自動化測試。而不少人一直認為手工測試才是王道,工作中有的時候也用不到程序,幹嘛在面試的時候要求寫代碼呢?明明自己的測試能力不錯,做了多年的功能測試,為什麼面試的時候四處碰壁呢?很是想不明白,難道業界最近幾年有點兒盲目推崇自動化測試了嗎?
  • Python進行自動化測試綜合介紹
    目前大家對Python都有一個共識,就是他對測試非常有用,自動化測試裡Python用途也很廣,但是Python到底怎麼進行自動化測試呢