当前位置: 首页 » 新闻资讯 » 最新资讯 » 正文

利用instrument中的Automation实现ios自动化测试

分享到:
放大字体  缩小字体    发布日期:2019-08-31  来源:仪器信息网  作者:Mr liao  浏览次数:345
核心提示:iOS工具Instrument的使用如何用Instruments 检验app Xcode的instruments中的Automation是为了实现自动化测试的一个工具。1.实现方式有两种:它提供了两种实现方式,一种是通过JS脚本语言来执行自动化测试(普通自动化测试),另一种是通过录制(高级自动化测试)操作的方式自动生成脚本(不过这种方式生成的脚本容易产生bug,需要自己修改一下)。2.需要的知识:最好懂JS语言,了解UIAElement层次结构(好吧,不懂也没有关系,可以现看,都是很简单的操作就够了)3
iOS工具Instrument的使用如何用Instruments 检验app

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

1.实现方式有两种:

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

2.需要的知识:

 最好懂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:如果你进行的是手势或者控件过多的情况下,这里是最容易出错的)。

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

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 10:04:35 511次 http://www.yiqi.com/retiao/detail_35.html 热门标签:

看过《如何利用Xcode的instrument中的Automation实现自动化测试》的人还看了以下文章

 
 
打赏
[ 新闻资讯搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]
免责声明:
本网站部分内容来源于合作媒体、企业机构、网友提供和互联网的公开资料等,仅供参考。本网站对站内所有资讯的内容、观点保持中立,不对内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如果有侵权等问题,请及时联系我们,我们将在收到通知后第一时间妥善处理该部分内容。
 

利用instrument中的Automation实现ios自动化测试二维码

扫扫二维码用手机关注本条新闻报道也可关注本站官方微信账号:"xxxxx",每日获得互联网最前沿资讯,热点产品深度分析!
 

 
0相关评论