当前位置: 代码迷 >> Iphone >> 关于iPhone平台的UI Automation一些怨言
  详细解决方案

关于iPhone平台的UI Automation一些怨言

热度:79   发布时间:2016-04-25 06:27:28.0
关于iPhone平台的UI Automation一些牢骚

必须要说这玩意还是挺强的,直接实现了iPhone平台上的自动化测试,而且是模拟器真机通吃,调起来也不算多难,iOS 4之后原生支持。


下面是牢骚:首先这自动化测试的脚本还得用js编写,这需要测试人员掌握一定的编码能力,幸好js是个易学难精的语言,光是为了应付自动化测试大概半天也可以搞定语法问题,不过万一遇到js的某些艰深问题就必然卡住。


其次这东西很不稳定,同样的测试脚本,可能一会儿获得到主窗口,一会儿又获得不到主窗口,这种问题实在让人很头痛。而且如果当前窗口变化了,如果用之前获得的主窗口竟然自动更新了。

?

?

还有就是提供的测试接口很原始,和iPhone开发提供的优雅又强大的接口简直没法比,比如界面上的控件层次光看是看不出来的,一个在最上层的按钮完全可能是在主窗口里先添加了一个view,view上加了个tableview,tableview的一个cell里再添加出来的,而测试接口直接提供的方法必须一层一层的进行查找。可笑的是它明明提供了按照Label查找的功能,可是仅局限与控件的直接子控件,而且控件的Label必须要用代码或IB修改,不然就只能以控件的title名来找,那么对于没有title,或者贴图上去的控件,就必须用层次的获取控件类型的数组的方式了,就像这样main.tableViews()[0].cells()[1].secureTextFields()[2] 又麻烦又丑陋。很奇怪的还不提供获取view的方法,这设计逻辑未免太诡异。

?


最后就是它的一些莫名奇妙的bug,touchWithOptions看上来好像是个不错的模拟触摸的函数,但实际上它永远只能点击屏幕中间而不管具体参数是多少,文档上还有前后矛盾的地方,为了模拟点击屏幕我们不得不用dragInsideWithOptions来凑合。控件如果使用IB生成的,那么一般来说不用直接设置它的Accessibility(IB里面拼错成了Accessiblity)就可以访问到,不过你特地选中也不会怎样,但如果你把一个view选中了Accessibility,又将其用addSubview的方式添加到父视图里的时候,就莫名其妙的获取不到了。此外还有Info类型的按钮,如果不选中Accessibility,那么你可以获取到这个按钮,但是却无法对按钮进行tap操作等等等等


可看标题也知道,这毕竟只是一些抱怨,现在没有比它更好的界面自动化测试工具,那也只能先忍着用了。

?

1 楼 wangzi6hao 2011-12-13  
你好,请问你是否有更详细一些的内容啊?或者我们私信聊一下吗?
  相关解决方案