1、常用架構介紹
-Robtium
基于android的一款自動化測試架構,支援JAVA原因,不支援跨平台
-macaca
由阿裡巴巴公開釋出的一套開源自動化解決方案
使用平台:PC端 android IOS
支援語言:JAVA python nodejs
-Appium
一款國外的開源自動化測試架構
适用平台:android IOS
支援的語言:java python php ruby
社群活躍、資料豐富
-appium的特點
-開源
-支援Native app(全部由android SDK的java代碼生成的,原生的app如果頁面有變更,就得發一次版本,送出到應用商城去稽核)
-webapp (由HTML5 生成) 通路速度慢。H5的代碼 以及元素的加載都需要時間
-Hybird app 混合app 是目前使用最多的app
-支援android IOS 兩個平台
-支援跨平台 windows linux macos
-支援多語言 java python ruby
2、appium 自動化測試架構的原理

通過此圖可以知道 app自動化環境需要使用以下工具
-appium伺服器
-基于python的appium用戶端
-adb adb工具繼承在android-sdk中
-JDK
自動化測試環境的安裝
略 從網上搜一下就可以,主要是環境變量的配置
1、JDK的安裝及環境變量的配置
2、android sdk的安裝及環境變量的配置
3、appium服務端的配置及 jdk android-sdk安裝目錄的配置
4、appium-client-python的安裝 在pycharm中安裝即可
二、adb工具
-adb工具 包含了三個部分
-adb用戶端,用來下發adb的指令工具
-server服務端 adb.exe執行之後的程序,表示adb的服務端,通過服務端與手機上的adb守護程序進行通信
-adb守護程序會伴随着android系統的啟動而啟動,當android系統關閉後它才會關閉
2.adb常用指令
2.1 adb常用指令(常看裝置、啟動關閉adb服務)
如果是真機,不要使用一帶多的資料線,否則找不到手機裝置
-adb devices 檢視手機的裝置ID名稱及狀态
emulator-5554 device 中 emulator-5554表示的是手機裝置的ID名稱,device表示裝置處于線上狀态
如果不線上是offline,如果adb服務沒有啟動,下發該指令時會自動啟動adb的服務
-adb start-server 啟動adb服務
-adb kill-server 關閉adb服務
安裝app指令 adb install app路徑
2.2 擷取包名和界面名
-包名:app報名,通過app的包名來區分不同的app,app包名是唯一的
-界面名(啟動名):相當于web頁面中的連接配接位址,在app當中,每個界面都有一個名字
原因:自動化過程中,需要通過app的包名和界面名來啟動app。
操作步驟:
-在手機或模拟器上打開app
-windows指令一:>adb shell dumpsys window windows | findstr mFocusedApp
-windows指令二: adb shell dumpsys window windows | findstr "usedApp"
linux/macos 指令一:adb shell dumpsys window windows | grep mFocusedApp
linux/macos 指令二:adb shell dumpsys window windows | grep "usedApp"
-通過aapt擷取app的包名和界面名
-aapt dump badging
2.3 安裝解除安裝app
-app安裝 adb install 路徑/app安裝包名稱
-app解除安裝 adb uninstall 包名
2.4 上傳下載下傳檔案
-上傳 将電腦上的檔案上傳到手機
adb push 電腦上的檔案路徑 手機的路徑
eg: adb push ./mokey.txt /sdcard
-下載下傳檔案,從手機上下載下傳檔案到本地
adb pull 手機的檔案路徑 電腦的檔案夾路徑
eg: adb pull /sdcard/monkey.txt D:\opt
2.5 檢視日志資訊
為什麼要擷取日志資訊:用來分析問題存在的原因,首先要自己分析日志資訊,同時給開發看
adb logcat 來檢視相關的日志資訊
2.6 測試app的啟動速度(性能測試)
-測試app啟動速度的指令
adb shell am start -W 包名/界面名
需要關注 total time 的時間指值,在實際測測試過程中,會測試多次并取平均時間
3、穩定性測試(8小時)
- monkey 繼承在adb工具中,主要用來做穩定性測試用的,monkey是通過java語言編寫的一種穩定性測試工具
主要用來測試app會不會出現crash 崩潰的情況
相當于讓一隻猴子來随機操作app,所有的操作都可能出現,長時間的操作來測試app會不會出現問題
-monkey常用參數