1.SoloPi简介
(1)什么是SoloPi?
SoloPi:是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。
(2)SoloPi的作用是什么?
- 基础性能测试:能够记录待测应用的各项指标,可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
- ---录制回放:通过SoloPi执行用例步骤,能够将用户的操作记录下来,支持在各个设备上进行回放,这一切都能够在手机上独立完成。
- ---一机多控:支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
(3)SoloPi安装注意事项
可独立安装的 SoloPi(APK,IOS无该版本),像普通APP一样安装
(4)SoloPi使用时注意事项
SoloPi使用时,需要申请悬浮窗权限,adb权限,读写权限
2.模拟器的安装
(1)将软件安装包放置在无中文路径下,双击安装:
(2)安装apk:
设置机型:
3.ADB工具安装介绍
(1)ADB工具是什么?
- ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。
- ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备。
- ADB 是一个可以控制安卓设备的通用命令行工具,可以做为Android与PC端连接的一个桥梁,所以ADB又称为安卓调试桥(注意:是安卓,不是iOS),用户可以通过adb在电脑上对Android设备进行全面操作,比如安装和调试应用,操作文件的传输等。
- ---ADB(Android Debug Bridge)是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具。本质是调用命令,解决工具能力的边界。
- ADB可以用来安装卸载软件、管理安卓系统软件、启动测****试、抓取操作日志等
(2)注意事项
- *如果Windows的系统已经安装了雷电模拟器,则忽略ADB*工具安装介绍 **
- macOS系统如果安装的是 MuMu模拟器 ,还需要先安装JDK,然后单独安装****SDK(软件开发工具包)
- 后续操作模拟器时需要用到SDK工具中adb命令
(3)安装ADB工具
ADB环境准备:
ADB环境准备
安装使用ADB工具前,需要确认自己的电脑上已经安装并配置JDK环境。
1)下载ADB
Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip
解压文件:
2)配置环境变量
把解压路径放到系统变量里去(Path)
3)安装结果验证
win+R-->cmd-->abd version-->abd:
(4)ADB命令使用
作用:****通过ADB命令能够实现自动化相关测试,提升测试效率
1)查看已连接的设备列表
- adb devices
- 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
注意:有时候会把鼠标、键盘等通过USB连接到计算机的设备也显示出来。
2)无线连接设备:
- adb connect 手机ip(手机和电脑处于同一网段)
- 如果是USB连接,直接会连接ADB;
- 如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上面192.168.1.61替换成想要连接设备的IP即可。---
3)断开连接设备:
- adb disconnect 手机ip
4) 开启adb服务
- **adb start-server **
5)关闭adb服务
- adb kill-server
6)安装软件包
- adb install /路径/软件包文件名
- (-r 保留数据** -t **强制覆盖 例如: adb install -r -t /路径/软件包的文件名)
- **-r **代表如果apk已安装,重新安装apk并保留数据和缓存文件。apk路径则可以直接将apk文件拖进cmd窗口,记得加空格。
7)卸载软件包
- **adb uninstall app的包名 **
- 如果卸载 app 但需要保留数据和缓存文件:adb uninstall** -k **(apk包名)
**8)获取包名 **
- 获取手机里所有的包名: **adb shell pm list packages **
- 获取手机里所有的系统应用的包名: **adb shell pm list packages -s **
- 获取手机里所有第三方软件的包名: **adb shell pm list packages -3 **
9)获取当前窗口(注意大小写区分)
- Windows:*adb shell dumpsys window | findstr mCurrentFocus((需要打开目标软件*)
- **Mac/linux: **adb shell dumpsys window | grep mCurrentFocus
10)清除缓存
adb shell pm clear 包名
11)**启动/停止应用 **
- 启动**: **adb shell am start 包名/activity名- (包名是软件的标识,Activity主要描述app的某个页面)
- 停止**:**adb shell am force-stop 包名
12)获取手机日志
- adb logcat > 本地文件
- 执行完后Ctrl+C结束日志获取
- 注意:执行命令后,手机上操作复现步骤
- **抓取日志以后重定向到某个文件 **
- '>' : 覆盖文件内容
- '>>' : 追加在文件末尾
- 使用场景: 测试期间记录日志. adb logcat >本地文件
- 避免问题由于不确定复现步骤而导致无法复现,并且被研发拒绝.
13)获取启动时间
- **adb shell am start -W 包名/activity名 **
- 常见参数:- -W :获取时间 - -S:启动前强行停止应用 (冷启动的时间) - -R 数字: 启动次数 - 注意:参数均为大写,顺序可以调整,但**-R后必须是数字**
- 常见的三个指标:- ThisTime: 当前activity的时间。 - TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示。 - WaitTime:前一个应用activity pause的时间+TotalTime
14)获取内存信息
**adb shell dumpsys meminfo 包名 **
(1) Native/Dalvik 的 Heap 信息
如果发现这个值一直增长,则代表程序可能出现了内存泄漏(Out of memary)。
**(2) Total 的 PSS 信息 **
这个值是应用真正占据的内存大小,通过这个信息,可以轻松判别手机中哪些程序占内 存比较大
15)获取CPU
** adb shell dumpsys cpuinfo (查看当前CPU占用情况) **
adb shell top -s 9(代表CPU)
**参数含义: **- PID : 应用程序ID - S : 进程的状态(S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数)- THR : 程序当前所用的线程数- VSS : 虚拟耗用内存(包含共享库占用的内存)- RSS : 实际使用物理内存(包含共享库占用的内存)- PCY : 前台(fg)和后台(bg)进程- UID : 用户身份ID- Name : 应用程序名
**16)获取流量消耗值 **
- 获取**userId : adb shell dumpsys package 包名 | findstr userId **
- 获取上行流量(返回数据单位bytes)**:**adb shell cat proc/uid_stat/userId/tcp_snd
- 获取下行流量(返回数据单位bytes)**:adb shell cat proc/uid_stat/userId/tcp_rcv **
- 注意:cat后的路径是固定; userId中的'i"是大写; package后不加s
17)稳定性测试(Monkey)
adb shell monkey -p 包名数字 -v >本地文件
-v -v -v :最高级别日志
常用命令:adb shell monkey -p 包名 10000 -v -v -v --throttle 500 > 本地文件
- 语法:****adb shell monkey -p 包名 次数 -v >本地文件
- **说明: **- -p 指定包名 (所有命令都在此包内执行,如不指定,则在整个系统内执行) - -v log详细程度(-v -v -v :最高级别日志) - --throttle 单步延时(每步操作间隔,单位毫秒) - --pct-touch 点击事件 - 常用命令:adb shell monkey -p 包名 10000 -v -v -v --throttle 500 > 本地文件
- **举例: **- 不控制事件:adb shell monkey –p com.tpshop.malls –v –v 1000 >C:\Users\18810\Desktop\monkey.txt - 控制事件:adb shell monkey –p com.tpshop.malls --throttle 100 --pct-touch 50 --pct-motion 50 –v –v 1000 >C:\Users\18810\Desktop\monkey.txt
(5)模拟器使用常见异常处理
问题1: devices offline (设备离线) 解决方案:重启模拟器
问题2: devices not found (找不到设备) 解决方案:重启模拟器
问题3: more than one devices emulater(连接了多个设备)
获取设备列表:adb devices
断开不需要的设备: adb disconnect 手机ip
4.SoloPi工具的安装使用
(1)安装SoloPi工具
打开手机模拟器,直接将本地电脑的 SoloPi.apk 拖入模拟器自动安装
**(2)验证SoloPi工具 **
安装成功后桌面显示SoloPi软件图标
双击启动SoloPi工具,点击确定获得对应权限
(3)SoloPi工具使用
进入点击“性能测试”-->点击全局下拉框(选择指定APP):
勾选性能测试指标:
启动开始监测--> 打开被测APP直接操作-->操作完毕后停止并自动保存:
返回SoloPi查看监测示意图:
可以直接导出保存的数据:
在共享文件夹打开本地电脑位置:
未完待续。。。
版权归原作者 埜玊 所有, 如有侵权,请联系我们删除。