功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi

article/2025/9/30 0:45:37

目录

APP测试要点

目标

一、APP专项测试

1.1 兼容性

1.2 安装

1.3 卸载

1.4 升级

1.5 干扰测试(交叉事件测试)

1.6 Push推送

1.7 用户体验

二、 性能测试工具

2.1 APP性能测试工具介绍 —— SoloPi简介

2.2 APP性能测试工具 —— SoloPi使用

三、APP性能测试

3.1 CPU

3.2 内存

3.3 流量

3.4 电量

3.5 启动速度

3.6 流畅度

3.7 稳定性(monkey)

3.8 模拟器使用常见异常处理


APP测试要点

目标

能够实现APP的专项测试(兼容性、安装卸载升级、干扰测试(交叉)、Push推送、用户体验)
能使用solopi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性)

能独立说出常用的APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)

能使用命令测试APP客户端的稳定性(monkey)

一、APP专项测试

1.1 兼容性

  • 手机型号不同品牌商,不同机型(华为P30)
  • 操作系统版本:
    • 安卓:根据在线统计平台数据获取
    • iOS
  • 分辨率
  • 屏幕
    • 尺寸:5.1. 5.5 4.7
    • 类型: 刘海屏 水滴屏 曲面屏 折叠屏
  • 网络: 移动数据 和 WiFi
  • 应用兼容性
    • 手机硬件: 手机上的物理按键(音量键 home键 电源键)
    • 外部硬件: 蓝牙设备 有线设备
    • 操作系统设置: wlan 时间 定位
    • 其他APP: 具有后台播放功能的APP,例如音乐

如何做兼容性测试:
使用不同的机型打开软件操作,无异常即可
若公司没有太多机型,可参考云测平台或者模拟器

如何选择品牌、 机型、 系统、 分辨率网络?
查看线上排名网站( 流量研究院: https://mtj.baidu.com/data/mobile/device)

1.2 安装

  • 正常场景
    • 从不同渠道安装
    • 不同操作系统安装
    • 不同的路径安装(手机\SD卡)
  • 异常场景
    • 中断安装(关机 断网),中断之后能否恢复安装
    • 存储空间不足安装
    • 安装时手动取消或暂停.恢复之后是否能正常安装
    • 正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
    • 低版本覆盖高版本
    • 卸载后再安装(卸载后是否会清除数据)

1.3 卸载

  • 正常卸载(手机卸载\使用第三方软件卸载)
  • 运行时卸载(后台运行)
  • 取消卸载(第三方软件\二次弹窗确认时取消)
  • 中断卸载(关机)
  • 卸载后数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不做任何确认提示,默认需要清空残留数据)

1.4 升级

  • 从临近版本升级(上一次发布的版本)
  • 跨版本升级(历史发布过的版本)
    • 当前版本是n: n-2 升级n
  • 从不同渠道升级
  • 升级成功提醒(红点提示\消息提示)
  • 升级前是否提醒(消息推送提示升级\强制升级不提醒)
    • 自己自研升级系统(日常升级\强制升级)
    • 使用第三方(日常升级\强制升级)
  • 当前版本是否具有升级能力(n升级n+1,升级规则)

1.5 干扰测试(交叉事件测试)

  • 接打电话
  • 收发短信
  • 音视频电话
  • 查看应用推送(其他软件的推送\当前软件的推送)
  • 连接蓝牙设备
  • 接收文件弹窗提醒(确认接收\拒绝接收)
  • 旋转屏幕
  • 切换网络(移动数据和WiFi自动切换)
  • 手机自带应用(打开相机\手电筒\计算器)
  • 低电提醒
  • 插拔充电器(充电动画) 

1.6 Push推送

  • 推送服务器(是否按照规则去推送)
    • 推送内容
    • 推送的时间
    • 推送频率
    • 推送的对象
  • 手机端
    • 不接收消息,将不会收到任何推送
    • 接收消息
      • APP在前台运行时,消息如何显示
      • APP在后台运行时,消息如何显示
      • APP离线,消息如何显示
  • 消息能否打开
  • 接收时设置
    • 接收消息但不提醒:手机提醒不会触发
    • 接收消息且提醒: 接收消息的同时触发提醒 (结合手机模式:静音模式\震动模式\;铃声)
    • 接收消息但不显示消息内容(例如:微信发来一条消息)

 推送平台在哪里?推送的用户是谁?

1.7 用户体验

  • UI界面测试(原型图设计是否合理)
  • 横竖屏测试(内容展示是否异常)
  • 易用性测试(空数据提示\菜单层次是否过深\业务操作步骤是否过多\按钮位置是否适中)
  • 手机上的辅助功能(色盲模式\盲人模式) 

