酷勤网 – 程序员的那点事!

当前位置:首页 > 编程 > 移动开发 > 正文

TMTS-iOS框架简介

浏览次数: 2011年12月29日 Taobao QA Team 字号:

前面的章节中,对iOS的应用特性,以及现有的一些自动化测试框架做了相关的介绍,针对这些特性,我们结合淘宝应用自身的需求,提供了一套支撑iOS应用的功能自动化测试框架。

框架采用的是嵌入式测试思路,在应用的源码中嵌入测试代码,应用初始完成后生成测试对象,由测试对象完成自动化测试。

统一的控件管理、灵活的控件定位、简单的脚本编写是本框架特点。

框架原理:

由于在iOS中当前激活的应用程序只能有一个,所以我们的框架选择的是注入式框架,我们需要将一个测试对象放入到应用程序中,由测试对象来处理测试相关的事件。

在iOS应用生命周期里,应用在完成初始启动后,会进入运行循环中,等待处理系统接收到的外部触摸事件,因此最好的嵌入时机是在应用完成初始过程中。在应用初始化过程中,我们加入测试对象创建,并在测试对象初始过程中读取测试脚本,在完成初始后运行测试脚本。

测试对象根据测试脚本的描述,搜索需要操作的UI元素,然后对该元素构造指定的操作事件,发送给应用的该元素进行处理,模拟用户的操作行为,从而校验应用的业务功能。

框架在应用的初始过程中(applicationDidFinishlaunching)插入了负责执行测试的测试对象,在应用等待事件触发时,模拟了操作事件发送给应用进行处理。

框架的组成:

框架由5个模块组成:TBTestRunner、TBElement、TBOperator、TBTestLog、TouchSynthesis。

TBTestRunner:该模块是测试对象,负责初始化设置,以及测试指令的解析

TBElement:该模块主要负责对操作控件的搜索,返回控件对象进行操作

TBOperator:该模块主要负责对操作指令的执行,通过TouchSynthesis模块的配合

TBTestLog:该模块主要负责框架运行日志输出,以及运行截图

TouchSynthesis:该模块主要负责对touch事件的模拟

框架运行机制:

.在应用初始化时,生成测试对象

.测试对象在初始化时,读取测试脚本信息

.测试对象对测试脚本进行解析,执行里面的command

.执行command时,搜索该command对应的控件

.搜索完成后,在该控件上执行相应的操作

.一条command执行完成后,执行下一条command

.整个脚本执行完成后,释放测试对象

TMTS框架iOS系统应用的解决方案,吸收了现有的iOS应用自动化测试框架的思想,加入淘宝自己的方案思路,更好的支撑淘宝自身应用的特点,其中不乏一些创新的亮点,比如:控件树、运行截屏等。

后续框架的发展,我们会考虑远程控制、数据处理、应用稳定验证、外部事件模拟等方向进行完善,让框架使用不仅更加方便、简单,而且能更好的保证产品的质量,以及提高测试效率。

本文来源:原文链接

无觅相关文章插件,快速提升流量