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

news2024/11/16 15:52:43

目录

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://www.coloradmin.cn/o/78439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

English Learning - L2 窥得大段表达门径 2022.12.8 周四

English Learning - L2 窥得大段表达门径 2022.12.8 周四引言2 形容词2.1 -ing 形容词 VS -ed 形容词核心思想举例3 名词3.1 修饰成分修饰成分的排列的黄金原则:左二右六举例3.2 名词的数3.2.1 "名词 介词/副词/不定式 等" 构成的复合名词变复数&#xf…

Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

一、背景 SpringBoot的应用监控方案比较多,SpringBoot + Prometheus + Grafana是目前比较常用的方案之一。它们三者之间的关系大概如下图: 二、Micrometer的介绍 Micrometer为Java 平台上的性能数据收集提供了一个通用的 API,它提供了多种度量指标类型(Timers、Guauges、…

【强化学习论文合集】十三.2018机器人与自动化国际会议论文(ICRA2018)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

超详细的pytest教程(二)之前后置方法和fixture机制

前言 上一篇文章入门篇咱们介绍了pytest的基本使用,这一篇文章专门给大家讲解pytest中关于用例执行的前后置步骤处理,pytest中用例执行的前后置处理既可以通过测试夹具(fixtrue)来实现,也可以通过xunit 风格的前后置方法来实现。接下来我们一起看看如何…

Unity - 技术美术

198.Shader Graph 旗帜飘扬 官方教程链接:https://learn.unity.com/project/make-a-flag-move-with-shadergraph 本节课程文档:https://gitee.com/chutianshu1981/AwesomeUnityTutorial/blob/main/%E5%9B%BE%E5%BD%A2-%E6%8A%80%E6%9C%AF%E7%BE%8E%E5%B…

ElasticSearch入门到springboot使用

文章目录1.存储引擎产品性能对比2.es安装1.创建目录2.创建挂载的配置文件3.编写docker-compose4.添加文件夹权限5.启动es与kibana6.开放端口7.测试访问8.安装IK分词器3.es核心概念1.文档:就是一条数据2.类型:表字段和类型3.索引:就是数据库4.…

【WIN】Windows10 开启远程连接图形化界面(mstsc)

CONTENTwindows10 rdp 开启远程连接开启远程连接win10 专业版遇到的问题3389 端口不可用简述具体解决windows10 rdp 开启远程连接 开启远程连接 win10 专业版 快捷键: winI 打开设置,然后 #mermaid-svg-bTRFQYmaW8UwxJ5Y {font-family:"trebuche…

java计算机毕业设计ssm医疗垃圾管理系统f5aj8(附源码、数据库)

java计算机毕业设计ssm医疗垃圾管理系统f5aj8(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

针对低功率/低电源电压应用的5MBd数字光耦合器

针对低功率/低电源电压应用的5MBd数字光耦合器 介绍 电气系统中的数字光电耦合器提供高压绝缘和高压绝缘数据传输时的噪声抑制。一个高质量的绝缘屏障,在里面光耦合器需要提供卓越的可靠性和耐久性信号隔离。 除了绝缘和噪音抑制能力,新的5MBd数字光耦…

Image-Line升级FL Studio21水果DAW音乐工作站

FL Studio水果21加入了更快、更精确的音频编辑,改进了内容搜索,DAW“情绪主题”控制,甚至还有更多的灵感、创意工具。 如果你真正需要中文语言,你需要更新到FL Studio 21版本打开你的FL设置,在通用(Genera…

Wireshark | 猿如意

文章目录一、前言二、猿如意介绍客户端网页版三、Wireshark简介发展史使用猿如意下载功能介绍使用方法使用感受一、前言 我曾经有过这样的烦恼:去下载一个应用,结果百度到了一大堆广告,最后下载的也不是官方版本,还捆绑了一大堆AP…

SpringBoot中使用Easyexcel实现Excel导入导出功能(二)

目录 常规导出 大批量数据导出 复杂表头的导出 日期、数字、自定义格式转换后导出 常规导出 常规导出excel有两种,个人比较推荐第一种: 1、新建一个导出数据的实体类,用ExcelProperty()注解标明excel中列的中文名称;如果实体的…

maven学习手册

maven学习手册1.maven简介1.1 传统项目的弊端1.2 Maven是什么2.maven的安装和配置2.1 maven的安装2.2 为阿里云设置代理仓库2.3 maven常用命令简单说明3.maven实战3.1 一个简单的maven项目3.2 maven常用命令简单说明3.3 为这个简单的maven项目安装依赖3.4 maven常见标签说明4.依…

在搭载 M1 及 M2 芯片 MacBook 设备上玩 Stable Diffusion 模型

本篇文章,我们聊了如何使用搭载了 Apple Silicon 芯片(M1 和 M2 CPU)的 MacBook 设备上运行 Stable Diffusion 模型。 写在前面 在上一篇文章《使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙》中,我们聊过…

传感器和变送器有什么区别?工业网关能用吗?

传感器和变送器在自动控制领域都有重要作用,但很容易混淆掉,两者有区别也有联系。 传感器是可以将感受到的信息转换成电信号或者其他信号,如将温度、压力、物料、气体等信息转换成电信号,从而使得这些数据可以网络中传输。 变送器…

软件测试必须知道的方法和知识

“软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性…

C++ 实现前缀树

一 、前缀树是什么 前缀树是一种查找结构,常用于指定字符串或是数组、线性表等连续信息的存储和查找。他的作用类似于哈希表,但是它相对于哈希表来说,限制更多,通用性较差,但是它的功能更加强大,可定制性也…

c#入门-字段类型访问权限低于字段本身

字段类型访问权限低于字段本身 现在假设你有一个小兵类,他的访问权限是仅限当前程序集。 internal class 小兵 {public int hp 12;public int atk 10;public int def 5; }然后声明一个兵营,用来创造小兵 public class 兵营 {public 小兵 模板;publ…

深度学习课件-实验1_PyTorch基本操作实验

文章目录一、Pytorch基本操作考察1.11.21.3二、动手实现 logistic 回归2.12.2三、动手实现softmax回归3.13.2一、Pytorch基本操作考察 使用 𝐓𝐞𝐧𝐬𝐨𝐫 初始化一个 𝟏𝟑 的矩阵 &a…

第五、六章

第五章程序控制结构 5.1switch分支结构 每一个分支结构最后要记得加break;表示退出。 import java.util.Scanner; public class Switch01 { //编写一个 main 方法 public static void main(String[] args) { /* 请编写一个程序,该程序可以接收一个字符&#xff0…