简述

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、 通过测试代码来检查测试结果并直接输出

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

最新文章

  1. C#对象先序列化然后反序列化时间丢失八小时的问题
  2. 第2章 jQuery的选择器
  3. DIV半透明,内层不受影响的代码
  4. CSS 实现加载动画之三-钢琴按键
  5. html5.js
  6. hdoj 5355 Cake(分析+二分)
  7. Linux环境变量的设置和查看方法
  8. How to Use Custom TTF Font on iOS
  9. Ubuntu中PyCharm中字体设置
  10. hp惠普服务器监控硬盘
  11. 三星GT-S7572换屏幕教程
  12. 华硕K55DR体验 - 显卡就是坑
  13. SuperMap iClient
  14. 学习tabhost 实现微博的主界面
  15. Grunt构建工具插件篇——之less工具3和watch配合自动化编译
  16. WebService两种调用方法
  17. 安装supervisor
  18. 如何用ABP框架快速完成项目(8) - 用ABP一个人快速完成项目(4) - 能自动化就不要手动 - 使用自动化测试(BDD/TDD)
  19. mongo固定集合
  20. Python中xlrd和xlwt模块使用方法

热门文章

  1. 阿里云服务器(ECS)购买及配置总结
  2. Open Live Writer 安装和博客账号配置
  3. Eclipse自定义启动画面和状态栏图标以及各种小图标的含义
  4. JavaScript中的attachEvent和addEventListener
  5. phpmyadmin数据表结构没有显示注释列
  6. Ubuntu / Raspberry 下切换GCC版本
  7. Linux-vi/vim编辑器常用命令与用法
  8. 【NLP_Stanford课堂】情感分析
  9. ubuntu 启用root用户方法
  10. eclipse tomcat jdk 版本引用