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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。