美文网首页iOS自动化测试自动化测试/CI测试软件测试
Xcode9.2环境搭建FastMonkey进行Monkey测试

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

作者: 慕幕酱 | 来源:发表于2018-04-28 18:00 被阅读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.与性能测试结合,收集性能数据。

    相关文章

      网友评论

      • 焦下客:感谢感谢哈哈,终于跑起来了
      • kiko_755f:请问小编搭建了jenkins环境了吗?
      • 天蝎座的Paris:非常感谢详尽的分享
      • mukekeheart:为啥我这边依赖包Fuzi一直不能编译通过呢

        <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):sweat:
        慕幕酱:@mukekeheart xcode9.4我没有试过,不清楚什么情况,这篇文章里是针对xcode9.2写的。如果编译不通过,看下相应的log吧,然后再找下原因。
        mukekeheart:@慕幕酱 xcode是最新的9.4,fuzi的版本和你这里写的是一样的呢,Xcode必须要是9.2的吗
        慕幕酱:@mukekeheart Fuzi版本对么?你的xcode版本是多少?
      • 洛洛卡:你好,请问一下FastMonkey 如何继承monkeyPaws呢?我的工程是OC代码
        慕幕酱:@洛洛卡 FastMonkey是不需要插桩的,所以也是可以跑OC写的工程
      • 慕幕酱:使用命令行启动:
        xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=Olivia6s' XCTESTWD_PORT=8010 clean test
        mukekeheart:为啥我这边依赖包一直不能编译通过呢

        <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):sweat:
        慕幕酱:@慕幕酱 以上命令可实现双终端运行
        慕幕酱:xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=iPhone8' XCTESTWD_PORT=8011 clean test

      本文标题:Xcode9.2环境搭建FastMonkey进行Monkey测试

      本文链接:https://www.haomeiwen.com/subject/cmavkftx.html