近日开始了移动端自动化测试的学习之路,决定在学习的过程中进行笔记,总结学习,印象或许会深刻一些。
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 <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生态工具
- 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
网友评论