zoukankan      html  css  js  c++  java
  • IOS测试-Fastmonkey

     

    目录:

    一、背景

    二、Fastmonkey介绍

    三、Fastmonkey操作前准备

    四、Fastmonkey工程配置过程

    五、执行Monkey测试

    六、FAQ

     

    Fastmonkey实践

    一、背景:

           因众所周知的原因随着Xcode从7.x升级到8.x或9.x,我们无法再使用Instrument的uiautomation脚本对iOS应用进行Monkey测试,所以我们一直期待行业测试与开发大牛产出新的Monkey开源工具,在这期间我们也使用过了一些技术大神开发的基于appium或者基于macaca的开源Monkey测试工具但是都有这样或者那样的问题比如:配置过于复制,上手慢,执行速度达不到要求、有的还需要进行App源码插庄等问题,直到Faskmonkey的出现它集成了众家之长,已经基本能满足我们日常的iOS应用压力测试了。

    二、Fastmonkey介绍:

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

    1.无需插桩!2.高效率,每秒4-5个action!4.轻量极简!详细介绍请参考TesterHome链接 :

    Faskmonkey测试工具介绍

    项目开源地址:

    Xcode9.x(https://github.com/zhangzhao4444/Fastmonkey 

    Xcode8.3.x(https://github.com/zhangzhao4444/Fastmonkey/tree/xcode8.3 

    三、Fastmonkey操作前准备:

    注意:本文所述操作步骤都是基于Xcode8.x或者Xcode9.x的版本, 注意针对不的Xcode版本下载不同项目工程的、操作前准备:

    1)Xcode8.3.x /Xcode9.x软件;

    2)iOS 第三方库管理工具-Carthage;

    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下载

    四、Fastmonkey工程配置过程

    配置是经过我们验证过了,不过因为每一个人的手机与Xcode版本问题可能会一些差异,大家也可以参考TesterHome上的fastmonkey 自我扫盲贴

    Fastmonkey的扫盲帖子 

    1.解压下载后的Fastmonkey-xxx.zip的文件,打开终端进入解压后的子目录XCTestWD-master

     
    进入解压后的子目录XCTestWD-master

    2.执行下列步骤下载工程所依赖的包 :

    1)修改目录中的Cartfile文件,将github "SwiftyJSON/SwiftyJSON" 改为github "SwiftyJSON/SwiftyJSON"  ==  3.1.4   修改github "tadija/AEXML"为github "tadija/AEXML" == 4.1.0如下图:

     
    修改目录中的Cartfile文件

    2)下载工程所依赖的包

    $  carthage update

    PS:如果此步骤出现错误请参考后面的FAQ

     
    下载工程所依赖的包,可能需要一些时间具体要依赖于您的网络速度,请耐心等待完成

    3.配置XCTestWD项目工程:

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

     
     

    1)修改Product ID,团队开发者证书需要修改,个人免费开发者证书可跳过此步骤

    a. 修改XCTestWD所需要的产品ID如com.xxxx.XCTestWD.XCTestWD

     
    xxx为证书所定义的产品ID前缀一般是公司或者企业的域名

    b.修改XCTestWDUITests所需要的产品ID如com.xxx.XCTestWD.XCTestWD

     
    xxx为证书所定义的产品ID前缀一般是公司或者企业的域名

    2)修改签名账号(个人开发Team与团队证书设置是不一样的):

    a1.团队开发者证书如下图:

     
    a1.修改XCTestWD Code Signing为相应的账号
     
    a1.修改XCTestWD Code Signing为相应的Team账号

    a2.同a1过程修改XCTestWDUITests的Code Signing账号

    b.个人开发者证书如下图:

    b1.修改XCTestWDUITests的Code Signing账号

     
     

    b2.同b1修改XCTestWD的Code Signing账号

    3)添加XCTestWDMonkey.swfit到Server目录

     
    右键点击server目录,然选择"Add Files to "XCTestWD"
     
    选择【XCTestWDMonkey.swift】文件添加到Server

    4)清空XCTestWD的Objective-C Bridging Header选项中的值

     
    清空Objective-C Bridging Header选项中的值
     
    清空Objective-C Bridging Header选项

    4.修改XCTestWD项目工程代码中的配置值:

    1)修改运行模式,将XCTestWDRunner.swift文件中的serverMode设置为false如下图

     
    修改此项为false后,这样Monkey就可以直接从Xcode中运行,不需要再使用额外的命令了

    2)修改XCTestWDMonkey.swift文件中的bundleID为被测App的值的如下图:

     
    改为自己App的实际BundleID,如何查找被测App的BundleID请百度一下这里不再敖述

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

     
    修改Monkey执行时长

    五、执行Monkey测试

    1)选择要执行的手机与Target注意App事先安装到被测试手机上,手机已经插入Mac电脑USB接口

     
    从下拉列表中选择XCTestWDUITests与手机

    2)开始执行Monkey

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

    六、FAQ:

    1. 如果carthage update的时候如果报这个错xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH需要在Xcode中 Preferences > Locations里设置Command Line Tools为自己使用版本的Xcode --谢谢光晕_9c54的提醒

    2.如果是Xcode9.x可能会出现XCTestWDApplication.h file not found错误如下图,请按照下面方法解决:

     
    XCTestWDApplication.h file not found错误

    添加XCTestWDApplication.h与XCTestWDApplication.m文件到PrivateHeaders目录,如下图

     
    选中PrivateHeaders然后点击右键在弹出的界面中选择【Add Files to "XCTestWD"...】项目
     
    选择XCTestWDApplication.h与XCTestWDApplication.m然后点击Add
     
    XCTestWDApplication.h与XCTestWDApplication.m被添加到了PrivateHeaders中

    2.第一次执行时可能会报错,因为需要在手机上信任你的个人证书或者团队证书,第二次执行就不会了。一般位于手机【设置】--【通用】--【描述文件】中

    3.每次运行完成后,在Xcode的Debug Ouput框中会输出相应的日志与截图保存位置,每次运行完成后日志会报错,这个错误是由于Fastmonkey的Bug,参加下面Issue链接,主要原因是当执行时长一到时,Monkey测试自行停止,这个停止是强退的,但Xctest没有正常退出造成的,目前还没有找到好的解决方法。

    https://github.com/zhangzhao4444/Fastmonkey/issues/12

  • 相关阅读:
    WPF之感触
    C# WinForm 给DataTable中指定位置添加列
    MyEclipse 8.6 download 官方下载地址
    将博客搬至CSDN
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
  • 原文地址:https://www.cnblogs.com/d-d-w/p/9815786.html
Copyright © 2011-2022 走看看