- 什麼是移動測試
- 移動端測試是指移動應用進行的測試,對移動應用的業務、相容性、健壯性等一系列需求驗證
- 移動端測試分類
- APP功能測試
- APP自動化測試(本階段學習)
- APP安全測試(資料、adb相關指令)
- 擴充
- 接口測試
- 性能測試
- 用戶端(應用本身性能測試 monkey)
- 伺服器(壓力測試、響應時間)
- APP功能測試
- 業務邏輯正确性測試
- 産品文檔
- 相容性測試
- 系統版本
- 安卓:定制版和官方版本
- 定制版:華為、oppo、vivo、小米、三星
- 官方版本:5.1、7.1.1、6.0、8.0、27
- Ios:官方版
- 12.1、11.4.1、12.0.1
- 安卓:定制版和官方版本
- 分辨率
- 1920*1080 1280*720、2280*1080
- 網絡情況
- Wifi
- 4G
- 以上資料來源:
- 騰訊移動分析:https://mta.qq.com/mta/data/device/os
- 移動觀象台:mi.talkingdata.com
- 百度
- 系統版本
- 異常測試
- 熱啟動
- 将應用置于背景一段時間,再将應用從背景切換到前台,關注:切換到前台後,是否保留置于背景界面
- 冷啟動
- 應用在背景未運作,重新啟動應用
- 網絡切換&中斷恢複
- 網絡切換:wifi<=>4G<=>3G
- 中斷恢複:網絡下載下傳中斷,是否繼續可恢複下載下傳
- 電話&資訊中斷恢複
- 說明 :電話資訊對移動應用的影響,
- 關注:在使用應用中,有電話或資訊打斷正在使用的應用,打斷之後,應用保留來電之前的界面
- 熱啟動
- 更新&安裝解除安裝測試
- 更新:
- 相鄰版本:如5.0.1更新到5.0.1
- 誇級版本:如果5.0.1更新到7.0
- 關注:版本差距大的,功能子產品相關比較大,是否能正常安裝
- 安裝:
- 首次安裝:
- 關注:配置資料是否正常處理、依賴插件是否能自動安裝
- 解除安裝後安裝(非首次安裝):
- 關注:如果安裝之前是保留之前版本配置資料,是否能自動檢測到并且正常安裝
- 首次安裝:
- 解除安裝:
- 首次解除安裝
- 如果選擇保留配置資料,配置資料是否保留
- 非首次解除安裝
- 如果不保留配置資料,配置資料或應用檔案是否删除幹淨
- 首次解除安裝
- 更新:
- 健壯性測試
- 手機資源消耗
- 資源指的是CPU、記憶體、電量
- 資源測試工具:360、騰訊GT
- 流量消耗
- 檢測應用以流量的消耗
- 崩潰恢複等測試
- 應用在崩潰後,能重新啟動
- 崩潰:借用monkey工具
- 手機資源消耗
- 業務邏輯正确性測試
- APP自動化測試(本階段學習)
- 概念
- 讓程式代替人為對移動應用功能驗證的過程
- 并不是所有的應用功能都适合進行自動化
- 概念
- APP安全測試
- 通過安全測試技術,保證APP盡可能的不存在安全漏洞
- 中小型公司:雲測平台(testin雲測,阿裡雲)
- 中型公司:雲測平台、安全測試人員
- 大型公司:安全測試團隊
- 如果自己考慮安全方面的知識可參考的網址:http://netsecurity.51cto.com/art/201712/561665.htm
- 環境搭建
- Java
- AndroidSDK
- 模拟器
- 擴充:path環境:
- 輸入指令時,首先搜尋是否為内部指令(cd\dir\ipconfig)
- 搜尋是否為本地目前目錄下可執行檔案
- 搜尋path内的路徑(以分号做分隔)
- Java環境
- 安裝JDK,預設安裝即可
- 将安裝檔案添加到paht變量中(參考講義)
- 驗證:cmd輸入java-version顯示資訊
- androidSDK(安卓開發工具包)
- 為什麼要搭建SDK
- 移動端定位工具uiautomatorviewe
- 如何搭建
- ..\android-SDK\tools
- ..\android-SDK\platform-tools
- 将以上兩個路徑添加到path環境變量中即可
- 如何驗證
- 打開cmd輸入adb version顯示響應的版本号
- 模拟器
- 為什麼安裝模拟器
- 移動應用就是測試以移動手機内APP,APP必須安裝到手機内
- 移動自動化核心目标是測試移動應用的功能,本質上模拟器或真機是沒有差別的
- 如何安裝
- 執行genymotion-2.11.0-vbox.exe(是一集合程式,包含genymotion和virtualbox)->不需要更改配置,直接下一步預設安裝
- 安裝完genymotion繼續等待,會提示安裝virtualbox,繼續安裝,期間會提示安裝oracle插件
- 說明:
- geymotion:加載virtualbox設定虛拟機
- virtualbox:導入離線安卓鏡像檔案
- 為什麼安裝模拟器
- ADB指令(安卓 調式 工具)
- 為什麼要學習ADB指令
- 功能測試操作APP應用時,記錄的日志都需要通過 ADB來擷取
- 自動化執行時,有些必傳的參數,需要ADB指令來擷取
- Adb全名andorid debug bridge,是一個debug工具
- 為何稱之為bridge
- 因為adb是一個标準的c\s結構的工具,是要連接配接開發電腦和調試手機的
- ADB通訊原理
- Client:用戶端發送adb指令à開發電腦中
- Server:監聽用戶端發送adb指令及手機内守護程序傳回的結果à開發電腦中
- Daemon:守護程序,在手機或模拟器中,主要用來接收server發送的指令à手機中
- 三者之間的通信原理圖
- Client<->server<->daemon
- 為什麼要學習ADB指令
- Adb常用指令
- Adb –help:幫助指令(--help可以忽略)
- Adb start -server:啟動服務程式
- Adb kill -server:關閉服務程式
- 提示:啟動服務程式、關閉服務程式正常情況下,不需要人為操作,隻要發送adb指令會自動開啟
- 注:當adb服務出現當機狀态,需要人為殺掉,就要用到adb kill-server
- Adb devices:擷取裝置号
- 目的
- 檢視模拟器或真機是否和電腦連接配接
- 跑自動化腳本時,需要擷取裝置号(裝置号為必傳參數)
- 目的
- 檢視擷取系統版本
- Adb shell getprop ro.build.version.release
- 提示:自動化必傳參數(技巧:可以随便編寫版本号,運作一次,系統報錯,在錯誤資訊中可以檢視到正确的版本号)
- Adb push:将檔案發送到手機
- 格式:adb push 電腦路徑\檔案名稱.字尾名 /sdcard
- 如:adb push E:\lili \a.txt /sdcard
- Adb pull:從手機中擷取檔案到本地電腦
- 格式:adb pull sdcard /手機檔案.字尾名c:\建立檔案夾
- 如:adb pull sdcard/a.txt E:\lili
- 提示:輸入adb指令時,注意是否在本地電腦目錄下,而不是在手機路徑下
- 格式:adb pull sdcard /手機檔案.字尾名c:\建立檔案夾
- Adb logcat :檢視手機實時運作日志
- 使用
- Adb logcat > 日志儲存路徑
- 如:Adb logcat > E:\lili.a.txt
- 檢視:一般搜尋err
- Adb logcat > 日志儲存路徑
- 使用
- 手機shell指令行
- Adb shell
- adb shell dumpsys window windows | findstr usedApp:檢視擷取APP包名、啟動名
- 包名:app應用唯一辨別符(一般采用反向域名)
- 如:www.baidu.com 反向域名:com.baidu.www
- 啟動名:頁面的辨別符(不是唯一的)
- 指令:adb shell dumpsys window windows | findstr usedApp
- 查找:com.android.settings/.SubSettings
- .com.android.settings:包名
- ..SubSettings:啟動名
- 安裝apk檔案
- 指令:adb install apk路徑
- 如:adb install E:\lili\ak.apk
- 解除安裝apk檔案
- 指令:adb uninstall 包名
- 如:adb uninstall com.vcooline.ailke
- 提示:安裝APK時,檔案名稱應該避免中文
- Apk啟動時間
- 指令:adb shell am start -w 包名/啟動名
- 關注 :TotalTime時間(總時間)
- 常用移動應用自動化測試工具
- Robotium
- 支援語言:JAVA
- 支援:android系統
- 不支援跨應用
- Macaca
- 支援語言:java、python、node.js
- 支援android系統和ios系統
- 支援跨應用
- 不選理由:參考資料少、使用量少
- Appium(本階段學習)
- 支援語言:java、c#、python、php、perl、ruby、node.js
- 支援android系統和ios系統
- 支援跨應用
- 擴充:
- 自動化工具選擇參考條件
- 是否支援跨應用(A應用内調用B應用)
- 是否支援native與webview
- Native:使用安卓或IOS系統原生控件,完成APP
- Webview:使用html完成的控件
- 是否支援toast消息擷取
- Toast:一種黑底白字提示框(有時間限制)
- 自動化工具選擇參考條件
- Robotium
- Appium背景介紹
- 開源、跨平台的測試架構,可以用來測試原生及混合的移動端應用
- 由nodejs的express架構寫的http server
- 安卓uiautomator架構
- Appium環境搭建
- 安裝Appium伺服器 Appium-desktop-1.2.7.exe
- 或者安裝:npm install -m appium指令版服務端,需要科學上網
- 安裝Appium python API庫
- 指令:pip3 install Appium-Python-Client ==0.26
- 驗證:pip3 show Appium-python-Client
- 進入python 進行導包 from Appium import webdriver不報錯就可以
- 安裝Appium伺服器 Appium-desktop-1.2.7.exe