0


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查看监测示意图:

可以直接导出保存的数据:

在共享文件夹打开本地电脑位置:

未完待续。。。


本文转载自: https://blog.csdn.net/qq_48917474/article/details/140190765
版权归原作者 埜玊 所有, 如有侵权,请联系我们删除。

“APP项目测试 之 APP性能测试-- 性能测试工具(SoloPi工具)”的评论:

还没有评论