专栏首页APP自动化测试Xcode自带iOS测试方法

Xcode自带iOS测试方法

在说Xcode自带测试方法前先讲下程序在内存中的空间划分, 一般可分为5个部分:

#1. BSS段, 存放未初始化的全局变量. BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

#2. 数据段, 存放已初始化的全局变量和全局静态变量. 数据段属于静态内存分配

#3. 代码段, 存放程序执行代码

#4. 堆 , 存放进程中被动态分配的内存段.

#5. 栈 , 存放函数的参数值和局部变量, 由编译器自动分配和释放.

常说的内存管理是对堆内存的管理.

内存泄露指动态分配开辟出来的空间, 在使用完毕后未释放, 或者未被回收直至程序结束.

Xcode自带有一套测试工具

Analyze - 静态分析

如下图位置:

会自动检查代码中是否有以下错误:

#1. 是否创建了一个对象, 但并没有使用它

#2. 是否创建了一个对象或者指针, 对其初始化后却一直没有读取过

#3. 是否调用的让某个对象引用计数加1的方法, 却没有调用引用计数减1的方法

#4. 是否有错误返回类型.

运行后如果检查到有上述错误, 会有蓝色的提示, 如图

下面再就是常用的Instruments, 使用前注意要把xocde运行模式改为release

打开Instruments是选择上面第一张图中的Profile, 包含以下测试功能:

我们介绍下常用的Instruments三杰:

Leaks - 内存泄露检查

这样一般如果有做过静态检查Analyze就比较少会出问题, 运行的截图:

打开后手机运行可能会慢一些, 要尽量打开程序中的所有界面检查下. 如果有内存泄露的话会在Leak check那一行出现x的符号

点击x符号能看到详细错误信息

Allocations - 内存分配检查

界面如下图

Time Profile - 运行耗时检查

能查看各个耗时的项目, 对于耗时较多的项目可以双击耗时项目直接定位到代码

点开可能定位到代码, 下图中显示的301x标识这段代码运行耗时301ms, 如果有较耗时的代码就需要进行优化

上面是Xcode自带的一些检查工具, 但最重要的还是要自己多注意代码规范

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 人工智能IDE编程插件,提升编程效率的好帮手

    平时写代码的时候多少会依赖编辑器里面的代码补全,敲几个字母就能补全一整个词。可是这么多年过去了,为什么代码补全还是像最开始那样,只能限定于一个词,而且毫无意义地...

    JAVA葵花宝典
  • 初识LLVM&Clang-开发Xcode插件

    Xcode现在使用的编译器就是LLVM。LLVM比以前使用的GCC编译器速度快好几倍。并且LLVM可以编译 Kotlin,Ruby,Python,Haskell...

    用户6094182
  • iOS13 即将到来,iOS 推送 DeviceToken 适配方案详解

    随着苹果iOS13系统即将发布,个推提前推出DeviceToken适配方案,以确保新版本的兼容与APP推送服务的正常使用。iOS13的一个重要变化是"[devi...

    个推君
  • 史上最强大IDEA编程插件:编程效率提升N倍

    平时写代码的时候多少会依赖编辑器里面的代码补全,敲几个字母就能补全一整个词。可是这么多年过去了,为什么代码补全还是像最开始那样,只能限定于一个词,而且毫无意义地...

    搜云库技术团队
  • XCode升级到版本11终端出现的魔性问题修正

    基本能搜索到的方案都是把那个脚本的换行符,用 vim 调整下 我一脸懵逼,我要去改哪个脚本???

    CRPER
  • 【Rust日报】2019-09-18 async-std v0.99.6 版本更新

    这个版本增加了几个新的组合器、work-stealing 算法执行器,以及使用 IntoStream 和 FromStream 的 collect 流的能力。

    MikeLoveRust
  • iPadOS上启动黑屏翻车问题分析(一)

    iOS的每次大版本更新都会是iOSer的苦难之旅,这次的iPadOS估计肯定也不例外当然了这次估计是针对iPadOS的苦难而已吧。在iOS13以下的iOS中iP...

    大话swift
  • MAC:Xcode loading 未响应

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    菜菜不吃蔡
  • 史上最强大IDEA编程插件:编程效率提升N倍

    平时写代码的时候多少会依赖编辑器里面的代码补全,敲几个字母就能补全一整个词。可是这么多年过去了,为什么代码补全还是像最开始那样,只能限定于一个词,而且毫无意义地...

    物流IT圈
  • 人工智能IDE编程插件,提升编程效率的好帮手

    平时写代码的时候多少会依赖编辑器里面的代码补全,敲几个字母就能补全一整个词。可是这么多年过去了,为什么代码补全还是像最开始那样,只能限定于一个词,而且毫无意义地...

    用户5224393

扫码关注云+社区

领取腾讯云代金券