移动终端性能测试是测试手机终端是否符合特定性能指标的测试,包括有:内存、CPU、电量、流量、流畅度、时延等

测试准备:测试账号、测试需求、测试用例、待测手机、待测应用包、测试工具、测试电脑

1.  时延篇

A.Android

工具:ffmpeg

测试方法:

1)待测试的手机安装应用后打开应用执行测试用例

2)Step1的测试用例执行的过程用另外一台手机进行视频录制

3)录制好的视频保存到电脑上,用ffmpeg工具执行脚本(ffmpeg.exe -i D:\ab\IMG_0425.MOV -r 30 -s 640x480 D:\ab/%d.png)将视频转换成静态图

4)通过静态图分析测试执行的时延数据(间隔时间(秒)=(结束帧数-开始帧数)*1/30),这里开始帧数图片建议是点击到页面的那一张,结束帧数图片有两种情况,一种是出现首个元素的图片,一种是所有元素渲染完的那张图片,根据实际情况需求去计算

B.iPhone同上

备注:ffmpeg网上下载即可

2.  内存篇

A.Android

工具:GT or DDMS

内存检查方法:

方向:

1.边界值检测

2.功能增持检测

3.极限检测(适合有点内存洁癖的产品风格)

DDMS

Dalvik Debug Monitor Server,虚拟机调试监控服务,在Android官网(http://developer.android.com/sdk/index.html)下载SDK,下载SDK后,会发现下载的ADT套件中包括eclipse,sdk,DDMS,X86 Android虚拟机等等,打开其中的Eclipse后,就会看到右上方的DDMS tab页

点击就会进入DDMS。

DDMS从左至右分为三个部分,设备列表,文件详情,资源详情。

一、什么是内存泄露

内存泄露是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用。导致系统运行变慢或应用程序崩溃。

二、如何检测Android中的内存泄露

Android tools中的DDMS带有一个很不错的内存监测工具Heap,可以检测一个进程的内存变化,根据这个工具我们大致可以测试某个应用是否存在泄漏的可能。

三、具体操作

1、打开eclipse,切换到DDMS,并确认Devices视图、Heap视图都是打开的;

2、将手机通过USB链接至电脑,链接时,选择 “USB调试”模式;

3、链接成功后,在DDMS的Devices视图中将会显示手机设备的序列号,以及设备中正在运行的部分进程信息

4、在Devices 中,点击要监控的程序。

5、点击Devices视图界面中最上方一排图标中的“Update Heap”

6、点击Heap视图

7、点击Heap视图中的“Cause GC”按钮;

8、到此为止需检测的进程就可以被监视。如下图:

四、如何判断内存泄露

Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:

1.进入某应用,不断的操作该应用,同时注意观察data object的Total Size值

2.正常情况下Total Size值都会稳定在一个有限的范围内.

3.反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,直到到达一个上限后导致进程被kill掉。

在我们的程序中,要是出现某个进程出现了不断增加的现象,可能该应用就存在泄漏的问题。如果某个进程在操作过程中出现程序崩溃,可能该应用程序已申请不到空间,可能存在内存泄露。

B.iPhone

前提:GT or Mac机装有iTools和Instruments

1)内存检查方法

  工具:Instruments Activity Monitor

1)打开Instruments然后选择Activity Monitor工具

2)打开后界面如下,可以帮助我们通过进程Id或程序名称监控每个程序的物理内存、虚拟内存的消耗:

3)在Choose Target勾选iPhone&选择被测程序

4)点击Record后会显示出当前手机上进程运行情况,这里我们只需要关注被测应用

2)内存泄露检查方法

  工具:Instruments Leaks

1) 启动QQ程序

2) 启动Instruments Leaks工具,点击Choose Target或attach到QQ,点击Record开始检测

3) 操作QQ,执行某个功能或某条测试用例

4) 功能执行完毕后再次点击Record停止检测,点击中部的工具条,从Leaks视图切换为Call Tree视图,并在左侧的面板中勾选“Invert Call Tree”及“Hide System Libraries”

5) Call Tree视图中列出了检测到的泄露点的函数调用位置,将这些泄露点提单处理

(如果用来测试的ipa包是本地编译出来的,双击函数名可以跳转到QQ源码的泄露位置)

3.流畅度篇

A.Android

工具:GT、Python和Python脚本

测试方法:

1)安装python2.7.X,http://www.python.org/getit/,并将python的安装目录设置到系统环境变量PATH中。注意,当前脚本仅支持2.6.X、2.7.X版本的python。请不要使用3.3.X版本。

2)下载并使用脚本:

http://files.cnblogs.com/files/daxiong2014/android%E4%B8%8BFPS%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7.rar

*仅监控FPS,执行runFPSmonitor.bat

