iOS自动化测试自动化测试/CI测试软件测试

Xcode9.2环境搭建FastMonkey进行Monkey测试

2018-04-28  本文已影响193人  慕幕酱
依照国际惯例,此处插播一图


关键字:xcode9.2、FastMonkey、Carthage、XCTestWD


目录:

一.背景介绍

二.FastMonkey介绍

三.搭建FastMonkey的前置条件

四.FastMonkey工程配置

五.进行Monkey测试

六.后记


一.背景介绍

        近期老大让调研iOSMonkey测试,看了好几个第三方的框架,最后看到了集众家所长的FastMonkey。因此作为一名iOS Monkey测试小白,在环境搭建和运行上遇到了很多问题,看了写FastMonkey的zhangzhao大神写的原贴和简书上luckydaxian写的扫盲贴,又QQ问zhangzhao大神,终于运行了起来,因此写此篇文章进行记录,希望能够帮助其他小伙伴少进坑。

        此外进行下说明,此篇文章和luckydaxian写的《使用Fastmonkey进行Monkey测试实践》有很多相似之处,许多也直接进行了引用,但是由于按照luckydaxian写的仍然存在一些问题,我在luckydaxian写的文章下进行了评论,但是为了有类似经历的小伙伴看起来更方便,搭建环境过程更顺利,所以就重新整理了一遍。在这里向zhangzhao大神和luckydaxian致敬~

二.FastMonkey介绍

        Fastmonkey是zhangzhao大神去年(2017年)开源的一款iOS应用Monkey测试工具,基于 XCTestWD、swiftmonkey 二次开发,实现无需插桩的 iOS monkey 自动化工具 fastmonkey,优点如下:

1.无需插桩!

2.高效率,每秒4-5个action!(真的很高效~)

3.轻量极简!

详细介绍请参考TesterHome链接 :

(已开源) 基于 XCTestWD,swiftmonkey 二次开发,实现无需插桩的 iOS monkey 自动化工具 fastmonkey(作者是zhangzhao大神)

项目开源地址:https://github.com/zhangzhao4444/Fastmonkey 

题外:我在本地run起来后,又从头看了一遍此贴,包括zhangzhao大神的update和很多志同的小伙伴的评论和讨论,收获很大。

三.搭建FastMonkey的前置条件

1. Xcode9.2软件:

用于导入Faskmonkey工程及运行monkey测试.

注意:xcode自带的swift是swift4,FastMonkey需要swift3.2,此点熟记于心。

2. iOS 第三方库管理工具-Carthage:

 Carthage是iOS用于下载工程所依赖第三方库的;如果没有安装请使用下面命令进行安装brew install  carthage(已安装请忽略)

3. iOS开发者证书文件:

 iOS开发者证书用于工程中的构建及签名,证书可以是团队的开发者证书也可以是免费的个人开发者证书,如何申请个人开发者证书请大家参考其他文档此处不再敖述

4. Fastmonkey工程代码从github上下载:

工程代码直接从https://github.com/zhangzhao4444/Fastmonkeydownload或clone

四.FastMonkey工程配置

1.clone FastMonkey工程

进入terminal,执行 git clone https://github.com/zhangzhao4444/Fastmonkey.git

2.切换工程分支到xcode9.2

进入FastMonkey文件夹下,执行git checkout xcode9.2

切换到xcode9.2分支

3.修改工程依赖包Cartfile文件

Cartfile文件位置 Cartfile文件内容

!!修改时,注意等号左右的空格!!

4.下载工程依赖包

在terminal中进入到Fastmonkey/XCTestWD-master路径下,执行如下命令:

carthage update --no-use-binaries

如上图,下载和编译依赖没有任何错误即可进行下一步

注意:如果下载和编译过程出现错误,请check以下两点:

i. Cartfile文件中各依赖的版本号是否正确;

ii.查看log日志,具体定位错误原因。

5.安装ideviceinstaller库

ideviceinstaller一个与安装代理进行交互的工具。允许安装、升级、卸载、归档、恢复iOS设备,并列举安装或归档的应用程序。

github地址:https://github.com/libimobiledevice/ideviceinstaller

将工程clone到本地后,按照github上的readme进行安装。

6.配置XCTestWD项目工程:

双击子目录XCTestWD中的XCTestWD.xcodeproj文件,在xcode中打开项目工程

打开项目工程

6.1修改BundleID和设置开发者账号

修改BundleID和设置开发者账号

6.2修改XCTestWDUITests对应的Signing

修改XCTestWDUITests对应的Signing

6.3删掉XCTestWD/XCTestWD-Bridging-Header.h

删掉XCTestWD/XCTestWD-Bridging-Header.h

6.4添加XCTestWDMonkey.swfit到Server目录

右键点击server目录,然选择"Add Files to "XCTestWD"


添加XCTestWDMonkey.swift文件

6.5添加XCTestWDApplication.h与XCTestWDApplication.m文件到PrivateHeaders目录


选中PrivateHeaders然后点击右键在弹出的界面中选择【Add Files to "XCTestWD"...】项目


选择XCTestWDApplication.h与XCTestWDApplication.m然后点击Add


添加后

6.6修改XCTestWD项目工程代码中的配置值

6.6.1修改为非server模式

serverMode 值设置为false

说明:server模式需要 iproxy 和curl,笔者用到的是非server模式,直接在xcode中执行test。

6.6.2修改XCTestWDMonkey.swift文件中的bundleID为被测App的值

修改被测APP的Bundle ID

6.6.3修改Monkey.swift文件中的elapsedTime值确定你需要运行多长时间的Monkey,注意单位是秒

修改Monkey执行时长,此处为15h

五.进行Monkey测试

1.选择设备(笔者用的是真机)

xcode9.2不支持≥11.3的系统

2.执行Monkey测试

选择【Product】--【Test】执行Monkey测试

3.截图路径位置

截图路径:/Users/olivia/Library/Developer/Xcode/DerivedData/XCTestWD-equyofhmagirhbgjwqrbrzrwbnrl/Logs/Test/Attachments

关于log,xcodetest介绍后,可以在控制台看到输出的log位置。

六.后记

关于FastMonkey:正如zhangzhao大神写到的FastMonkey的执行效率非常高,控件的遍历也很细,这几天执行了Monkey,确实有一些收获。但是FastMonkey的实现原理,作为一名小白,还是不明白。后续需要做的工作还有很多,大致分以下几点:

1.了解熟悉Monkey测试原理和FastMonkey实现;

2.部署到Jenkins,实现Monkey测试时间可配置;

3.与性能测试结合,收集性能数据。

上一篇 下一篇

猜你喜欢

热点阅读