APP非功能测试

1、移动APP启动时间测试

问题:如何获取启动时间?

答:通过adb的logcat来获取Activity启动时间。用户体验时间=Activity启动时间+启动中异步UI绘制的时间。

启动时间的测试主要涉及2种场景(启动方式):热启动和冷启动。

  • 冷启动:手机系统中没有该APP的进程,也就是首次启动。点击APP图标,启动应用的时候没有该应用的进程存在。
  • 热启动:手机系统中有该APP的进程,即APP从后台切换到前台。点击APP图标,启动应用的时候后台已经有该应用的进程存在了。

APP启动时间测试方法:

1、adb命令,如adb logcat、adb shell am start、adb shell screen-record。

1.1 以com.android.browser这个包名为例,adb shell am start执行命令如下:

adb shell
am start -W -n com.android.browser/.BrowserActivity(回车后观察模拟器)

-W :启动完成之后,返回启动耗时。
-n:后面跟的是需要启动的APP的包名和lauchActivity。 

1.2 以com.android.browser这个包名为例,adb logcat执行命令如下:

1、先kill掉该应用,执行命令:adb logcat > d:\testresult.txt
2、启动应用,待加载完成后ctril+c停止,使用find过滤启动时间,testresult_2.txt是最终我们想要的启动时间,相加其中的时间。
3、find “Displayed”d:\testresult.txt >d:\testresult_1.txt
4、find “com.android.browser”d:\testresult.txt >d:\testresult_2.txt

1.3 以com.android.browser这个包名为例,adb shell screen-record执行命令如下:

1、把待测手机连上计算机,执行录制命令:adb shell screenrecord /sdcard/demo.mp4>启动app>按ctrl+c结束
2、adb pull screenrecord /sdcard/demo.mp4 d:\record命令导出视频到D盘的record文件夹下
3、使用视频软件打开该视频并进行播放分析(如KMPlayer)
4、视频中ICON变亮作为开始时间,将APP完全启动后的时间作为终止时间。用户体验时间=终止时间-开始时间

2、代码里打点(埋点),代码里插入时间并打印Log.e。

3、高速相机、秒表

4、三方工具或云测平台

2、移动APP流量测试

流量:指能够连接网络的设备在网络上所产生的数据流量。

一般对于APP测试的流量,主要关注的是用户层面的流量,需要考虑2种场景:活动状态、静默状态。

  • 活动状态:用户对APP操作而直接导致的流量消耗。
  • 静默状态:用户没操作APP,APP处于后台状态时流量的消耗。

对于Android系统下流量的测试方法:

1、通过Tcpdump抓包,然后利用wireshark分析。

2、查看linux流量统计文件

3、利用类似DDMS的工具查看流量

4、利用Android API来统计,通过Android API的TrafficStats类来统计,该类提供了很多不同方法来获取不同角度的流量数据。

5、三方工具或者云测平台。

使用比较多的linux流量统计文件为例,以test.apk这个应用为例,查看这个应用的流量:

1、通过ps | grep com.android test命令获取pid。

2、通过 cat /proc/{pid}/status 命令获取uid,其中{pid}替换为第一步获取的pid值。

3、通过cat /proc/uid_stat/{uid}/tcp_snd命令获取发送的流量(单位bytes),其中{uid}替换为第二步的值。

4、通过cat /proc/uid_stat/{uid}/tcp_rcv命令获取接收的流量(单位bytes),其中{uid}替换为第二步的值。 

3、移动APP CPU测试

测试一款APP在各种场景下CPU的占用率情况也是比较重要的指标,CPU占用率较高会影响使用流畅度。

一般APP在手机上的CPU占用率主要考虑2种场景:

  • 活动状态:用户对APP操作而直接导致的流量消耗。
  • 静默状态:用户没操作APP,APP处于后台状态时流量的消耗。

对于APP CPU测试方法如下:

1、三方工具,如腾讯GT、网易Emmagee、阿里易测、手机自带监控等。

2、dumpsys命令。如adb shell dumpsys cpuinfo | grep {PackageName}.

3、top命令。如adb shell top | grep {PackageName}.

4、移动APP电量测试

电量测试其实是评估消耗电量快慢的一种方式。

电量测试的测试场景主要有:

  • 待机:包括无网络待机、Wi-Fi待机、3G待机等。
  • 静默状态:打开APP之后并不操作,让后台运行。
  • 活动状态:不断地进行某些场景的操作,除了常规操作外,还应该包括看视频、灭屏下载、唤醒等。

对于APP 电量测试方法:

1、通过硬件进行测试。比如,耗电量测试仪、腾讯自己制作的电量宝。

2、通过adb shell dumpsys batterystats命令。

3、三方工具或者云测平台。

5、移动APP测试工具和云测平台

1、腾讯GT: http://gt.qq.com ,即可对APP进行快速性能测试(CPU、内存、流量、电量、帧率/流畅度等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。

2、Emmagee:http://github.com/NetEase/Emmagee, 监控制定被测应用在使用过程中占用机器的CPU、内存、流量资源的使用情况并记录下来,同时可以通过excel来做出统计图的形式。

3、EasyTest易测:在手机端完成实时性能数据的监控、弱网环境的模拟、手机抓包、Monkey测试等。

6、移动APP内存测试

内存泄露是什么?

内存泄漏:进程中某些对象已经没有使用价值了,但是他们却可以直接或间接地被引用从而导致无法被GC回收。当积累超过Dalvik堆大小时就会发生内存泄露。

内存泄露常见的分析方法:

1、在adb shell 下运行命令dumpsys meminfo [应用包名],可以观察到内存的使用情况。一般观察PSS Total和Heap Size Total.其中Dalvik就是Java堆,它不能超过最大限制,查看最大限制可以用命令getprop |grep heapgrowthlimit.

