如何使用UIAutomation进行iOS自动化测试(Part I)

发表于:2013-4-02 11:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:知平软件    来源:51Testing软件测试网采编

  使用iOS设备

  你除了将你的测试用例运行模拟器上,也可以将它运行在一个真实的设备上。不过,自动化测试用例只能运行在支持多任务的:iPhone 3GS,iPad,iOS > 4.0等设备上。遗憾的是不管iPhone 3G的系统版本是什么,都不支持。

  下面是如何操作:

  1)通过USB接口连接上你的iPhone。

  2)选择 “TestAutomation > iOS Device”模式。

  3)确保Developper profile设置成Release模式(而不是Ad-Hoc Distribution profile)。默认情况下,profiling是设置成Release模式的(因为没有必要将profile设置成Debug模式)。

  4)启动测试 (?I)

  5)后面的步骤请参考前面模拟器部分。

  2、处理UIAElement和元素可访问性(Accessibility)

  UIAElement层次结构

  Accessibility和UIAutomation有密切的联系:如果一个控件的Accessibility是可以被访问的,你就可以设置和读取它的值,作相关的操作,而当一个控件的Accessibility不可见时,你就没有办法通过automation访问它。

  你可以通过Interface Builder,或者通过在程序里设置isAccessibilityElement属性的方式来设置一个控件的Accessibility或者可被自动化。当你设置container view(即:一个视图包含其它的UIKit元素)的accessibility时,你必须注意。你设置了整个View的accessibility将会“隐藏”它的子视图的accessibility,例如:在示例项目中,你不能将outlet视图设置成可访问的,否则它所有的子控件将都不可以访问了。在任何时候,logElementTree都是你忠实的朋友:它将当前界面的所有可被访问的元素都打印在日志里。

  每一个可以被访问的UIKit控件都可以用一个Javascript对象来描述,它就是一个UIAElement。UIAElement有几个属性:name, value, elements, parent。你的主窗口包含很多的控件,它们是以UIKit层次的方式定义的,这些UIKit层次结构对应的是UIAElement的层次树。例如:前面的测试代码中,通过调用logElementTree,我们可以得到如下面所示的树结构:

  +- UIATarget: name:iPhone Simulator rect:{{0,0},{320,480}}
  | +- UIAApplication: name:TestAutomation rect:{{0,20},{320,460}}
  | | +- UIAWindow: rect:{{0,0},{320,480}}
  | | | +- UIAStaticText: name:First View value:First View rect:{{54,52},{212,43}}
  | | | +- UIATextField: name:User Text value:Tap Some Text Here ! rect:{{20,179},{280,31}}
  | | | +- UIAStaticText: name:The text is: value:The text is: rect:{{20,231},{112,21}}
  | | | +- UIAStaticText: value: rect:{{145,231},{155,21}}
  | | | +- UIATabBar: rect:{{0,431},{320,49}}
  | | | | +- UIAImage: rect:{{0,431},{320,49}}
  | | | | +- UIAButton: name:First value:1 rect:{{2,432},{156,48}}
  | | | | +- UIAButton: name:Second rect:{{162,432},{156,48}}

53/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号