• 移动app性能测试(待完善)


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

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

    1.  时延篇

    A.Android

    工具:ffmpeg

    测试方法:

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

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

    3)录制好的视频保存到电脑上,用ffmpeg工具执行脚本(ffmpeg.exe -i D:abIMG_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

    工具:

    测试方法:

  • 相关阅读:
    Django REST framework的解析器与渲染器
    python基础之 数据格式化
    REST framework 之 分页
    Django REST framework 之 认证 权限 限制
    DjangoRestFrameWork 版本控制
    DjangoRESTFrameWork中的视图
    浏览器跨域问题
    初识REST
    vue之生命周期
    vue组件
  • 原文地址:https://www.cnblogs.com/daxiong2014/p/4399251.html
Copyright © 2020-2023  润新知