自己主动化測试的优点:
1、自己主动化能够自己主动測试,不须要人的干预。同一时候还能够不断地反复某一个动作。
2、自己主动化測试在添加了新的功能之后。还能够回归到原理的功能,使其原来的功能不会受到影响。
缺点:会受到測试系统和project师的制约。
自己主动化測试脚本的执行有可能受到不同层次的限制与制约。
大概就是主要两个方面:
1、系统级别的执行机制,并非全部的程序(中的)代码能够自己主动执行,由于ios中的程序的之间总是存在着一些权限。这个就是要考虑到安全级别的问题。签名
2、应用程序级别的限制主要来自于对控件的识别。
hereBy
1、被測试的应用程序必须是在苹果官方的developer中签名,或者仅仅是在模拟器上測试。
(下载别人的应用是不能够用来測试UIAutomation的。由于签名的不匹配。所以要获取源码才干够在自己的真机上面測试)
2、測试的过程中要处理UI控件的可訪问性:
eg:代码写的时候要设置对应的可訪问属性:mytextfieldl.accessbilityEnabled = YES;
假设是xib的时候:例如以下图
二、对脚本的编辑:
查看測试结果他们之间的控件关系:图:能够看到输出控件树的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" height="296" width="644">
它们的关系:UIAtarget ——> UIAplication ——>UIAWindow ——> UINavigationBar——>UIButton(add)。这个是add这个button的控件树,其它的控件也是能够的。
然后既能够通过这个结构来获取这“add”名字的button的控件,进行“日志输出”等等操作。
var addButton = UIAtarget().localTarget().frontMostApp().mainWindow().navigationBars()[0].buttons()[1];
addButton.tap();
//我们能够看到这些空间的关系。由于用的是javascript的语法,也就是用javascript语言来进行測试:
相同。我们能够通过名字来获取空间:(这些控件的名字就是开发的时候给定的名字:我们能够通过測试的树图中看到有关控件的名字)(由于数组的方式的可读性和可维护性比較差)
var addButton = UIAtarget().localTarget().frontMostApp().mainWindow().navigationBars()["Recipes"].buttons()["Add"];