Macaca-iOS入门那些事

Macaca-iOS入门那些事

前言

最近有朋友向我请教iOS自动化测试框架选型,刚好前段时间做讲座时发现了macaca,遂试用。所以,下面的内容会只围绕Macaca的iOS部分。

Macaca是什么

阿里的移动端自动测试框架,同时支持android,iOS。而之前的阿里的athrun似乎已经放弃维护了。

官网:https://macacajs.github.io/macaca/

Macaca基于Node.js开发,测试案例编写语言暂时也只支持Node.js。

Macaca与Appnium区别

坦白说,这种外部驱动instruments的server-client自动化测试框架,在iOS上实现方式非常受限的,所以其底层的实现方式是一致的。

而在应用级上的封装,二者均采用了Node.js作为开发语言,接口也基于web-driver实现,所以Macaca和Appnium相似程度非常高。

如何看待Macaca和Appnium区别?

以下是Macaca作者的设计思想:

appium 是个优秀的工具。但无法满足更轻、更快、更稳、更易集成、更贴合业务的高要求。

可以认为Macaca是一个轻量级的Appnium。当然,这就意味着很多Appnium的功能会没有了。但这也造就了一个轻量级的,更易集成的框架,Why not?

安装

其实安装是很简单的,但是还是很多人无法把环境搭建起来。这里再详细说下。

  1. Xcode(及Xcode Command Line Tools)
  2. Node.js
    • https://nodejs.org/en/download/
    • 安装后,确认是否安装成功
        chentekiMacBook-Pro:~ chenximing$ node -v
        v4.4.3
        chentekiMacBook-Pro:~ chenximing$ npm -v
        2.15.1
    • npm是Node.js包管理,之后装Macaca就是用它。
  3. brew

至此,如果对以上3者不了解,先放弃搭建Macaca,先把以上东西使用先搞懂....

  1. Macaca安装

    npm i -g macaca-cli
    
    

    注意: 这里新是macaca-cli,如果看旧版教程是:macaca-client(希望之后不要变了...)。

    检查是否安装好了:

  2. 注意:check-list你未必都能pass,像我的Android部分,platforms directory检查失败。so what,我再试用iOS部分,不鸟它。只要保证:
    
    
    
    node.js checklist
    iOS checklist
    Installed driver list
    
    

    以上3者全pass即可。如果按照我刚才的步骤,以上3者不应该会有failed。

  3. 安装iso-webkit-debug-proxy
    brew install iso-webkit-debug-proxy
    

    这里一定要用brew安装!之前有些旧文档会略坑新手,手工编译方式....这需要手工安装N多依赖:autoconf,libtool,xml2...不是熟手别搞,玩死你...

    iso-webkit-debug-proxy是干嘛的呢?从它安装的依赖库可以看出:

    libimobiledevice/
    usbmuxd/
    

    iTools就是使用这玩意儿和iPhone通讯的,libimobiledevice是破解iTunes和iPhone的通讯后实现的lib。Xcode5之前是fruitstrap,fruitstrap后来放弃维护,Xcode5后使用libimobiledevice。

至此,安装全部完成,很简单是不是:>

运行第一个测试案例

安装完了框架,要跑一跑啊,否则装来干嘛呢?那得先回答以下问题:

  1. 案例哪里来?
  2. 有案例也得有app...
  3. 运行案例的设备,可以选模拟器和真机。由于装了Xcode自带模拟器,所以跑第一个案例时,先用模拟器会比较简单。

然后第1,2个问题怎么解决?

作者已经帮你解决了。他已经为你准备第一个测试案例及其对应的app。

下载案例及App

git clone https://github.com/macacajs/macaca-test-sample.git --depth=1

如果你不知道什么是git或者没装,可以去https://github.com/macacajs/macaca-test-sample下载。

下载后,进入macaca-test-sample目录,执行:

npm i

macaca-test-sample目录结构解析

./
├── HISTORY.md
├── LICENSE
├── Makefile
├── README.md
├── app
├── circle.yml
├── macaca-test
├── node_modules
└── package.json
  • app:

    • 存放测试中使用到的app:ios-app-bootstrap.zip。
  • macaca-test:
    ./
    ├── macaca-desktop-sample.test.js # 桌面浏览器测试案例...作者的想法有点多啊-_-!
    ├── macaca-mobile-browser-sample.test.js # 移动端浏览器测试案例
    ├── macaca-mobile-sample.test.js # 移动端App测试案例
    └── mocha.opts
    

    如果单纯要看iOS端App测试效果的话,可以把macaca-mobile-sample.test.js之外的*.js都干掉。

运行第一个测试案例

macaca run --verbose

至此,Macaca及其案例运行起来了。

时间: 2024-10-24 21:39:54

Macaca-iOS入门那些事的相关文章

iOS入门学习详解