真人体验

  • 可以针对目标用户去找符合条件的人
  • 可以找小白用户体验(公司内部其他团队未接触过该项目的人)

二、 性能测试工具

2.1 APP性能测试工具介绍 —— SoloPi简介

SoloPi: 是一个无线化、 非侵入式的 Android 自动化工具, 具备录制回放、 性能测试等功能。


作用如下:

  • 基础性能测试: 能够记录待测应用的各项指标, 可以在悬浮窗中观察实时更新的数据, 也可以对性能数据进行录制, 在录制结束后查看图表; 同时, 还支持性能加压, 能够对CPU、 内存与网络环境进行限制, 复现应用在性能较差、 网络环境不佳场景下的表现。
  • 录制回放: 通过SoloPi执行用例步骤, 能够将用户的操作记录下来, 支持在各个设备上进行回放, 这一切都能够在手机上独立完成。

  • 一机多控:支持通过操作一台主机设备来控制多台从机设备, 不需要在各个设备上分别进行重复冗杂的兼容性测试, 能够极大提升兼容性测试的效率。

SoloPi安装:

  1. 可独立安装的 SoloPi( APK, IOS无该版本) , 像普通APP一样安装。

2.2 APP性能测试工具 —— SoloPi使用

注意事项: SoloPi使用时, 需要申请悬浮窗权限, adb权限, 读写权限

资料分享:

社区地址、APK下载地址、GitHub地址、gitee地址

  1. 打开SoloPi, 选择性能测试

  2. 选择被测应用, 勾选监控指标, 勾选后悬浮窗会出现在手机屏幕上

  3. 点击开始监控, 随后打开被测APP应用, 开始测试

  4. 结束监控,保存录制数据,查看数据采集结果

  5. 结果展示

         可下拉选择其他性能项

三、APP性能测试

性能: 是衡量APP质量的一个重要指标
常见的性能指标有: 内存, CPU, 流量, 电量, 启动速度, 流畅度、 稳定性


性能指标描述: 一定是某种时间内某种条件执行某种操作,性能指标如何
性能测试可以考虑和稳定性结合,monkey测试时使用性能监控工具监控性能数据.
例如: 2小时内持续刷新操作,性能如何?
持续运行8小时,性能如何

3.1 CPU

基线:如果有基线要求,CPU曲线图是否存在长期超过基线的现象(min)

如果没有基线,行业默认90%
CPU占用过高时可能出现的问题:
手机发烫
页面卡顿
电量消耗严重
快速恢复:清空后台运行的进程


下图 : 蓝色曲线是问题曲线(长时间超过基线),红色曲线是正常曲线

3.2 内存

内存泄露:内存的曲线持续增长(增的远比减的多)
内存溢出:一定是因为有内存泄露才会出现.内存持续增加突然降为0 (应用停止运行)


异常曲线图:
 

 正常曲线图

3.3 流量

  • 使用了多长时间,消耗了多少流量
  • 测试怎么测: 例如: 1小时持续刷新,查看流量消耗
  •  流量优化方法:
    • 数据的压缩
    • 不同数据格式的采用
    • 控制访问的频次
    • 只获取必要的数据
    • 缓存机制
    • 针对不同的网络类型设置不同的访问策略

3.4 电量

  • 使用了多长时间,消耗了多少电量
  • 测试怎么测: 例如: 1小时持续刷新,查看电量消耗
  • 常见的电量消耗较大的场景
    • 定位,尤其是调用 GPS 定位。
    • 网络传输,尤其是非 Wi-Fi 环境。
    • 屏幕亮度
    • CPU 运算:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
    • wake_locker(锁屏-解锁)时间和次数

注意: 公司是否有基线要求,如果有要求,那么我们需要去检验产品是否达标;如果没有基线,可以和竞品对比测试

3.5 启动速度

冷启动: APP离线的状态下启动; 时间长
热启动: APP后台运行的状态下启动. 时间短
命令获取: adb shell am start -W 包名/activity名

3.6 流畅度

  • 帧率(FPS): 每秒切换多少帧
  • 60fps为最佳 

3.7 稳定性(monkey)

  • 注意性能数据监控
  • 注意日志收集 

3.8 模拟器使用常见异常处理

问题1: devices offline (设备离线)

        解决方案:重启模拟器

问题2: devices not found (找不到设备)

        解决方案:重启模拟器

问题3: more than one devices emulater(连接了多个设备)
        获取设备列表: adb devices
        断开不需要的设备: adb disconnect 手机ip


http://chatgpt.dhexx.cn/article/I2xv1m6H.shtml

相关文章

UML用例图(二)

1、 基本概念 (1)系统中与实现无关的视图,只关心系统的高级功能,而不关心系统的具体实现细节 (2)通常在项目开始时要先确定,之后不轻易修改(主要需求) 2、用例图由三部…

