软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用)

iOS性能测试

性能测试的目的:

性能测试,就是为了能在软件发布之前尽可能地发现性能问题,保证它在各种复杂的条件下都能够正常运行;

通常我们选择性能测试都会遵循“核心”和“常用”两条原则,对于其他功能可以不做性能测试,或者优先级较低

性能测试介入时间

性能测试放在整个软件开发流程的最后一环;因为执行性能测试的一个必要条件是软件已经处于相对稳定的状态,任何一个细微的变化都可能对性能产生巨大的影响,放在软件开发的初期,会导致性能测试不断返工重测,浪费不必要的人力和时间;

为了避免开发后期出现问题时难以定位原因的尴尬,很多成熟的团队经常把性能测试提前到产品研发的初期

开始》需求分析》产品设计》编码实现》迭代测试和性能测试》集成测试和性能测试》性能测试和回归测试》产品上线》结束

关注的性能指标

软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用)_第1张图片
及时性:是指软件对用户操作指令做出相应的速度,简单说就是运行快不快;

启动耗时:是软件性能中很重要的一个指标,对于用户而言,时间越短越好

流畅度:运行中是否出现卡顿现象

内存/CPU:占用大小,影响应用运行的流畅度,甚至直接闪退;手机发烫

流量:应用发起网络请求时所产生的数据量大小

电量

2. instruments

Instruments是一个强大而灵活的性能分析和测试工具,它是Xcode开发工具集的一部分,它被设计用于帮助分析OS X和iOS的应用、进程与设备,以便更好的理解和优化它们的行为和表现。
在Instruments中,可以使用指定的工具,跟踪应用app、进程、设备不同方面的行为,Instruments将数据收集在配置文件中,并将详细分析的结果显示出来。

启动方式:
一、方法一
1、在xcode打开项目
2、product-profile;xcode会build你的项目,启动instruments
3、显示分析模板列表

二、方法二
1、Xcode》Open Developer Tool》Instruments

三、
虽然 Instruments 是 Xcode 的一个工具集,但是它是以一个独立的 App 的形式存在的,你可以在 Xcode -> Open Developer Tool -> Instruments 中打开它。

3. 测试方法

1.启动耗时

  • 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。
  • 热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。
    APP 启动分为冷启动(Cold Launches),当 APP 长时间没有被启动的时候,用户再次启动 APP 的时候就是冷启动,若是手机重启之后,APP 的第一次启动也是冷启动;冷启动对应的是热启动(Warm Launches),当 APP 启动时需要的 dylibs 仍然停留在设备的磁盘缓存的时候,这个时候就是热启动,热启动的速度会更快。

另一种解释:
冷启动
应用首次启动。即后台线程中未有当前打开的应用,所有的资源都需要加载并初始化。
热启动
应用非首次启动。即后台线程中保留有当前应用,应用的资源在内存中有保存。

双击Home键显示最近使用过的程序,压后台一段时间后(千帆App大概未5min),应用已被系统kill,但记录仍然存在,从此打开也是冷启动;

启动时间计算的是从程序响应到绘取第一帧的时间
在这里插入图片描述
Main函数之前,进行的是iOS系统的工作,主要是加载系统动态库、初始化,时间是2.1s;系统动态库有缓存加载很快,可通过减少内嵌动态库进行时间优化;
Main函数之后,设定内存管理环境+调用UIApplication函数,时间是206.52ms
所以App的启动时间是:2.10s+206.52ms。

App启动过程:
1、

  • before main()
  • Dylib Loading
  • Rebase/Binding
  • Obj-C Setup
  • Initializers

2、

  • after main()

  • UIApplicationMain()

  • willFinishLaunchingWithOptions()
    didFinishLaunchingWithOptions()

  • loadView()

  • viewDidLoad()

  • applicationDidBecomeActive()

查看before-main具体时间:
product》scheme》Edit Scheme》Run;添加 Scheme 的 DYLD_PRINT_STATISTICS 参数,并设置值为 YES;设置好了之后,Command + R 在冷启动情况下启动 APP ,可以看到控制台的输出;文档参考:==https://www.jianshu.com/p/ee2f1c5cdb4f

dyld 提供了内建的测量main()之前时间的方法

流畅度

内存CPU

软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用)_第2张图片
Detail pane各项含义如下表
软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用)_第3张图片

流量

耗电量

  • instruments-energy 0-20

  • 直接看设备右上角耗电量

  • 设备》设置》电池,查看过去24小时耗电占用百分比

  • Sysdiagnose—苹果官方提供的工具,日志的统称;通过对表进行分享

    耗电量是一个比较综合的指标,影响因素很多;比如用户在不同光线下使用,iPhone会自动调整屏幕亮度,就会导致耗电量不同;网络状况(流畅的Wi-Fi还是信号不好的3G)、设备已使用时长电池的储电和放电能力。

如果采用直接观看的方式,要注意以下几点:

  1. 保证测试前电量一致,最好是充电100%后再充10分钟以上
  2. 保证手机运行应用一致,最好只运行当前测试app
  3. 保持手机亮度、音量前后一致
  4. 关闭测试时所有不必要的功能,比如:蓝牙、定位、热点
  5. 以固定的操作执行App一段时间,最好在2个小时以上

稳定性测试

4. 其他总结

遇到的问题

1. iOS版本,与xcode对应版本,如果跨版本使用,会导致数据显示不全

软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用)_第4张图片
版本查看方式:Finder》应用程序》Xcode》查看包内容》路径/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
例如使用Xcode8.2.1连接iOS11.2.2,测试CPU,结果如下图1

2. 保留本次测试数据,方便下次对比
本次测试记录》save as

3. 一个Mac电脑安装多版本Xcode
Mac上安装多个xcode版本(Xcode命名尽量用英文数字),想升级其中一个需要先把该xcode设置为默认版本,然后在App Store输入当初下载应用时使用的Apple ID进行更新
命令:
切换为Xcode3版本为默认版本: sudo xcode-select-switch "/Applications/Xcode

4.app/Contents/Developer"
查看Xcode版本:sudo xcode-select -p
操作步骤:
Launchpad》终端(相当于Windows系统的命令行程序》输入命令》输入电脑密码即可

5. 不升级Xcode版本的情况下,兼容高版本系统设备方法
下载对应版本的配置文件,修改文件SDKSettings.plist(路径:/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk)
之后重启Xcode,如果不行,重启电脑
教程地址:https://www.jianshu.com/p/1a33e36c4b67(配置文件需要加上11.2)

6. instruments》选择设备时,一直处于offline置灰的状态,可能是数据线的问题,换根原装的线

Mac操作快捷键

1. 快速回到桌面
使用快捷键Command + F3 快速显示桌面,再按一次回到应用程序
使用快捷键 Fn+F11 快速显示桌面,再按一次回到应用程序3

2.复制文件路径方法
文件右击》显示简介》位置》手动复制粘贴

3.进入某个文件下
shift+Command+G
Finder》前往》前往文件夹

4.重命名
选中文件,回车键

5.XCode调试控制台显示隐藏快捷键
Command + Shift + Y

6.返回上一层目录
cd …/

7.Mac强制关闭应用程序(右击退出无反应时)
快捷键 option+command+esc

8.快速切换中英文输入法
control+space空格

9.快速删除文件
command+delete

10刷新网页
commadnd+r

你可能感兴趣的:(软件测试-iOS 性能测试(Mac使用从0开始,包含快捷键使用))