这几天公司有个紧急 ios 随机测试的任务,上网浏览了一下,发现比较容易搭建的就是 faskmonkey。关于 faskmonkey 的介绍很多,我就不赘述啦,跟大家分享下安装过程中遇到的一点小坑。
在搭建的过程中,主要参考了这篇文章
https://www.jianshu.com/p/f7edc3695a63
MAC 系统版本:macOS High Sierra 版本 10.13.6
xcode10.1
Fastmonkey-master 工程代码:https://github.com/zhangzhao4444/Fastmonkey
ios 真机(测试机)
安装 Carthage
1)首先从 github 上下载 Faskmonkey 工程,下载后打开工程,配置 code signing 为自己的 Team 账号 (ios 工程配置的基础步骤,不多赘述,借用两图简单说明 )
2)打开终端,进入 Fastmonkey-master/XCTestWD-master 目录,执行 carthage update,这一步比较耗时,也是我搭建时掉了个小坑的地方刚下载好的工程里,Cartfile 如下图
执行 carthage update 后,会从 github 上 fetch 相应版本的工程并执行 build,但原始 Cartfile 里没有定义 CocoaLumberjack/CocoaLumberjack 和 SwiftyJSON/SwiftyJSON 的版本,下载后的这两个工程版本较高,默认使用 swift5.0,编译失败。后续手工编译导入实在麻烦,所以一定要把 cartfile 改为下图:
修改完后,再执行 carthage update 就一路畅通啦
搭建完成后,就可以执行测试啦,首先要定义被测 APP 的 bundleid 和测试时长:
选中待测手机后,就可以成功执行随机测试了
当然,也可以脱离 xcode 平台,直接在终端执行 xcodebuild 进行测试:
官方给出的步骤是这样的:
#
#Change the port number to override the default port
#Specify the device name
#
$ iproxy 8001 8001
$ xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=(your device name)' XCTESTWD_PORT=8001 clean test
#
# Now server is started and listening in 8001
# To start Monkey run:
$curl -X POST -H "Content-Type:application/json" -d "{\"desiredCapabilities\":{\"deviceName\":\"xxxx\",\"platformName\":\"iOS\", \"bundleId\":\"com.PandaTV.Live-iPhone\",\"autoAcceptAlerts\":\"false\"}}" http://127.0.0.1:8001/wd/hub/monkey
我使用的办法如下:
1)首先修改被测 app 的 bundleid 和测试时长
2)执行
xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination id=(your device name) XCTESTWD_PORT=8001 test
然后手机就开始点点点啦!并且成功生成了日志,日志存在的位置如下,可以使用 vscode 打开:
因为做的项目是兼容性测试,所以要使用到多台手机进行测试,目前使用的简单方法就是给每台手机分配了不同的 XCTestWD 端口号,但需要在每台手机执行 xcodebuild 后加一个等待时间,避免编译冲突。
时间问题写的比较简要,欢迎有同样需求的小伙伴一起探讨,提出意见建议!