UML用例图详解

1. 概述 用例图(Use Case Diagram)描述“用户、需求、系统功能单元”之间的关系,是参与者所能观察和使用到的系统功能模型图。 用例图用于需求分析阶段 用例图包含6个基本元素:参与者(Actor)、用例&#xf…

UML用例图、时序图、类图、活动图

1 .类图 1.1关系 实现: 类实现接口 , [表现] implements 泛化: 类继承类 , [表现] extends 组合: 特殊的关联关系, 是整体与部分的关系, 部分与整体同生命周期, [表现] 成员变量 聚合: 特殊的关联关系, 是整体与部分的关系, 部分与整体不同生命周期, [表现] 成员变量关联: 一个…

UML用例图关系(Include 和extend)

用例图关系 三种关系 泛化(Generalization) 包含(Include) 扩展(extend) 下面给大家分别通过举例来介绍一下这三种关系的概念和用法 概念和用法 概念 (1)泛化关系(带…

图书管理系统 UML用例图

细节处还未扣。资料保留

(转)UML用例图

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的…

UML的用例图

用例图的构成 1 角色:人员角色——人、事; 角色不一定局限于人,还可以是事物、事儿 2用例:功能的描述; 每一个用例描述了一个完整的系统服务 3 系统边界 4 关系:执行者与用例之间的关系。 泛化 依赖 关联…

UML用例图关系与画法

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者(Actor) 表示与您的应用程序或系统进…

设计模式之UML用例图

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下:   1. 参与者(Actor) 表示与您的应用程序或…

UML用例图和类图

UML常见关系: 用例图 构成:参与者、用例、关系。 概念: 参与者:外部用户、进程或其他系统的理想化概念。 用例:外部可见的一个系统功能单元,用例名字是一个动词短语字符串,比如,…

【软件工程】2.UML用例图

什么是UML? UML(Unified modeling language) 出现于70年代中期,建模语言数量从不到十种增加到了五十多种,OO(面向对象)方法的用户并不了解不同建模语言的优缺点及相互之间的差异; 90年代中期形成了UML统一建模语言,它是…

UML用例图与类图

1、用例图 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。 (《UML参考手册》) 用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。 用例图多用于静态建模阶段(主要是业务建模和需求建模)。 …

UML用例图介绍

1.什么是用例图 1.用例图用来描述系统的需求,从用户的角度来描述系统的功能,强调谁在使用系统,系统实现了哪些功能,总的来说,用例图就是描述用户的需求和系统的功能,从外部用户的角度来描述系统的功能。 2…

UML-----用例图

文章目录 什么是用例图?用例图的作用用例图的组成部分扩展关系与包含关系的不同点如下 实例绘制用例图 什么是用例图? 用例图就是用来描述用户需求的图。 用例图的作用 帮助开发团队以一种可视化的方式理解系统的功能需求。借助于用例图,系…

Visio画UML用例图

Visio画UML图基本操作及技巧解析 本文和大家重点讨论一下用Visio画UML图基本操作,画UML图有好多种工具,VISIO只是其中一种,VISIO的动作非常轻快.很多人都在用。下面就让我们一起来看一下具体介绍吧。 用Visio画UML图基本操作 目的 画UML图有好…

软件需求分析——UML用例图

前言:UML是 Unified Modeling language 的缩写,是一种统一建模语言,主要在软件需求分析与设计阶段使用。UML一共包括9个图,分别是用例图、类图、对象图、序列图、协作图、状态图、活动图、构件图、部署图。本篇仅讨论用例图,后续再慢慢补充。 用例图: 1、定义:由参与者…

UML用例图_练习

练习题 “远程网络教学系统”的功能需求包括: (1)学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。 (2)教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。 (3)系统管理员负责对网站页面的维护…

UML用例图讲解及画法

1.用例图 ●用例图(Use Case Diagram)用于描述若干参与者(actor) 以及这些参与者与系统提供的用例之间的交互关系 ●用例图从人-机交互的角度,分析和考察系统的行为,描述系统对用户提供的功能特性 ●用例图由参与者、用例及它们之间的关系组成:用例图参与者用例关系 ●参与者:…

UML用例图实例解析

本文和大家重点讨论一下UML用例图实例的应用,UML用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。 UML用例图 本文和大家…

UML用例图怎么画 有手就会

UML用例图是用于描述系统内用户和与之相关的用例之间的关系, 比如系统、参与者、用例和显示这些元素关系的模型。它展示了一个外部用户能够观察到的系统功能模型图,帮助开发团队以一种可视化的方式理解系统的功能需求。 这里将使用BoardMix绘制UML用例图…