vlambda博客
学习文章列表

性能测试之APP启动时间计算

01

明确任务目标

首先确定任务目标——对iPhone上的指定app进行启动时间的数据统计,通过查阅相关资料发现Xcode中自带的instruments工具,在Xcode11中该工具中添加了app Lunch模板;通过使用app Lunch模板我们可以观察到APP在启动时的具体数值(进程创建、系统初始化、运行时的初始化、UIKit初始化、启动、第一帧渲染 )。

前提条件:instruments工具只能对含有developer证书签名的APP进行检测,否则会存在报错提示。


02

实现图形化界面的操作

性能测试之APP启动时间计算

第一步:安装测试的APP,首先将ipa文

件放入指定路径中,通过命令

ideviceinstaller来实现安装ipa文件:

ideviceinstaller -i ipa文件


第二步:调用instruments工具中的

app Lunch模板来对客户端进行启动时间

的数据获取:

instruments -t ${路径1}/App\

Launch.tracetemplate -D ${路径2}

/test.trace -w ${idevice_id} 

cn.com.10jqka.IHexin

其中:

路径1是采用的模板存放路径;

路径2是获取到的数据存放路径;


第三步:对获取到的数据进行解析,在

MAC中直接vim打开.trace文件会发现

全是乱码,找资料时发现了一篇文章

(文章链接:https://

www.cnblogs.com/hyddd/p/5329608.html)

该文章中提到了可以使用TraceUtility来

解析据,于是使用该工具完成了对

.trace文件的解析:

${路径3}/TraceUtility /

${路径2}/test.trace>test.log


第四步:通过MAC自带相关命令取出

test.log内数据并进行求和取平均值。

脚本如下:

#!/bin/bash/

  set+o posix

  set-v

  path1=/Applications/Xcode11.app/Contents/

Applications/Instruments.app/Contents/

  path2=/Users/admin/Desktop/guojl/

performance

  path3=/Users/admin/Desktop/guojl/testbuild

  ipaname=`ls${path3} | grep -ni "*.ipa"`

  ideviceinstaller-i ${path3}/${ipaname}

  num1=0

  mac=`idevice_id-l`

        for i in {1..10}

        do

          instruments -t/${path1}/Packages/

Apps.instrdst/Contents/Templates/App\

Launch.tracetemplate-D/${path2}/result/

test.trace -w ${mac} cn.com.10jqka.IHexin

         /${path2}/tools/TraceUtility/${path2}

/result/test.trace >&/${path2}/log/test.log

         cat /${path2}/log/test.log |awk -F

' ' 'NF>1{print $(NF-1)}' >/${path2}/log/

time.log

         cat /${path2}/log/time.log |awk '{

print $1}'| awk '{sum+=$1}END{print sum}'>>/

${path2}/log/result.log

             rm -f/${path2}/result/test.trace

             rm -f /${path2}/log/test.log

             rm -f /${path2}/log/time.log

        done

  num1=`cat /${path2}/log/result.log | 

awk'{print $1}' | awk '{sum+=$1}END

{print sum}'`

  echo "${num1} / 1" | bc>/${path2}/log/

zhixingjieguo.log

  echo "">/${path2}/log/result.log

  cat /${path2}/log/zhixingjieguo.log


03

最后再简要概述一下使用说明

脚本存放路径:

/Users/dabao/guojl/performence/

执行结果文件存放路径:      /Users/dabao/guojl/performence/log/     /Users/dabao/guojl/performence/

result/

包括:

time.log test.log         

zhixingjieguo.log 

result.log      

test.trace


脚本执行命令:

在performence文件夹下:

sh test_applunch.sh

./test_applunch.sh

获取结果:10次启动时间的平均值。