简述

Xcode的instruments中的Automation是为了实现自动化测试的一个工具。实现方式有两种:它提供了两种实现方式,

1)     是通过JS脚本语言来执行自动化测试(普通自动化测试),

2)     另一种是通过录制(高级自动化测试)操作的方式自动生成脚本(不过这种方式生成的脚本容易产生bug,需要自己修改一下)

目前只支持javascript来编写脚本。

环境搭建

只要mac下装好Xcode即可

界面的操作使用

  1. 如何运行

打开要测试的程序,选择Product --> Profile --> 选择Automation即可运行起来

运行界面如下:

  1. 界面操作方法

如图所示:

脚本简介

自动化的常见步骤通常是三步:定位,操作,检查

定位

控件的定位主要有2种方式,一种是通过层次结构找到对应的控件并对其操作,另一种是直接坐标定位。

1、  层次结构图

UIATarget是最上层的类,表示真实设备或模拟器

UIAApplication对象代表app层级的UI,指对应的APP

UIwindow对象代表APP的窗口,通过mainWindow()方法得到的对象,指当前app中的主窗体,一个app的当前界面通常只会有一个主窗体

如果不知道对应控件所属的层级,可通过target.logElementTree()函数来打印APP窗口所有的元素位置。

2、坐标定位

找到控件对应的绝对坐标,直接进行操作。

比如点击某个控件,可直接运行:tap({x:30,y:131})

还有其他一些坐标定位方法,具体先不说了。

操作

1、  常见的操作

1)     按钮点击

tap()

2)     坐标点击

tap({x:30,y:131})

3)     双击

doubleTap({x:100, y:200})

4)     拉伸

pinchOpenFromToForDuration({x:20, y:200}, {x:300, y:200}, 2);

第一个坐标点是起点,第二个坐标点是终点,最后一个参数是持续时间,单位为秒。

5)     收缩

pinchCloseFromToForDuration({x:20, y:200}, {x:300, y:200}, 2);

第一个坐标点是起点,第二个坐标点是终点,最后一个参数是持续时间,单位为秒。

6)     拖曳

dragFromToForDuration({x:160, y:200}, {x:160, y:400}, 1);

7)     快速滑动

flickFromTo({x:160, y:200}, {x:160, y:400});

第一个坐标点是起点,第二个坐标点是终点,与拖曳不同的是它没有时间参数,因为这个操作的速度很快。

8)     等待

delay(3);

9)     打印当前屏幕所有控件信息

UIATarget.localTarget().logElementTree();

10)   输入信息

setValue("username")

检查

检查主要是指测试过程中一些信息的输出,包含尽可能多的信息,以便于发现和分析可能出现的错误。输出信息主要是以下几种

1、 日志输出

UIALogger主要就用于输出各种类型的日志,包括logStart,logPass,logFail,logMessage,logDebug,logWarning ,logError。

三个通常用来区分一个测试用例,logstart表示一个测试的开始,直到logPass或者是logFail为止。

其他几个是用在测试过程中输入不同级别的日志。

2、 截图

测试过程中,可随时截取当下的图,后续可用于分析

UIATarget.localTarget().captureScreenWithName("picname");

3、 通过测试代码来检查测试结果并直接输出

通过完成测试代码来检查测试结果的正确与否并直接输出。

Apple的UIAutomation环境搭建和入门知识的更多相关文章

  1. Android编程: 环境搭建、基本知识

    学习的内容两个方面:环境搭建.基本知识 ====环境搭建==== 1.下载 android studio(http://developer.android.com/sdk/index.html) 2. ...

  2. Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通

    原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...

  3. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  4. (十八)整合Nacos组件,环境搭建和入门案例详解

    整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...

  5. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  6. 04 Mybatis 框架的环境搭建及入门案例

    1.搭建 Mybatis 开发环境 mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao的接口 第三步:创建Mybatis的主配置文件 SqlMapConifg. ...

  7. mybatis学习:mybatis的环境搭建与入门

    一.mybatis的概述: mybatis是一个持久层框架,用java编写 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接登繁杂过程 它使用了ORM思想 ...

  8. Mybatis学习笔记之一(环境搭建和入门案例介绍)

    一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...

  9. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

随机推荐

  1. 使用eclipse创建maven web项目

    1.新建项目: 2.选择模板: 3.输入项目信息: 4.新建的项目结构,发现index.jsp报错,直接删除重新创建一个index.jsp文件后,发现仍然报错,再在pom/xml文件中添加相应的ser ...

  2. 一:Shiro知识整理

    一:springboot快速入门: 1.建立Maven项目,导入springboot父工程 <!-- 继承springboot默认父工程 --> <parent> <gr ...

  3. 限流(三)Redis + lua分布式限流

    一.简介 1)分布式限流 如果是单实例项目,我们使用Guava这样的轻便又高性能的堆缓存来处理限流.但是当项目发展为多实例了以后呢?这时候我们就需要采用分布式限流的方式,分布式限流可以以redis + ...

  4. 在JSP中将EXEL文件的数据传入到数据库中

    在jsp中: 在script中使用函数: $(function(){ //var lpyear = document.getElementById("lpyear").value; ...

  5. JBPM学习第2篇:为Eclipse添加JBPM开发支持

    1.Eclipse添加JBoss支持插件 参考:Eclipse添加JBoss支持 若已安装,直接跳过! 2.Eclipse添加Drools插件 jbpm-installer-full解压后的文件夹中找 ...

  6. Html5本地存储+本地数据库+离线存储

    首先介绍什么叫存储: cache:通常把它叫做缓存,功能就是把从DB,或者磁盘拿出来的东西放在缓存里面,这样的话可以减少读取磁盘的IO. 磁盘文件:通常把一些图片或者一些视频都存放在磁盘上. 数据库: ...

  7. BestCoder Round #92

    这里是逢比赛必挂的智障选手ysf…… 不知道是因为自己菜还是心态不好……也许是后者吧,毕竟每次打比赛的时候都会很着急.lrd说我打比赛的功利性太强,想想确实是这样. 昨天打完之后自觉身败名裂没敢写出来 ...

  8. js中的this--执行上下文

    条件:函数调用的时候  才有执行上下文 this 不同情况的调用,this也不同 1)当函数直接打点调用,此时的this 是window 2)事件触发函数,此时的this是触发这个事件的对象 3)当对 ...

  9. Java从入门到精通——数据库篇Mongo DB 安装启动及配置详解

    一.概述     Mongo DB 下载下来以后我们应该如何去安装启动和配置才能使用Mongo DB,本篇博客就给大家讲述一下Mongo DB的安装启动及配置详解. 二.安装 1.下载Mongo DB ...

  10. input输入框数字验证

    正则限制input只能输入大于零的数字:onkeyup="this.value=this.value.replace(/\D|^0/g,'')" onafterpaste=&quo ...