英语单词

如何利用Xcode的instrument中的Automation实现自动化测试

推荐访问: iOS工具Instrument的使用如何用Instruments 检验app

Xcode的instruments中的Automation是为了实现自动化测试的一个工具。

1.实现方式有两种:

    它提供了两种实现方式,一种是通过JS脚本语言来执行自动化测试(普通自动化测试),另一种是通过录制(高级自动化测试)操作的方式自动生成脚本(不过这种方式生成的脚本容易产生bug,需要自己修改一下)。

2.需要的知识:

    Z好懂JS语言,了解UIAElement层次结构(好吧,不懂也没有关系,可以现看,都是很简单的操作就够了)

3.需要的设备:

    有一台安装好Xcode的Mac就OK了

4.运行方式有两种:

    1>打开要测试的程序,选择Product --> Profile(这个时候就打开了instrument) / com + i --> 选择Automation

    

    2>右键Xcode选择Open Developer Tool --> Instruments --> Automation -- 不过这种方式,需要在左上角选择你要测试的工程(如果你要真机测试,只能测试你的测试项目,原因你应该清楚)

    

5.现在来简单的用脚本语言了解一下当前页面的层级结构吧:

     var target = UIATarget.localTarget();

     UIALogger.logStart("Logging element tree ...");

     UIATarget.localTarget().logElementTree();

     UIALogger.logPass();

    你会得到如下图所展示的

    

上方有五栏,就是你看到的字面意思(这种东西原谅我的懒惰)。其中要注意的是Log Messages(详情) 和 Log Type(运行结果) 以及Screenshot(截图)。

    1>你可以根据Log Messages 或者使用模拟器上的Accessibility检测器,开启方法Settings --> General --> Accessibility --> Accessibility Inspector更改它的状态为“打开”就可以了,它的运行效果如下

    

获得详细信息(PS:不用的时候点X),通过这两种方式获取坐标,你可以根据这个坐标来写脚本指定点击位置或者控件。

    2>Log Type 就是一个结果

    3>Screenshot 截图还是有用的,可以让你清晰的查看,查看方式如下图

    

点击小眼睛之后就OK了。

    官方给的树形结构如下(掌握它,你的自动化实现起来就会很简单了)

    

6.先来介绍一下几个基本的功能(其它的看文档吧):

    1>

      

    右侧的就是选择模拟器,以及模拟器上的项目,红色的原点就是运行该项目并执行脚本,暂停按钮不用说了。

    2>

    

    这个是一个状态图,具体的我的理解并不是很深,也就不误导了,可以看文档

    3>

            

    Trace Log就是查看运行结果的界面

    Editor Log就是执行脚本的时候操作的每一步,已经运行状态和错误反馈

    Script是用来写脚本,或者录制时自动生成脚本的地方

    4>

    

    这是在Script界面下方的按钮,三角键是执行脚本,红色的是开始录制,方块是停止

    5>

    

    在设置页面,你可以导入脚本,增加新脚本,有很多的内容,深究的话可以看一下官方文档

7.基本功够了,可以开始简单的使用了,先来一个录制:

    上面介绍过了,点击Script界面的红色按钮开始录制,然后在模拟器中执行动作就行了,这里注意一下,如果是从网络获取状态信息执行下一步,一定要注意网络状态,还有就是在生成的脚本中加一句代码

UIATarget.localTarget().delay(2); // 延时操作2s

这个是因为系统在执行脚本的时候速度很快,当push或者pop的时候如果有延时会崩溃。

录制好之后,生成的代码如下:

    

根据层级图一样,规则还是很明确的

    

是不是在犹豫箭头,他就是一个控件的不同形容,但是指的还是同一个(PS:如果你进行的是手势或者控件过多的情况下,这里是Z容易出错的)。

    好了,如果没有问题,一个简单的录制脚本就出现了,点击三角按钮或者上方的红色播放按钮就可以重现脚本了,用来做压力测试还是比较方便的。

8.通过写脚本的方式自动化测试:

    脚本写在哪里前面介绍过了,要自己写脚本,要熟悉层级结构和JS语言,会是很轻松的,并且他还有一个第三方tuneupjs是一个用以优化uiautomation的第三方js库,网站地址: http://www.tuneupjs.org/

    我的JS不怎么样,所以我一般是在录制的脚本上面进行修改,下面这个是我写的一个简单的tableView测试脚本,比较垃圾的代码,可以看一下

     var target = UIATarget.localTarget(); // 这个能看懂的应该,下面可以直接替换,为了明确,下面就没有替换  --  可以多写几层

     target.logElementTree(); // 也是便利当前界面的空间树结构的命令

     // 简单的遍历tableView点击事件

      for (var i = 0;i<UIATarget.localTarget().frontMostApp().windows()[0].tableViews()[0].cells().length;i++)

{

    var addButton = UIATarget.localTarget().frontMostApp().windows()[0].tableViews()[0].cells()[i];

    addButton.tap();

    

    target.delay(1);

    

    var backButton = target.frontMostApp().windows()[0].navigationBars()[0].buttons()[0];

    backButton.tap();

}

    tap -- 是单击操作

    UIAELement -- 所有UI控件的积累

 


2017-07-10浏览次数:1341次
本文来源:https://m.yiqi.com/retiao/detail_35.html
热门标签:
分享到
上一篇:iOS工具Instrument的使用
下一篇:instrument可数吗?
最新资讯
看过该文章的人还看过
利用instrument中的Automation实现自动化测试
苹果自带的测试工具instrument的Automation
iOS自动化测试工具