//这个方法自动测试的时候会自动调用
//注意:这个方法一定要放在前面(也就是指定点击“退出”弹出这个警告框之前,因为这样就先加载了)
UIATarget.onAlert = function onAlert(alert) {
var title = alert.name();
UIALogger.logWarning("Alert with title " + title );
target.delay(5);
UIALogger.logMessage("message");
if (title == "Are you sure to exit?") {
target.delay(5);
alert.buttons()["OK"].tap();
return true;
}
return false;
}
var target = UIATarget.localTarget();
//target.logElementTree();
var messages = "test alert";
UIALogger.logStart(messages);
target.frontMostApp().mainWindow().tableViews()[0].buttons()["Sign out"].tap();
UIALogger.logMessage("message");
target.delay(5);
UIALogger.logPass(messages);
总结:在呢里最为主要的就是记得将alert相应的函数放在成圣alert的代码之前,一旦模拟到产生代码的方法,UIAtomation自动化测试就会调用这个方法。
下面是一些相关的属性的了解:
1、Element的了解
UIAElement
(Point) hitpoint()
//返回的是当前点击的位置
(Rect) rect()
//返回的控件在主屏幕上的位置
(UIAElementArray) activityIndicators()
//返回的是活动的指示器(元素)数组
(UIAActivityView) activityView()
//返回对象代表活动的视图
(UIAElementArray) ancestry()
//返回指定对象数组的祖先(元素数组)
手势动作
(undefined) tap()
//目标的点击
(undefined) doubleTap()
//双击
(undefined) tapWithOptions(Object options)
//在指定的控件元素上指定特定的手势动作
//这个字典是指定手势的特性,特性的有效的key有以下4中类型:
tapCount:点击的次数(默认是1)
touchCount:解除的个数(这里一般是指的是手指,默认为11)
duration :时间的持续长度,tap默认0,解除并且保持的手势(eg:拖、长按等默认是1)
tapOffset:指定tap手势,默认是{x:0.0, y:0.0}.
通过面的tapOffset使点击更加的准确,左上角为:{x:0.0,0.0} 右下角:{x:1.0,1.0},通过这个我们就明白了相应的内容。
(这个方法使用的会比较多,尤其是在阅读器上的使用,分为不同的区域,将会显示不同的效果)
(undefined) twoFingerTap()
//两个手指点击
(undefined) touchAndHold(Number duration)
//触摸并且保存指定的时间(即为长按的时间延时)
(决定)根据因素的状态
(Boolean) isValid()
//判断指定元素是否有效
(Boolean) checkIsValid()
//同样是返回指定的元素的状态(相对于上面的元素,确定控件已经存在)
UIAtarget的一些属性方法:
管理app的方法
(UIAApplication) frontMostApp()
//返回一个代表你的app的对象
// 讨论:这个应用对象集合了你app的控制点和协调点
// This UIAApplication object is the centralized point of control and coordination for your app.
获取基本的目标(对象)和主机对象
(UIATarget) localTarget()
//返回一个代表测试系统的对象
(UIAHost) host()
// 返回一个对象代表的是当前目标的主机。
系统级别的操作(设备属性信息):
(String) model()
//设备模型
(String) name()
//设备的名字
(Rect) rect()
//返回设备矩形的范围
(String) systemName()
//返回系统的名字
(String) systemVersion()
//返回系统的版本
设备的方向
(Number deviceOrientation) deviceOrientation()
//返回的当前设备的方向
(undefined) setDeviceOrientation(Number deviceOrientation)
//设备当前的设备的方向
设置超时:
(Number) popTimeout() //推出超时
(undefined) pushTimeout(timeoutValue) //压入超时
(undefined) setTimeout(Number timeout) //设置超时
(Number) timeout() //获取超时的值
(Boolean) delay(Number timeInterval)
//设置延时(最为常用)
(Boolean) onAlert(UIAAlert alert)
//被UI自动化界面调用,允许你的脚本相应警告
alert //一个代表警告的实例
可以看到这些常量都改变了前缀
UIA_DEVICE_ORIENTATION_UNKNOWN
//方向不知道
UIA_DEVICE_ORIENTATION_PORTRAIT
//设备室纵向直立,home键是在底部
UIA_DEVICE_ORIENTATION_PORTRAIT_UPSIDEDOWN
//设备纵向倒立的,home键在上面
UIA_DEVICE_ORIENTATION_LANDSCAPELEFT
//横向,且home键在右边
UIA_DEVICE_ORIENTATION_LANDSCAPERIGHT
//横向,且home键在左边
UIA_DEVICE_ORIENTATION_FACEUP
//平方,屏幕向上
UIA_DEVICE_ORIENTATION_FACEDOWN
//平放,屏幕向下
平放,屏幕向下
截屏
(undefined) captureRectWithName(Rect rect, String imageName) //指定大小截屏
(undefined) captureScreenWithName(String imageName) //截全屏
还有其他相应的方法操作用到再了解,比如:相互的作用等等
顺便了解一些技术:
ATA技术是一个关于IDE(Integrated Device Electronics)的技术规范族。最初,IDE只是一项企图把控制器与盘体集成在一起的硬盘接口技术。 随着IDE/EIDE得到的日益广泛的应用,全球标准化协议将该接口自诞生以来使用的技术规范归纳成为全球硬盘标准,这样就产生了ATA(Advanced Technology Attachment)。
序列式SCSI(SAS:Serial Attached SCSI)是一种电脑集线的技术,其功能主要是作为周边零件的数据传输,如:硬盘、CD-ROM等设备而设计的界面。序列式SCSI 由并行SCSI物理存储接口演化而来,是由ANSI INCITS T10技术委员会(T10 committee)开发及维护的新的存储接口标准。与并行方式相比,序列方式能提供更快速的通信传输速度以及更简易的配置。此外SAS并支持与序列式ATA(SATA)设备兼容,且两者可以使用相类似的电缆。
SAS接口使用更细的电缆搭配更小的连接器,一方面节约了服务器或存储设备的空间,另一方节省了空间,从而提高了使用SAS硬盘服务器的散热、通风能力。而传统的SCSI接口使用较大的并行电缆,这会带来部分电子干扰,采用SAS的电缆结构就不会出现此问题。另外每个SAS电缆有四根电缆,两根输入两根输出。SAS可以同时进行数据的读写,全双工的数据操作提高数据的吞吐效率。
总的来说SAS技术是结合了SATA与SCSI两者的优点而诞生的,同时串行SCSI(SAS)是点到点的结构,因此除了提高性能之外,每个设备连接到指定的数据通路上提高了带宽,从而为数据传输与存取提供了必要保障。