首页 > 软件测试/ 正文
InstrumentDriver,对iOS自动化软件测试说 Yes!
2012-11-08 21:50:16 ℃InstrumentDriver 是 Mobile自动化小组最近实现的基于 instrument,针对 iOS 的自动化测试框架,目前支持 java 语言编写测试用例。
研究过iOS自动化测试的同学肯定对 instrument UI Automation 有所耳闻,或者已经使用它进行自动化测试实践。iOS 4.0 开始,苹果官方提供了 UI Automation 以支持应用的UI自动化测试。不过4.0版本并不支持录制功能,只能根据提供的API文档编写 javascript 测试脚本,instrument 驱动脚本在应用上模拟用户行为。
让人兴奋的是,5.0开始,UI Automation 支持录制和回放了。用户在应用上的操作过程被记录下来并生成对应的脚本可以进行回放。虽然录制的脚本回放很不稳定,健壮性不强,录制后需要进行一些简单调整然后加入自己的校验逻辑,但已经很大程度上方便了用例的编写。
针对 instrument 录制的脚本回放不稳定,无提供验证框架及异常处理,我们编写了公共 javascript 类库,对 instrument 原型进行了扩展,加入了统一的验证方法,异常处理,这样编写脚本更加方便,用例也更健壮了。
自动化测试不是简单的录制回放,脚本运行通过就可以了,而是一整套的流程。instrument 支持批量运行 trace 文件中导入的 js 脚本,也支持命令行运行单个脚本,但是这并不能建立一个比较完善的回归体系,从数据准备,到用例编写、调试、维护,回归,运行结果的收集,到测试报表的生成,结果的分析等。针对这些缺失,我们只能从中想出办法补充实现这些功能。比如编写shell遍历目录挨个运行用例,开发日志转换的工具用于解析原始测试结果生成所需格式的文件等。由于 instrument 中 js 脚本无法读取外部文件或者进行数据库操作,这也让数据驱动和数据准备无从谈起。
在内部使用 instrument UI Automation 进行自动化测试的过程中有很多反馈。比较强烈的问题是:录制的脚本如同鸡肋,非常冗余,可读性差(脚本自描述性不好),难以维护,需要进行较大改动才能运行起来;无法单步调试脚本,只能通过打日志的方式查看变量的值;js编写脚本也比较费力,经常出现语法错误找不到错误位置的情况。这大大增加了自动化测试的成本,减低了同学们的使用积极性。
自动化测试是好东西,实施好了,能极大减轻测试人员的重复劳动,节省时间用于关注更深层次的问题,提高工作效率与质量,更好的保障产品的质量。
虽然过程是曲折的,但前途是光明的。为了从根本上避免上述使用过程中遇到的问题,我们开始想办法脱离 js 编写脚本的方式,通过编写java测试用例,来避免脚本无法单步调试、查看变量值,无自动语法检查、代码智能感知等极大影响自动化测试体验的弊端。java强大的文件读写,数据库操作也让数据驱动和数据准备的实现成为可能。加上java能与丰富的外部工具进行方便的集成,这更坚定了我们采用java实现的决心。
由于iOS系统本身的封闭性,给自动化测试带来了诸多挑战,要么在应用中注入测试代码进行自动化测试(eg:我们的 AppFramework),要么使用官方的 instrument。两种方式各有利弊,怎样在这之中寻求一种更好的方式呢?通过调研发现 instrument 提供的一个在脚本中能够调用外部shell的“漏洞”,让我们想法的实现成为可能。基于此,有了 InstrumentDriver 的实现。
InstrumentDriver 整体框架图:
图1 InstrumentDriver 整体框架图
Server/Client 示意图:
图2 Server/Client 通信示意图
- 上一篇:我的自动化软件测试小结(2)
- 下一篇:从一个测试实验想到的
更多郑州北大青鸟java培训学费,河南郑州Java培训学校哪家好,郑州软件开发编程学校哪家好,郑州大学生短期Java培训学校哪家好,郑州云培训学校怎么样,郑州Java电脑编程培训学校相关文章
- Java的内部类和匿名类剖析
- Java基础之Java运算符大百科
- Java编程人员应注意的编码准则
- 移动应用自动化测试面临的挑战
- 代码审查最佳实践
- 如何测试一个印有广告的水杯?
- 软件测试管理以及与自动化测试的完美结合(上)
- 成功的自动化测试:敏捷测试员与程序员之间的合作
- 集成测试的几个思考点
- 什么是软件测试架构
- javaScript测试框架jasmine介绍(一)
- 移动应用Beta测试7点诀窍
- 软件测试的前途与职业发展
- 为什么要做探索性测试
- 在软件测试工作中体会成长
- 同行评审那些事儿(九):最佳实践(4)
- 质量管理漫漫谈之也谈QA的考核
- 软件质量的卓越之道——全责驱动
- 配Ivy Bridge 戴尔两款台式机5月上市
- 桌面东西多会影响电脑速度吗?
- 一体机电脑好不好?贵吗?
- 有关分区的那些事儿
- 粉碎文件的基本原理及解析
- Windows XP 传真功能详解
- CD-ROM CD-R CD-RW之间的区分
- 系统U盘挑选技巧
- 最近一直想学计算机编程,怎么学呢
- 为什么软件开发专业这么火爆,软件开发是做什么的?
- 搜索
-
- 热门标签