UIAutomation的初步学习记录

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


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更加成熟.

当然,如果你有足够的耐心,就更好了,哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值