*自动滑动并监控FPS,执行runScrolltest.bat

3)打开要测试FPS值的界面,准备测试场景,执行Scrolltest脚本,并等待脚本自动执行结束。

4)打开结果文件,计算平均FPS值。

备注:手机需要root权限,连接至脚本运行的电脑

B.iPhone

工具:Instrument Core Animation

测试方法:

1)打开Instrument,选择流畅度测试工具Core Animation

2)在Choose Target勾选iPhone&选择被测程序

3)点击Record开始监测

4)上下滑动待测手机上的应用程序页面

5)点击stop停止监测,根据数据得到对应的流畅度曲线,分析数据,进行对比,得出结论。

1.  流量篇

A.Android

工具:GT & Fiddler

测试方法:

B.iPhone

工具:

测试方法:

移动app性能测试(待完善)的更多相关文章

  1. Jmeter之app性能测试(ios,android)

    测试小菜鸟alter今天一大早又学习了一点东西关于jmeter-app性能测试,现在记录一下.提到性能测试,那我就简单总结一下.(想跳过的,直接将页面下移到下一个红色字体处) 性能测试的相关知识介绍 ...

  2. Android app性能测试小结(7个性能指标)

    1.性能测试的几个指标:       2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...

  3. app性能测试,你需要关注哪些指标?

    app性能测试,你需要关注哪些指标? 一.Android客户端性能测试常见指标: 1.内存 2.CPU 3.流量 4.电量 5.启动速度 6.滑动速度.界面切换速度 7.与服务器交互的网络速度 二.预 ...

  4. Android APP性能测试笔记(一)

    Android APP性能测试笔记(一) (1)工具使用   Android Studio  GT, root的真机 (2)记录apk大小(对比竞品)   使用Android Studio导入需要测试 ...

  5. Emmagee app性能测试工具使用教程

    Emmagee app性能测试工具使用教程 by:授客 QQ:1033553122 简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个Ap ...

  6. [原创]App性能测试指标篇

    [原创]App性能测试指标篇 目前由于苹果,三星等大厂对智能手机的研发及投入,使的智能手机发展非常迅速,每个人手中都有一些离不开生活的App,如:微信,微博,百度或是各游戏App等,但是到底App性能 ...

  7. APP性能测试中的几个重要概念

    转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...

  8. APP性能测试工具GT的使用总结:app内存测试

    APP性能测试工具GT的使用总结:app内存测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment). ...

  9. App性能测试揭秘(Android篇)

    阿里云 云原生应用研发平台EMAS 李嘉华(千瞬) 简介: 性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术 ...

随机推荐

  1. pyqt线程实现

    # coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.QtGui import * from P ...

  2. kafka术语

    kafka 架构Terminology(术语) broker(代理) Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic  每条发布到Kafka集群的消息都有一个类别,这个类 ...

  3. ext2/3/4的inode结构说明

    系统环境:Ubuntu15.10/ext4 今天在复习<鸟哥的私房菜-基础学习篇>,看到inode大小为128bytes,想看下这128字节里面到底是什么样的. 于是我查了下google, ...

  4. 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】

    链接:https://www.nowcoder.com/acm/contest/93/K来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F( ...

  5. 机器学习(4):数据分析的工具-pandas的使用

    前面几节说一些沉闷的概念,你若看了估计已经心生厌倦,我也是.所以,找到了一个理由来说一个有兴趣的话题,就是数据分析.是什么理由呢?就是,机器学习的处理过程中,数据分析是经常出现的操作.就算机器对大量样 ...

  6. 泽熙学到的 z

    叶展,原泽熙投资总经理助理,现任齐鲁证券资产管理公司总裁助理,齐鲁星空.星汉等集合理财投资经理. 导读:三年前,我加入了泽熙投资,正式成为一名职业投资者.做职业投资者一直是我的理想.在股市中用眼光和头 ...

  7. PS中把图片白色背景变成透明的方法

    用魔术橡皮擦擦去白色(调整容差,取消连续,点选白色部分),保存成png格式

  8. mac下安装好sencha cmd后每次都需要输入source ~/.bash_profile

    解决办法: 在终端输入vim ~/.zshrc加一句 source ~/.bash_profile

  9. ubuntu下C/C++编程起步

    1. 安装VMware虚拟机软件 2. 在VMware中安装linux系统,这里安装的是Ubuntu.(用 VMware 安装 Ubuntu 12.04详细过程图解) 3. ubuntu有自带文本编辑 ...

  10. 一入python深似海--range()、list与for

    range使用方法 使用python的人都知道range()函数非常方便,今天再用到他的时候发现了非常多曾经看到过可是忘记的细节. 这里记录一下: range(1,5)#代表从1到5(不包括5) [1 ...