本文来源:http://www.zretc.com/technologyDetail/447.html ios学习起来并没有想象中的那么困难,只不过是你想要开发ios的话,成本相对比较高吧,在windows里面装虚拟机的时代我是体验过的,那个开发起来简直就是苦不堪言啊,那个宕机的速度真是分分钟的事,reset已经被用的如火纯清了,这样你就需要一台mac,有了mac还不够,总不能全部用模拟器开发吧,像定位啊之类的,还是需要实机来测试的,模拟器跟实机的差别还是挺大的.当然也没必要开发之前就买一个帐号

ios入门篇 -hello Word(1)

温馨提示:,如果您使用移动终端阅读本篇文章,请连接wifi的情况下阅读,里面有大量图片,以免造成您不必要的损失. 潜水博客园很多年,闲来无事,聊一下自己的经历,语文不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的. 博主介绍   2010 入园博客园学习.net,只是为后面做.net开发做铺垫.   2011-2012年 2年一直做.net开发(一直处于打杂状态),由于一直打杂状态,萌发转行做ios的状态.   2013-至今 做过4-5个ios方面的app(现阶段处于打杂状态).

IOS入门学习随笔

我的IOS学习之路并非起于大学期间,而是毕业后所在公司有相关的开发业务,所以我在今年10月份开始了我的IOS之旅. 在今年6月份苹果公司推出了全新的IOS开发语言Swift,这是件让IOS程序员兴奋的事件.因为Swift不仅有新的开发体验,更可以说这次让中国程序员有了一次和世界同步的机会.在我开始接触IOS的时候,我一直在犹豫是直接从ObjectC开始啃还是直接搭上Swift这班顺风车.在我考虑了学习的渐进性和公司实际开发任务之后,我决定从ObjectC开始我的IOS学习之路. 在确定了学习方向

从cocos2dx源代码看android和iOS跨平台那些事

cocos2dx一个跨移动(平板)平台的游戏引擎,支持2d和3d,基于c/c++,网上介绍多在此不详叙.我们本篇关心的是跨平台那些事,自然而然就找到platform目录.好家伙,支持的操作平台还真不少,最吸引我们关注的可能就是字母顺序排列的头二个平台,android和apple.然后顺带会看一看winrt和linux.platform这个目录,物如其名,就是一些使用到平台服务的东西(封装).platform目录下各平台子目录封装的平台服务都大同小异,唯android目录特殊还多了jni和java

Xamarin.iOS学习一:Hello.iOS 入门学习

介绍使用Xamarin开发iOS 在这两个章节里面,我们会使用Xamarin Studio 或者Visual Studio 创建第一个Xamarin.iOS程序并且去理解使用Xamarin开发iOS程序的基础概念.接着我们将会介绍创建和部署iOS程序所需要的工具.概念和步骤. Hello.iOS 快速入门 首先我们将创建一个让用户输入字母和数字并且可以拨打号码的应用程序,最终效果图如下:

iOS 证书那些事

关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾.对于一个iOS开发小白.半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详.疑问.疑惑甚至困惑: 什么是App ID?Explicit/Wildcard App ID有何区别?什么是App Group ID? 什么是证书(Certificate)?如何申请?有啥用? 什么是Key Pair(公钥/私钥)?有啥用?与证书有何关联

IOS入门之Swift语言(一)

经过不断的努力,小哥也买了台苹果设备,终于可以开始我的IOS之旅了,说来确实令人苦恼,为了学习IOS我这着贫农阶级,省了几个月的零花钱,外加向亲朋好友求救,最终痛下心扉,卖了台MAC pro128G版.苦逼的事情就不在多说,下面聊一聊,初次使用的心得体会,IOS的做工确实没说的,铝合金的机身,看上去就很显身份,用起来确实流畅,而且附带了很多有趣的应用,其中最让我惊奇的是段视频制作软件,提供了很多模板,让我制作小视频方便了很多.其次就是它的多手指操作了,炫酷的很,不过初次拿到本本时,确实很头疼,不

[转载]ios入门篇 -hello Word(1)

温馨提示:,如果您使用移动终端阅读本篇文章,请连接wifi的情况下阅读,里面有大量图片,以免造成您不必要的损失. 潜水博客园很多年,闲来无事,聊一下自己的经历,语文不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的. 博主介绍 2010 入园博客园学习.net,只是为后面做.net开发做铺垫. 2011-2012年 2年一直做.net开发(一直处于打杂状态),由于一直打杂状态,萌发转行做ios的状态. 2013-至今 做过4-5个ios方面的app(现阶段处于打杂状态).一直想做转行

IOS入门之StoryBoard

概述 在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个文件构建全部UI.而在最近几年的开发中,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,大大方便了界面的开发.适配以及提升代码性能. 我们来看看三种方式的主要区别: 手写页面和逻辑代码 如果你的目的是写一些可以高度重用的控件提供给其他开发者使用,那毫无疑问最好的选择应该是使用代码来