• ios测试必备技能, Instruments Allocation测试内存


       个人觉得, 对于专项的测试, 万变不离其宗的是策略,或者说是方案的设计.  对于执行步骤-预期结果等等这都是设计的过程中最为重要的, Apple为Ios的开发者提供了Instrument这个强大的工具箱,然而工具的使用不能说是自己已经学会了专项的技术, 策略永远是重点.

    测试开始:

    1 下面执行测试的是我自己写的一款APP,不如所料的是存在问题的(笔者开始学OC不久,而且之前都是脚本语言较多,对于移动端的测试略少,所以才开始学习OC),我们将使用Allocation进行内存测试

    2 了解需求,制定测试方案(自导自演~~):

      1)需求:炫彩动图大师(实际内容并没有这么酷 - -),是一款自我定制(因为我常晚睡,想帮忙催眠下自己)

      

        @1,通过独有的精彩选图,被自己喜欢的音乐催眠,让自己轻松的入睡,(定制的,因为我就这么2 - - 好哄)

        @2,点击上一张,下一张,切换选gif图,音乐也随之切换.

      2)测试方案: <测试步骤>点击下一张,mark一下内存,持续4-5次后, 观察内存. <预期结果>不存在内存增长

    3 执行测试:

      1)打开allocation

        ->                                  <Allocation>

      2)选择app-并且观察策略改为Generations,然后点击左上角红点 -> 开车

        

      3)执行:

      

        @1 启动app,待稳定后-点击一下mark

        @2 点击<下一张>,稳定后mark(这里的稳定后,可以通过上方的观察界面图形,看到稳定值)

        @3 重复第二步4-5次

        @4 点击左上角关闭,进入分析

        

      4) 分析:

        

        @1 如上图看出,每次执行后这里都存在的增量约为1M左右, 中间的我们参考从第二开始.

        @2 一般来说,第一次mark是启动之后,这里存在的值可能存在部分常驻单例, 所以不应该设计考虑,所以我们都是第二个mark开始

        @3  点开2-3-4-5的mark.(最底下选择All VM Regions)

          

        @4 如图可以看到,每一个mark都有个存在一个VM:MALLOC_LARGE就是我们每次增量的大头,而他也就是我们内存增长的原因

          

        @5 现在,将他点开,可以看到,本次需求的内存大头是它

          

    (大家别注重我的初学者app代码,写个示例真的还是勉强, 我也会加强我的OC能力的,共勉哈)

    这就是Allocation在我平时工作中的使用,但,测试, 永远重在沟通.

      

        

  • 相关阅读:
    SQL: 从一个表随机读取一行或几行记录的问题
    Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭
    Asp: 解决脚本输出网页出现乱码情况
    Java: |(或运算) 与 多选判断
    ASP: Response 对象 错误 'ASP 0251 : 80004005' 解决办法
    Java: 在dos窗口输入密码,不要把密码直接显示出来,原来可以这么简单
    Android: 网络随时需要在3G和Wifi切换,网络程序需要注意
    Android: 待机时如何让程序继续运行 extends Service
    Android: View换切后,无法正常设置焦点或切换后TextView的虚拟键盘不弹出
    MySQL存储过程学习笔记
  • 原文地址:https://www.cnblogs.com/Dobby/p/6917988.html
Copyright © 2020-2023  润新知