首页 > 代码库 > iOS开发中使用Instrument(一) Automation
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使用
- 导入测试脚本:
- 打开被测试app工程
- ?+I 打开Instrument
- 选择Automation template ->profile
- ?+R 停止profile
- 在左边Scripts 选择add->import…,
- 选择写好的测试脚本(自己写了一个脚本showUIAElenmentTree.js)后scripts 会有脚本list
- 在脚本list 右边 script 可以看到脚本内容
- ?+R 执行脚本测试
- 可以看到脚本测试log
- 录制测试脚本:
提供对界面操作时,录制用户操作生成测试脚本,不过自动生成测试脚本没有断言操作
1:打开被测试app工程
2:?+I 打开Instrument
3:选择Automation template ->profile
4:?+R 停止profile
5:在左边Scripts 选择add->create… 如下图会看到一个新脚本文件 看到脚本代码的下方有3个操作按钮
6:点击红色录制按钮,会启动APP,你在设备或是模拟器上进行操作都会生成操作代码 点击方形停止录制按钮录制完成,后?+R停止
7:需要重新对录制脚本进行回放 可以点击三角按钮,或者直接?+R执行测试回放
- 编写测试脚本:
通过导入测试脚本和录制脚本,可以熟悉一些基本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
iOS开发中使用Instrument(一) Automation