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

链接: https://developer.apple.com/library/ios/samplecode/iPhoneCoreDataRecipes/Introduction/Intro.html

Command+i 开启instruments 选择Automation

1.有关于界面的一些主要介绍

UIAutomation的初步学习记录_第1张图片


2.在编写脚本之前,可以先查看一下app的层次,以方便后续的脚本编写

var target = UIATarget.localTarget();//获取UIATarget对象,他是整个树形控件的根节点,一切操作都从UIATarget开始
target.logElementTree();//log元素属性结构

结果如下图

UIAutomation的初步学习记录_第2张图片


下面编写第一个测试脚本


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.点击+号
UIAutomation的初步学习记录_第3张图片


2.输入文字,点击保存

UIAutomation的初步学习记录_第4张图片


3.确认输入,点击返回

UIAutomation的初步学习记录_第5张图片


4.检查结果

UIAutomation的初步学习记录_第6张图片


第二个脚本

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

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

你可能感兴趣的:(ios,自动化测试,uiautomation,instrument)