APP项目测试 之 APP性能测试-- 性能测试工具(SoloPi工具)

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设备进行全面操作,比如安装和调试应用,操作文件的传输等。

  1. ADB(Android Debug Bridge)是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具。本质是调用命令,解决工具能力的边界。
  2. 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结束日志获取
  • 注意:执行命令后,手机上操作复现步骤
  • 抓取日志以后重定向到某个文件
  1. '>' : 覆盖文件内容
  2. '>>' : 追加在文件末尾
  3. 使用场景: 测试期间记录日志. adb logcat >本地文件
  4. 避免问题由于不确定复现步骤而导致无法复现,并且被研发拒绝.

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)

1. adb shell monkey -p 包名 数字 -v > 本地文件
2. -v -v -v : 最高级别日志
3. 常用命令 :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查看监测示意图:
可以直接导出保存的数据:
在共享文件夹打开本地电脑位置:

未完待续。。。

  • 31
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

埜玊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值