APP性能测试,你需要关注哪些指标?

news2024/9/16 18:42:41

一、Android客户端性能测试常见指标

1、内存

2、CPU

3、流量

4、电量

5、启动速度

6、滑动速度、界面切换速度

7、与服务器交互的网络速度

二、预期标准指定原则

1、分析竞争对手的产品,所有指标要强于竞品

2、产品经理给出的预期性能指标数据

3、符合业内行业标准

三、测试方法及工具

1、内存:使用adbshell脚本进行测试,查看Log数据。adb shell dump meminfo

2、CPU:使用adbshell脚本进行测试,查看Log数据。adb shell top。

注意:程序持续运行及操作过程中,内存不能一直增加,不然系统会自动kill掉该进程。

3、流量监控:可以借用网易的开源工具:Emmagee

4、电量监控:和竞品做对比测试,同一机型的测试机在不同时间,不同网络条件,不同功能使用的情况下分别测试电量使用情况。

5、启动速度和滑动、界面切换速度:编写测试代码(AndroidInstrumentation),打桩到源码中,运行后通过log数据进行分析。

6、其他测试工具:腾讯开发的工具:GT随身调。下载地址:gt.qq.com/

不可置否,在对APP的整个测试环节中,性能测试是一个很重要的环节,它直接影响了用户的体验,那么,对于APP的性能测试,我们到底需要关注那些点呢?

其实,我们可以想想在软件设计、部署、使用、维护中一共有哪些角色参与,然后再考虑这些角色各自关注的性能点是什么,那么作为一个软件性能测试工程师,我们就能够从中总结出,对于APP的性能测试主要应该关注哪些比较重要的点。

从用户角度出发

开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。

对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当响应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。

简单地说,用户最关注的其实就是其操作的响应时间。

管理员的角度

(1)、响应时间

(2)、服务器资源使况是否合理

(3)、应用服务器和数据库资源使用是否合理

(4)、系统能否实现扩展

(5)、系统最多支持多少用户访问、系统最大业务处理量是多少

(6)、系统性能可能存在的瓶颈在哪里

(7)、更换那些设备可以提高性能

(8)、系统能否支持7×24小时的业务访问

开发/设计人员角度

(1)、架构设计是否合理

(2)、数据库设计是否合理

(3)、代码是否存在性能方面的问题

(4)、系统中是否有不合理的内存使用方式

(5)、系统中是否存在不合理的线程同步方式

(6)、系统中是否存在不合理的资源竞争

测试角度

那么从用户、管理员、开发者的角度去总结了其关注的性能指标之后,笔者最终认为,对于测试工程师来说,他们在做性能测试的时候,主要应该关注的测试指标应该是:

(1)连接超时

这个是App关闭的首要问题,而在移动应用中网络错误数据比例报错中最高的就是连接超时错误。想象一下当花重金好不容易把你的App推广到用户手机上,而在用户初次尝试时发生连接超时无法正常使用,多数用户会选择再也不会打开应用第二次。

(2)崩溃

这个已无需多言。APP的崩溃,就是用户的崩溃。当用户使用你的App出现闪退或崩溃时,他们很有可能跑去AppStore赠送你一个“一星”差评。

(3)系统交互(电话短信干扰,低电量提醒,push提醒,usb数据线插拔提醒,充电提醒等)

在APP使用过程中,可能会遇到各种中断场景,那么一旦发生这些场景,APP就卡死或者闪退,想必也没有多少用户愿意持续使用你的APP。

(4)弱网下的运行情况

电梯里、地铁上,网络信号差时,APP页面的菊花转不停,界面卡死,同时错误提示一堆,这样的情况怎能不让用户抓狂。

(5)CPU使用问题

CPU频率设置过高时会导致过热,过热导致耗电更严重,CPU频率设置过低导致手机滞后,应用处理缓慢同样会导致耗电。更多时候,用户解决CPU超载问题只能关闭甚至卸载App,App就被Kill了!

那么针对以上所说的几个比较突出的APP测试点,没有开发者希望用自测的方式去解决,耗时耗力不说,最终的效果也不敢完全保证,那么大多数人能够想到的解决方法就是寻求自动化测试工具的帮助,但是目前很多自动化测试工具存在很多的局限性,一是大多自动化测试工具不方便维护;二是虽然很多自动化测试工具很强大,但对代码的能力要求很高,大大的增加了测试门槛;三是自动化投入的成本较高,相对于目前APP开发周期短的现状来说,是很不划算的。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639187.html

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

相关文章

Unity3D:Scene 视图导航

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 Scene 视图导航 场景视图具有一组导航控件,可帮助您高效地四处移动: 场景视图辅助图标移动、旋转和缩放工具居中工具 场景视图辅助图标 场景辅助图标将显…

MySQL性能优化:索引优化

一、索引基础知识 (一)辅助索引/二级索引 叶子节点除了包含键值以外,每个叶子节点中的索引行中还包含了一个书签( bookmark) (每个索引一颗B树,不包含行记录的全部数据) (二) 回表…

docker-harbor私有仓库部署

什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessContr…

HTML5 语义元素(一)页面结构

本篇主要介绍HTML5增加的语义元素中关于页面结构方面的&#xff0c;包含&#xff1a; <article>、<aside>、<figure>、<figcaption>、<footer>、<header>、<main>、<nav>、<section>等元素。 目录 1. 语义元素介绍 1.…

01-SPA单页面的理解,它的优缺点分别是什么?如何实现SPA应用(了解))

