关键字: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对应的Signing6.3删掉XCTestWD/XCTestWD-Bridging-Header.h
删掉XCTestWD/XCTestWD-Bridging-Header.h6.4添加XCTestWDMonkey.swfit到Server目录
右键点击server目录,然选择"Add Files to "XCTestWD"6.5添加XCTestWDApplication.h与XCTestWDApplication.m文件到PrivateHeaders目录
6.6修改XCTestWD项目工程代码中的配置值
6.6.1修改为非server模式
serverMode 值设置为false说明:server模式需要 iproxy 和curl,笔者用到的是非server模式,直接在xcode中执行test。
6.6.2修改XCTestWDMonkey.swift文件中的bundleID为被测App的值
修改被测APP的Bundle ID6.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.与性能测试结合,收集性能数据。
网友评论
<unknown>:0: error: could not build Objective-C module 'Fuzi'
the following build commands failed:
CompileSwift normal armv7k
CompileSwiftSources normal armv7k com.apple.xcode.tools.swift.compiler
(2 failures)
xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=Olivia6s' XCTESTWD_PORT=8010 clean test
<unknown>:0: error: could not build Objective-C module 'Fuzi'
the following build commands failed:
CompileSwift normal armv7k
CompileSwiftSources normal armv7k com.apple.xcode.tools.swift.compiler
(2 failures)