iOS开发中使用Instrument(一) Automation

开篇

  打开cnblog 发现自己好几年,未在上面更新blog,这几天在整理些资料的时候,发现自己使用instrument过程中整理的一些文档及资料,资料的整理具体时间应该是去年,不过对于使用instrument中的功能进行iOS开发还是很有帮助的,本人在使用过程中一直使用收多内存的管理,instrument 对我而言在app的问题解决上帮助很大,写成blog以作记录。

==============================================================

Automation

自动化测试相关知识

  • 自动化测试:

  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念(摘自百度百科)。

  • Automation:

  Automation是随iOS 4.0 系统一起发布的一款旨在iPhone Device和iPhone 模拟器上执行自动化测试的框架

  • UIAutomation 测试需求:

  被测试app源代码,导入需要的脚本文件,了解JavaScript

  • Instrument Automation使用
  • 导入测试脚本:
  1. 打开被测试app工程
  2. ?+I 打开Instrument
  3. 选择Automation template ->profile
  4. ?+R 停止profile
  5. 在左边Scripts 选择add->import…,
  6. 选择写好的测试脚本(自己写了一个脚本showUIAElenmentTree.js)后scripts 会有脚本list
  7. 在脚本list 右边 script 可以看到脚本内容
  8. ?+R 执行脚本测试
  9. 可以看到脚本测试log
  • 录制测试脚本:

提供对界面操作时,录制用户操作生成测试脚本,不过自动生成测试脚本没有断言操作

1:打开被测试app工程

2:?+I 打开Instrument

3:选择Automation template ->profile

4:?+R 停止profile

5:在左边Scripts 选择add->create… 如下图会看到一个新脚本文件 看到脚本代码的下方有3个操作按钮

6:点击红色录制按钮,会启动APP,你在设备或是模拟器上进行操作都会生成操作代码 点击方形停止录制按钮录制完成,后?+R停止

7:需要重新对录制脚本进行回放 可以点击三角按钮,或者直接?+R执行测试回放

    1. 编写测试脚本:

通过导入测试脚本和录制脚本,可以熟悉一些基本API

接下来写一个测试脚本

1:打开被测试app工程

2:?+I 打开Instrument

3:选择Automation template ->profile

4:?+R 停止profile

5:在左边Scripts 选择add->create… 会看到一个新脚本文件生成 脚本可编辑区中进行脚本编辑如下图 4区域,在此区域进行测试用例的编写

6:测试用例编写

code demo:界面输入textfield输入长

var target = UIATarget.localTarget();

var app = target.frontMostApp();

var window = app.mainWindow();

var textFields = window.textFields();

// Check number of Text field(s)

if(textfields.length!=1)

{

UIALogger.logFail("FAIL: Inavlid number of Text field(s)");

}

else

{

UIALogger.logPass("PASS: Correct number of Text field(s)");

}

note:

1: 在使用设备进行自动化测试有一点需要注意,在Release configuration 中选择使用Developer profile(不是Ad-Hoc Distrubution profile)。默认release 下profiling都已经完成。

2:文档

UIAutomation JavaScript API 参考文档:

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

时间: 2024-08-11 05:36:00

iOS开发中使用Instrument(一) Automation的相关文章

iOS开发中UIPopoverController的使用详解

这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

IOS开发中使用CNContact对通讯录增删改查

IOS开发中使用CNContact对通讯录增删改查 首先当然是把CNcontact包含在工程中: 1 @import Contacts; 1.下面是增加联系人的程序段: 1 CNMutableContact * contact = [[CNMutableContact alloc]init]; 2 contact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"22"]); 3 //设置名字 4 contact.gi

ios开发中-AFNetworking 的简单介绍

Blog: Draveness 关注仓库,及时获得更新: iOS-Source-Code-Analyze 在这一系列的文章中,我会对 AFNetworking 的源代码进行分析,深入了解一下它是如何构建的,如何在日常中完成发送 HTTP 请求.构建网络层这一任务. AFNetworking 是如今 iOS 开发中不可缺少的组件之一.它的 github 配置上是如下介绍的: Perhaps the most important feature of all, however, is the ama

iOS 开发中用户记住账户,密码

在iOS开发中经常会用到记住账户.密码,以此来提高用户的体验.下面就浅谈一下账户.密码的存储. 一.登录 记录已登录用户步骤,存入偏好设置中存储放入一个数组. 具体存储 1:存储用户到偏好设置中,其中用户是一个数组向服务器响应客户端后的一些操作(如果响应数据成功)其中用户和密码是一一对应的 1.1先从沙盒中偏好设置中读取对应的用户集合 读取用户名: NSMutableArray *AccArys = [NSMutableArray arrayWithArray:[[NSUserDefaults

iOS开发中KVC、KVO简介

在iOS开发中,KVC和KVO是经常被用到的.可以使用KVC对对象的属性赋值和取得对象的属性值,可以使用KVO监听对象属性值的变化.简单介绍一下KVC和KVO. 一:键值编码(KVC) KVC,全称 Key Value Coding(键值编码),是OC 语言的一个特性,使用KVC,可以对对象的属性进行动态读写. KVC的操作方法由 NSKeyValueCoding协议提供,而NSObject已经实现了这个协议,因此OC中的几乎所有对象都可以使用KVC操作.常用的KVC操作方法有: (1)设置属性

iOS开发中打电话发短信等功能的实现

在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的“关于”页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉及到了打电话的功能. iOS开发中,有三种方式可以打电话: (1)直接跳到拨号界面,代码如下 1 2 NSURL *url = [NSURL URLWithString:@"tel://10010"];  [[UIApplication sharedApplication] openURL:url]; 缺点:

iOS开发——淫技篇&iOS开发中各种淫技总结(六)

iOS开发中各种淫技总结(六) swift中指针的使用 在 Swift 中,指针都使用一个特殊的类型来表示,那就是 UnsafePointer<T>.遵循了 Cocoa 的一贯不可变原则,UnsafePointer<T> 也是不可变的.当然对应地,它还有一个可变变体,UnsafeMutablePointer<T>.绝大部分时间里,C 中的指针都会被以这两种类型引入到 Swift 中:C 中 const 修饰的指针对应 UnsafePointer (最常见的应该就是 C

iOS开发中的压缩以及解压

事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址:   https://github.com/ZipArchive/ZipArchive 上面有详细的使用方法 因为ZipArchive不支持ARC,所以如果你的工程开启了ARC,那么就需要对ZipArchive设置一下.在ZipArchive.mm编译选项中,增加-fno-objc-arc即可. 最后,需要为工程链接libz.dylib动态链接库. 使用示范(压缩): // 获得mainBu