文章目录 什么是SPA二、SPA和MPA的区别实现一个SPA1.引入库2.读入数据 总结 什么是SPA (single-page application),是一种网络应用程序或网站的模型&#xff0c;它通过动态重写当前页面来与用户交互&#xff0c;这种方法避免了页面之间切换打断用户体验,在单页应用中&#xff…

文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题

三、在生日悖论的分析中&#xff0c;要求各人生日彼此独立是否很重要?或者&#xff0c;是否只要两两成对独立就足够了?证明你的答案。 文心一言&#xff1a; 在生日悖论的分析中&#xff0c;要求各人生日彼此独立是非常重要的。这是因为&#xff0c;如果各人生日不是独立的…

名号响亮的BBA,为什么在电车市场上“消失匿迹”了?

6月初&#xff0c;各大新能源车企公布了5月份的新车交付情况。整体来看&#xff0c;原本就“打得火热”的车市持续升温&#xff0c;多家车企月度销量环比涨幅超过10%&#xff0c;其中比亚迪更是拿出了超24万辆的“惊人表现”领跑市场。作为新势力的理想汽车&#xff0c;也打破单…

AntDB 企业增强特性介绍——同步异步自适应流复制

AntDB 提供了 hot-standby 的能力&#xff0c;功能与 Oracle 11g 的active standby 类似。并且通过流复制的方式&#xff0c;大大地缩短了备份库与主库的事务间隔。 传统流复制分为同步和异步两种模式。同步复制&#xff0c;即主机的事务要等到备机提交成功后才会提交并结束事…

2023-6-12-第三式单例模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度

前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度, 下载完整代码请访问https://ext.dcloud.net.cn/plugin?id13003 效果图如下: #### 使用方法 使用方法 swiperTabList: ["2023-06-10","2023-06-11","2023-06-12","2…

ICASSP 2023丨基于 CTC 的模型改进,实现更强的模型结构

分享一篇网易智企易盾 AI Lab 团队在ICASSP 2023被收录的语音识别方向的论文《Improving CTC-based ASR Models with Gated Interplayer Collaboration&#xff08;基于 CTC 的模型改进&#xff0c;实现更强的模型结构&#xff09;》 论文地址&#xff1a;https://arxiv.org/ab…

UnityVR--组件10--UGUI简单介绍

目录 前言 UI基础组件 1. Canvas 2. EventSystem 3. Image 4. Text/TextMeshPro/InputField 5. Button控件 其他 前言 UGUI是Unity推出的新的UI系统&#xff0c;它与Unity引擎结合得更紧密&#xff0c;并拥有强大的屏幕自适应和更简单的深度处理机制&#xff0c;更容易使用和…

从零开始:安装H2数据库的步骤解析

在开发或编写示例时&#xff0c;有时需要用到数据库&#xff0c;如果本机上刚好没有安装&#xff0c;类似有些同学是临时借用的电脑或学校的电脑刚好没有安装时&#xff0c;我们可以使用H2数据库来快速代替&#xff0c;即方便又灵活。 安装和使用H2数据库的步骤如下&#xff1a…

【vue3】11-Vue 3中的Composition Api(一)

Vue3 - composition Api 前言options Api的弊端 认识composition ApiSet up函数的基本使用set up函数的参数set up函数的返回值 Set up中数据的响应式1. Reactive API2. Ref API3. ref和reactive的开发 setup中的其他函数&#xff08;了解&#xff09;setup中禁用this 前言 op…

Ansible自动化运维工具的初步了解及模块使用

1.Ansible的相关知识 1.1 Ansible工具的了解 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。Ansible能…

tp6安装并使用rabbitMQ

最近因为业务需要,要用到MQ就去研究了一下,说实话,安装环境给我搞自闭了,大概是我太菜 刚开始使用yum换源,各种安装卸载始终找不到自己要用的版本,后来全部卸载,下载安装包 编译安装解百忧 我用的是erlang 25.3 的版本,MQ使用的是3.11.3的版本,符合官方要求,这里的版本是有强…

智能果树叶部疾病识别实践,基于HOG+SVM和轻量级的CNN模型分别开发构建苹果果树叶部疾病识别分析系统

在农业领域中&#xff0c;将机器学习和深度学习模型结合应用有着广泛的实用意义&#xff0c;在这块相关的实践中以往的项目开发实践则是主要集中在农作物种植相关的&#xff0c;今天本文的主要目的就是开发构建果树叶部疾病识别分析系统&#xff0c;这里是以苹果果树叶部疾病数…

springcloud环境搭建

目录 1、创建一个父项目 ​编辑 2、创建子项目 2.1创建订单系统-order ​编辑 2.2创建库存系统-stock 3、创建rest服务 3.1添加web依赖 3.2编写controller 3.3订单中需要调用库存中的扣减库存的接口 通过idea开发工具进行搭建 1、创建一个父项目 通过spring initializr…

Django基础入门:后台管理 超级用户 数据表注册操作③

Django基础入门&#xff1a;后台管理 超级用户 数据表注册操作③ Django Admin数据表后台管理超级用户数据表注册admin操作日志 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &#x1f396;️&#x1f396;️:Python领域新星创作者&#xff0c;CSDN实力新星…

使用randoop自动化生成测试用例

1. 综述 使用randoop自动化生成测试用例 2. 操作 下载randoop的jar包&#xff1b;将jar包和所要测试的类&#xff08;如Calculate.class&#xff09;放在同一个文件夹&#xff1b;在此文件夹打开命令行提示符&#xff0c;输入如下命令&#xff1a; java -ea -classpath .;ra…