Appium移動端自動化測試--基礎預熱

近日開始了移動端自動化測試的學習之路,決定在學習的過程中進行筆記,總結學習,印象或許會深刻一些。

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 badging 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

發佈了77 篇原創文章 · 獲贊 121 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章