因众所周知的原因随着Xcode从7.x升级到8.x或9.x,我们无法再使用Instrument的uiautomation脚本对iOS应用进行Monkey测试,所以我们一直期待行业测试与开发大牛产出新的Monkey开源工具,在这期间我们也使用过了一些技术大神开发的基于appium或者基于macaca的开源Monkey测试工具但是都有这样或者那样的问题比如:配置过于复制,上手慢,执行速度达不到要求、有的还需要进行App源码插庄等问题,直到Faskmonkey的出现它集成了众家之长,已经基本能满足我们日常的iOS应用压力测试了。
Fastmonkey是zhangzhao大神最近开源的一款iOS应用Monkey测试工具,基于 XCTestWD,swiftmonkey 二次开发,实现无需插桩的 iOS monkey 自动化工具 fastmonkey,优点如下:
1.无需插桩!2.高效率,每秒4-5个action!4.轻量极简!详细介绍请参考TesterHome链接 :
Faskmonkey测试工具介绍
项目开源地址:
Xcode10.x(https://github.com/zhangzhao4444/Fastmonkey )master 分支支持10
Xcode9.x(https://github.com/zhangzhao4444/Fastmonkey )
Xcode8.3.x(https://github.com/zhangzhao4444/Fastmonkey/tree/xcode8.3 )
注意:本文所述操作步骤都是基于Xcode的版本, 注意针对不的Xcode版本下载不同项目工程的、操作前准备:
1)Xcode软件;
2)iOS 第三方库管理工具-Carthage (使用homebrew 安装 homebrew https://blog.csdn.net/Flying_in_the_world/article/details/88018424);
3)iOS开发者证书文件;
4)Fastmonkey工程代码从github上下载;
1)Xcode8.3/Xcode9.x是用于导入Faskmonkey工程及运行monkey测试;
2)Carthage是iOS用于下载工程所依赖第三方库的;如果没有安装请使用下面命令进行安装:
brew install carthage
3)iOS开发者证书用于工程中的构建及签名,证书可以是团队的开发者证书也可以是免费的个人开发者证书,如何申请个人开发者证书请大家参考其他文档此处不再敖述。
4)工程代码直接从https://github.com/zhangzhao4444/Fastmonkey下载
配置是经过我们验证过了,不过因为每一个人的手机与Xcode版本问题可能会一些差异,大家也可以参考TesterHome上的fastmonkey 自我扫盲贴
Fastmonkey的扫盲帖子
1.打开终端进入工程子目录XCTestWD-master下
2.执行下列步骤下载工程所依赖的包 :
这些依赖包的github路径
https://github.com/httpswift/swifter
https://github.com/SwiftyJSON/SwiftyJSON
https://github.com/cezheng/Fuzi
https://github.com/tadija/AEXML
https://github.com/CocoaLumberjack/CocoaLumberjack
https://github.com/Quick/Nimble
上面的Cartfile文件中的信息都可以在对应的链接中找到
2)下载工程所依赖的包
$ carthage update (这个语句只有 carthage安装成功才可以用)
未安装请先安装homebrew,在执行
$ brew install carthage
更新成功
遇到问题:
解决方案
进入xcode的偏好设置 command + ,
3.配置XCTestWD项目工程:
双击子目录XCTestWD中的XCTestWD.xcodeproj文件打开项目工程
1、团队证书修改 工程的证书 预置描述文件(测试那个产品就是那个产品的证书) ,个人免费开发者证书可跳过此步骤
2 修改XCTestWD所需要的 bundle Id,这两处都要改
1)修改XCTestWDMonkey.swift文件中的bundleID为被测App的值的如下图:
2)修改Monkey.swift文件中的elapsedTime值确定你需要运行多长时间的Monkey,注意单位是秒,如下图:
1)选择要执行的手机与Target注意App事先安装到被测试手机上,手机已经插入Mac电脑USB接口
2)开始执行Monkey
问题:
每次运行完成后,在Xcode的Debug Ouput框中会输出相应的日志与截图保存位置,每次运行完成后日志会报错,这个错误是由于Fastmonkey的Bug,参加下面Issue链接,主要原因是当执行时长一到时,Monkey测试自行停止,这个停止是强退的,但Xctest没有正常退出造成的,目前还没有找到好的解决方法。
下面会有使用和数据分析,敬请期待。