2、DDMS和MAT.DDMS可动态查看某进程占用内存的情况,而MAT可以对dump出来hprof进行分析。

3、Android Studio和MAT.适合有源码的情况。

4、日志和必要的监控。

内存泄露步骤如下:

1、运行被测APP并持续操作

2、在DDMS中的VM heap标签页里查看消耗。其中有一个按钮Cause GC,方便观察内存的回收情况。如果多次进行发现内存还是在不断增大,可回收的越来越少,那就有可能存在内存泄露。也可以通过data object中的Total Size来进行判断。

3、当发送内存泄露或者持续增长的时候可以通过DDMS的Dump hrof file功能捕获内存快照。

4、通过命令hprof-conf [inputfile][outputfile]转化为标准的hprof文件

5、使用MAT打开标准的hprof文件并进行分析。

6、如果MAT分析不出什么来,可以通过dumpsys meminfo 观察Native Heap的Pss Total和Heap Alloc,如果他们一直在增长,可能是Native层出现了问题,需要去排查JNI、SO库相关的代码。

原文地址:https://www.cnblogs.com/wendyw/p/12590412.html

时间: 2024-11-09 17:48:46

APP非功能测试的相关文章

移动应用/APP的测试流程及方法

1. APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向主管确认项目排期. 1.3测试资源 测试任务开始前,检查各项测试资源. --产品功能需求文档: --产品原型图: --产品效果图: --行为统计分析定义文档: --测试设备(ios3.1.3-ios5.0.1:Android1.6-Android4.0:Winphone7.1及以上:Symbian

移动app非功能测试点收集

非功能测试 移动app测试的另一重要方面是移动app的非功能需求.移动app在推出市场或进行进一步开发前,移动测试员有许多需要测试的问题. 早期开发阶段要进行的第一个测试应该是实用性测试.通常是由alpha用户或同事进行的.走进一家咖啡馆或餐厅,问问里面的人他们的app使用情况.让他们看看现阶段开发的第一个版本并收集反馈,看看用户是否能很好地使用新功能,以便得出第一印象. 检查app的性能.将推出的版本与当前版本做一番比较,看看性能是一样?更好?还是更差?将app安装到旧的设备上,看看该app在

APP云测试

Varsha Jadhav——现担任Thomson Reuters公司税收/会计部的高级质量分析师.她有约6年的软件测试经验.在进Thomson Reuters前,Varsha在印度Verizon数据服务公司干了3年,印度Accenture服务公司干了近2年.她拥有Hyderabad塔斯马尼亚大学的计算机应用硕士学位(MCA). ? 摘要 在技术的世界,严峻的经济形势渴望着创新.任何创新都不可能将问题完全消除,但各式即兴创作绝对能对现在的情况有所帮助,比如性能.质量.高利润率以及更好的商业环境.

Android APP压力测试(三)之Monkey日志自动分析脚本

Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 2.脚本原理 3.操作实例 1.Monkey日志分析脚本 1).脚本文件:Monkey_Log分析.bat @ECHO OFF ECHO.::::::::::::::::::::::::::::::::::::::::::::::::: ECHO.::             分析Monkey日志 

android客户端应用(native app)适配测试自动化 东海陈光剑 2014年5月5日 0:39:04

未命名 android客户端应用(native app)适配测试自动化 东海陈光剑 2014年5月5日 0:39:04 http://10.125.1.58:88/report.html?run_stamp=20140428054354&min=3&sec=214 <!doctype html><html><head>    <meta charset="UTF-8">    <title>适配测试报告<

产品经理怎么做app的测试?

之前有同学希望我写写产品经理怎么做测试.测试,其实就是产品上线之前我们按照一定规则对产品进行检查的工作,确保我们的产品在上线之后没有重大和明显的BUG,并保证用户可以流畅正常地使用我们的产品.我从自己的工作经历出发,谈谈自己对测试的理解,有不对的地方欢迎大家指正.本文只写了一般功能测试的流程和情况,性能测试等模块因为专业性不够,还是留待专业的同学来写吧. 一.测试谁来做? 在大部分公司里这一块会由专门的测试同学负责,然而在很多创业团队里却并没有专门的测试岗位,测试的工作就需要由产品经理或是产品新

Android APP压力测试(二)之Monkey信息自动收集脚本

Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息,主要收集Monkey测试日志.手机日志.手机屏幕截图.测试手机信息,自动按次按时间点保存信息.只需轻轻一点,腾出手腾出脑想干吗干吗,执行结束应该有信息的都有收集,一定程序提升了效率,节约了时间.可以偷空看看美图.聊天扯淡...哦不,是学习提高审美观,沟通交流增进同事情感... 转载请注明出处:Find

Android APP压力测试(一)之Monkey工具介绍

Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常.此文主要给自己查阅用. [目录] 1.Monkey简介 2.Monkey参数说明 3.Monkey实例 4.Monkey测试结果分析 1.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设

移动app传统测试流程优化

概述 在传统的软件测试流程中,每一期需求从开发到上线都要经历从需求分析与评审.测试用例评审.开发.测试.发布的流程.其中测试包含了后台测试.前端web测试.客户端测试.后台测试又包括后台代码逻辑测试.接口测试.接口压力测试等,web端测试包含了前端页面的UI界面测试.PC与移动端浏览器兼容性测试和功能测试等,而客户端测试包含的测试项目较多,而每项测试又相对技术含量较高,从而引入了专项测试的概念.和针对客户端每期需求所做的功能测试不同,专项测试的结果虽然与产品的具体功能相关,又包含独立于产品需求功