近日開始了移動端自動化測試的學習之路,決定在學習的過程中進行筆記,總結(jié)學習拟赊,印象或許會深刻一些痛垛。
Android自動化環(huán)境準備
1草慧、 Android SDK:- 下載 Android SDK(可以先使用Android Studio輔助安裝),并設置 PATH 變量加入 SDK 的工具目錄匙头;
2漫谷、模擬器:
- Android Studio 自帶 Emulator [推薦]
- Genymotion、網(wǎng)易 MuMu蹂析、BlueStacks
3舔示、真機
需要安裝的軟件:
1、安裝Android Studio(包含了SDK和Emulator)
2电抚、安裝Node.js和npm
3惕稻、安裝Appium()
4、安裝腳本IDE Pycharm
接下來大概的看一下與Appium相關(guān)的知識點蝙叛。
Appium多端架構(gòu)與自動化
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:關(guān)閉 adb 的后臺進程
- adb tcpip:讓 Android 脫離 USB 線的 TCP 連接方式
- adb connect:連接開啟了 TCP 連接方式的手機
- adb logcat:Android 日志查看
- adb bugreport:收集日志數(shù)據(jù)俺祠,用于后續(xù)的分析,比如耗電量
adb shell
adb shell 本身就是一個 Linux 的 shell借帘,可以調(diào)用 Android 內(nèi)置命令
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性能數(shù)據(jù),以及更多詳細的信息
uiautomator: 獲取app整體的界面結(jié)構(gòu),也可以執(zhí)行一些自動化測試
adb shell uiautomator dump
adb shell “uiautomator dump && cat /文件名“
input: 完成一些簡單的自動化指令
adb shell input
模擬一些觸摸/鍵盤等操作事件
adb shell input tap 529 1176 #點擊對應坐標的位置
Android性能統(tǒng)計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
- 獲取系統(tǒng)通知 adb shell dumpsys notification
- 獲得內(nèi)存信息 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 <string> (Default: touchscreen)
- keyevent [--longpress] <key code number or name> ... (Default: keyboard)
- tap <x> <y> (Default: touchscreen)
- swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
- draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
- press (Default: trackball)
- roll <dx> <dy> (Default: trackbal
Appium生態(tài)工具
- adb:Android 的控制工具蔫缸,用于獲取 Android 的各種數(shù)據(jù)和控制
- Appium Desktop:內(nèi)嵌了 Appium Server 和 Inspector 的綜合工具
- Appium Server:Appium 的核心工具,命令行工具
- Appium Clients:各種語言的客戶端封裝庫狰挡,用于連接 appium server:
Java捂龄、Python释涛、Ruby、robotframework-appium - AppCrawler 自動遍歷工具
Appium desktop主要功能
- UI 分析
- 錄制用例
- 元素查找測試
- Attach已有的session
- 云測試
錄制用例并執(zhí)行
- 使用 Appium Desktop 錄制用例
- 安裝 Python 依賴 pip install Appium-Python-Client
- 增加隱式等待增強穩(wěn)定性
- 重新運行
注:
以上內(nèi)容來自思涵老師在極客時間的移動端測試課程:
https://time.geekbang.org/course/detail/244-159017