What Is UI Automation?
1.
UIKit
应用
自动化测试
2.Touch based
3.应用于iPhone, iPod touch and iPhone Simulator
4.集成于Instruments
5.Accessibility based
6.
JavaScript
自动化脚本
How to Automate an Application
基本元素
— UIAElement
Name
Value
Elements
Parent
开始学习
工欲善其事,必先利其器,可以通过苹果官方的一个程序来了解AutoMation
链接:
https://developer.apple.com/library/ios/samplecode/iPhoneCoreDataRecipes/Introduction/Intro.html
Command+i 开启instruments 选择Automation
1.有关于界面的一些主要介绍
2.在编写脚本之前,可以先查看一下app的层次,以方便后续的脚本编写
var target = UIATarget.localTarget();//获取UIATarget对象,他是整个树形控件的根节点,一切操作都从UIATarget开始
target.logElementTree();//log元素属性结构
结果如下图
下面编写第一个测试脚本
var target = UIATarget.localTarget();//得到UIATarget结构
target.logElementTree();//打印树形结构图
var app = target.frontMostApp();//返回一个UIAApplication对象
var win = app.mainWindow();//得到window对象
oldCells = win.tableViews()[0].cells().length;//得到tableview原有的cell数
var nav = win.navigationBars()["Recipes1"];//得到navbar
var addButton = nav.buttons()["Add"];//得到+按钮键
addButton.tap();//单击add按钮
target.delay(1);//动画转成增加1s的等待丰富脚本健壮性
var name = "龙炎其实是王老师";//
win.textFields()[0].setValue(name);//输入文字
win.navigationBars()[0].buttons()["Save"].tap();//单击保存按钮
target.delay(1);
win.navigationBars()[0].buttons()["Recipes1"].tap();//返回
newCells = win.tableViews()[0].cells().length;//得到新的cell数
if(newCells == oldCells+1){
UIALogger.logPass("test passed");
}else{
UIALogger.logFail("test failed");
}
图像步骤
1.点击+号
2.输入文字,点击保存
3.确认输入,点击返回
4.检查结果
第二个脚本
var target = UIATarget.localTarget();//得到UIATarget结构
target.logElementTree();//打印树形结构图
var app = target.frontMostApp();//返回一个UIAApplication对象
var win = app.mainWindow();//得到window对象
oldCells = win.tableViews()[0].cells().length;//得到tableview原有的cell数
win.tableViews()[0].cells()["龙炎其实是王老师"].dargInsideWithOptions({startOffset:{x:0.6,y:0.6},endOffset:{x:0.2,y:0.2},duration:1});
win.tableViews()[0].cells()["龙炎其实是王老师"].buttons()["Confirm Deletion for 龙炎其实是王老师"].tap();
target.delay(1);
具体的图片步骤就不复现了,自己用模拟器测试后发现其实经常会出现闪退(如果脚本写的不好的话)所以,如果希望用这个方式进行测试的话,还需要更熟练的脚本编写能力,或者apple更新 instrument更加成熟.
当然,如果你有足够的耐心,就更好了,哈哈哈