近日開始了移動端自動化測試的學習之路,決定在學習的過程中進行筆記,總結學習,印象或許會深刻一些。 [TOC] Android自動化環境準備 1、 Android SDK: 下載 Android SDK(可以先使用Android Studio輔助安裝),並設置 PATH 變數加入 SDK 的工具目錄; ...
目錄
- Android自動化環境準備
- 需要安裝的軟體:
- Appium多端架構與自動化
- Android自動化前提依賴:
- 獲取App的信息:
- Android常用命令
- adb shell
- 常用命令列表:
- Android性能統計dumpsys
- uiautomator
- 簡單的自動化工具input命令
- Appium生態工具
- Appium desktop主要功能
- 錄製用例並執行
近日開始了移動端自動化測試的學習之路,決定在學習的過程中進行筆記,總結學習,印象或許會深刻一些。
Android自動化環境準備
1、 Android SDK:- 下載 Android SDK(可以先使用Android Studio輔助安裝),並設置 PATH 變數加入 SDK 的工具目錄;
2、模擬器:
- Android Studio 自帶 Emulator [推薦]
- Genymotion、網易 MuMu、BlueStacks
3、真機
需要安裝的軟體:
1、安裝Android Studio(包含了SDK和Emulator)
2、安裝Node.js和npm
3、安裝Appium()
4、安裝腳本IDE Pycharm
接下來大概的看一下與Appium相關的知識點。
Appium多端架構與自動化
Android自動化前提依賴:
獲取App的信息:
獲取App信息
- 獲取當前界面元素:adb shell dunpsys activity top
- 獲取任務列表:adb shell dumpsys activity activities
獲取App入口
- adb logcat | grep -i displayed
- aapt dump baadging mobike.apk | grep lunchable-activity
- apkanalyzer 最新版本的SDK中才有
啟動應用
- adb shell am start -w -n com.xueqiu.android/.view.WelcomeActivityAlias -S
Android常用命令
- adb:Android Debug Bridge
- adb devices:查看設備
- adb kill-server:關閉 adb 的後臺進程
- adb tcpip:讓 Android 脫離 USB 線的 TCP 連接方式
- adb connect:連接開啟了 TCP 連接方式的手機
- adb logcat:Android 日誌查看
- adb bugreport:收集日誌數據,用於後續的分析,比如耗電量
adb shell
adb shell 本身就是一個 Linux 的 shell,可以調用 Android 內置命令
adb shell:
- adb shell dumpsys
- adb shell pm
- adb shell am
- adb shell ps
- adb shell monkey
常用命令列表:
adb: adb install (apk)
pm:包管理工具,安裝/卸載/清理包
adb shell pm clear com.xueqiu.android
am: 啟動一個app
adb shell am start -n com.xueqiu.android
(adb shell am start -n com.xueqiu.android/.view.WelcomeActivityAlias -S)
dumpsys: 獲取app性能數據,以及更多詳細的信息
uiautomator: 獲取app整體的界面結構,也可以執行一些自動化測試
adb shell uiautomator dump
adb shell “uiautomator dump && cat /文件名“
input: 完成一些簡單的自動化指令
adb shell input
模擬一些觸摸/鍵盤等操作事件
adb shell input tap 529 1176 #點擊對應坐標的位置
Android性能統計dumpsys
- 獲取所有的 dumpsys 子命令 dumpsys | grep -i DUMP
- 獲取當前 activity adb shell dumpsys activity top
- 獲取 activities 的記錄,可以獲取到 appium 依賴的原始 activity dumpsys activity activities
- 獲取特定包基本信息 adb shell dumpsys package com.xueqiu.android
- 獲取系統通知 adb shell dumpsys notification
- 獲得記憶體信息 adb shell dumpsys meminfo com.android.settings
- 獲取 cpu 信息 adb shell dumpsys cpuinfo
- 獲取 gpu 繪製分析 adb shell dumpsys gfxinfo com.android.settings
- 獲取簡訊 adb shell dumpsys activity broadcasts | grep senderName=
uiautomator
- adb shell uiautomator runtest
- adb shell uiautomator dumpsys
簡單的自動化工具input命令
- text
(Default: touchscreen) - keyevent [--longpress]
... (Default: keyboard) - tap
(Default: touchscreen) - swipe
[duration(ms)] (Default: touchscreen) - draganddrop
[duration(ms)] (Default: touchscreen) - press (Default: trackball)
- roll
(Default: trackbal
Appium生態工具
- adb:Android 的控制工具,用於獲取 Android 的各種數據和控制
- Appium Desktop:內嵌了 Appium Server 和 Inspector 的綜合工具
- Appium Server:Appium 的核心工具,命令行工具
- Appium Clients:各種語言的客戶端封裝庫,用於連接 appium server:
Java、Python、Ruby、robotframework-appium - AppCrawler 自動遍歷工具
Appium desktop主要功能
- UI 分析
- 錄製用例
- 元素查找測試
- Attach已有的session
- 雲測試
錄製用例並執行
- 使用 Appium Desktop 錄製用例
- 安裝 Python 依賴 pip install Appium-Python-Client
- 增加隱式等待增強穩定性
- 重新運行
註:
以上內容來自思寒老師在極客時間的移動端測試課程:
https://time.geekbang.org/course/detail/244-159017
更新預告:
下一篇筆記將詳細介紹所需環境的軟體安裝