深聊性能测试,从入门到放弃之:APP性能测试有哪些关注点

简介: 深聊性能测试,从入门到放弃之:APP性能测试有哪些关注点

1、性能测试常见指标


内存

CPU

流量

电量

启动速度

滑动速度

界面切换速度

与服务器交互的网络速度

通常Android对上面的关注点会更多一些,毕竟… 你懂得!


2、预期标准指定原则


分析竞品,所期望指标与竞品的差值或超过竞品

满足产品经理给出的预期性能指标

符合业内标准


3、工具及方法


内存:


方法:使用adb shell脚本进行测试,查看Log数据

命令:adb shell dump meminfo

CPU:


方法:使用adb shell脚本进行测试,查看Log数据

命令:adb shell top

敲黑板:程序持续运行及操作过程中,内存不能一直增加,否则系统会自动Kill(弄死)掉进行;


流量监控:


工具:可以借用网易的开源工具Emmagee

电量监控:


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

启动速度/滑动速度/界面切换速度:


方法:编写测试代码,打桩到源码中,进行测试后通过log进行数据分析;


4、不同角色关注点


关于不同的角色,对性能的要求及关注点,小鱼在《深聊性能测试,从入门到放弃之:初识性能测试》的第三章详细写过,虽然当时没有明确的写出是Web还是App,总的来说,还是离不开这些;

当然,像小鱼我这种乐(为)于(了)助(妹)人(子),我愿意再详细的总结一下,针对App性能,各个不同角色大佬的关注点。


4.1 运维角度

响应时间

服务器资源使用情况是否合理

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

系统能否实现扩展

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

系统性能可能存在的瓶颈在哪里

更换那些设备可以提高性能

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


4.2 开发(架构)工程师角度


架构设计是否合理

数据库设计是否合理

代码是否存在性能方面的问题

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

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

系统中是否存在不合理的资源竞争


4.3 用户角度


加载时间

反应时间


4.4 测试工程师角度


①链接超时

这个问题必须重视,因为在移动应用中网络错误数据比例报错中最高的就是连接超时错误;


②崩溃/闪退

APP的崩溃,就是用户的崩溃。

当用户使用你的App出现闪退或崩溃时,他们很有可能跑去App Store赠送你一个“一星”好评;


我也曾给过某APP一星好评。


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

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


不行就学学某宝,超过xx秒,重新加载进首页,不仅规避网络加载失败问题,还能得到一笔广告费。


④弱网下的运行

电梯里、地铁上,网络信号差时,APP页面的菊花转不停,界面卡死,同时错误提示一堆,


主要卡在菊花这个标志上,着实有点尴尬。


⑤ CPU使用问题


CPU频率设置过高时会导致过热,过热导致耗电更严重, CPU频率设置过低导致手机滞后,

应用处理缓慢同样会导致耗电。

更多时候,用户解决CPU超载问题只能关闭甚至卸载App,App就被Kill!


小鱼遇到这种事情,直接卸载,然后对此APP说拜拜。


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
11天前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
19 1
|
1月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
29 5
|
2月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
14天前
|
消息中间件 网络协议 物联网
如何入门做物联网系统压测?
【4月更文挑战第18天】物联网系统在架构、网络模式、通信协议等方面与传统的互联网系统有所区别。因此,传统的性能测试方法不能直接套用到物联网系统中。
91 13
如何入门做物联网系统压测?
|
16天前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
24 0
|
17天前
|
测试技术 Python
App自动化测试中,如何更好地处理弹窗?
在App自动化测试中,处理弹窗异常是保证测试稳定性和可靠性的重要环节。当遇到广告弹窗、升级提示等不定时出现的UI元素时,可以采用黑名单处理方法,如上述Python代码示例,通过尝试点击黑名单中的元素来避免干扰。同时,利用异常处理装饰器可以增强函数功能,保持代码整洁,当异常发生时记录日志、截图并保存页面源代码,便于问题排查。这两种策略能有效提升测试的效率和质量。
7 0
|
27天前
|
人工智能 分布式计算 Kubernetes
人工智能,应该如何测试?(三)数据构造与性能测试篇
本文探讨了人工智能场景中的性能测试,区别于传统互联网测试,其复杂性更高。主要关注点包括两类AI产品——业务类和平台类,后者涉及AI全生命周期,测试难度更大。测试重点是模型训练的性能,特别是数据模拟。需要构造大量结构化数据,如不同规模、分布、分片和特征规模的数据,以评估算法效率。此外,还涉及模拟设备规模(如视频流)和节点规模(边缘计算),以测试在大规模负载下的系统性能。文中提到了使用工具如Spark、ffmpeg、流媒体服务器和Kubernetes(K8S)的扩展项目,如Kubemark,来模拟大规模环境。最后,文章介绍了使用Golang进行异步IO操作以构建海量小文件,优化IO性能。
49 0
|
2月前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
23 1
|
2月前
|
测试技术 Android开发 索引
XPath定位如何在App自动化测试中大显神威
本文介绍了如何在Appium中使用XPath进行自动化App测试。通过淘宝App实例,展示了XPath在定位元素上的应用,包括基础定位(如通过text、resource-id、class和content-desc属性),contains模糊定位,组合定位以及层级定位(如父、子、兄弟和祖元素定位)。XPath的灵活性和强大功能使得在Appium中高效地定位元素成为可能,从而提升移动应用的测试效率。
16 0
|
2月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
29 1