InstrumentDriver,对iOS自动化测试说 Yes!(2)

发表于:2012-06-05来源:Taobao QA Team作者:ziyu点击数: 标签:自动化测试
图3 UI Automation录制的脚本截图 对比 InstrumentDriver 的 java用例,同样功能的用例实现截图如下: 图4 InstrumentDriver java 用例 可以看出 InstrumentDriver 提供的 pr

图3 UI Automation录制的脚本截图

  图3 UI Automation录制的脚本截图

  对比 InstrumentDriver 的 java用例,同样功能的用例实现截图如下:

InstrumentDriver java 用例

  图4 InstrumentDriver java 用例

  可以看出 InstrumentDriver 提供的 printElementTree 方法可以打印出当前window所有元素, findElementByText 方法能很精确的查找到相应元素。这样根据脚本就知道这一步骤的具体行为,自描述性大大提升,可维护性更好。

  下图是 printElementTree() 方法 的具体输出,树形打印出win下的所有元素:

PrintElementTree 输出示例

  图5 PrintElementTree 输出示例

  这里我们可以根据输出方便的找到需要操作的元素,并且可以直接使用该元素的 guid 属性代表该元素,插入用例进行相应的操作。更推荐的做法是使用findElementByText进行定位,假如text(name,value ,label属性)都为空,可以查看父级元素或者更上级元素是否有text属性,然后使用elements() 索引定位,可以最大化缩小范围,使脚本更健壮,可读性更高。

  下图是用例调试过程中,变量值的查看示例:

图6 debug 模式调试用例,查看变量值

  图6 debug 模式调试用例,查看变量值

  Debug模式运行,Client 会详细返回对应操作的信息,Server 端接收后实例化为具体对象,调试中可以查看具体对象的属性值(name ,value,label,rect,guid),方便调试用例,更快的找到问题所在。

  InstrumentDriver 刚刚诞生,正逐渐用于iOS自动化测试中,肯定还有很多改进的地方。希望在使用过程中得到更多的反馈,通过不断改进,进一步让它完善起来,更好的服务于大家。

原文转自:http://www.ltesting.net