Macaca-iOS入门那些事

简介:

Macaca-iOS入门那些事

一. 前言

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

二. Macaca是什么

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

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

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

三. Macaca与Appium区别

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

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

如何看待Macaca和Appium区别?

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

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

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

四. 安装

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

  1. Xcode(及Xcode Command Line Tools)

  2. Node.js

    • https://nodejs.org/en/download/
    • 安装后,确认是否安装成功

      1
      2
      3
      4
      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安装

    1
    npm i -g macaca-cli

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

    检查是否安装好了:

     注意:check-list你未必都能pass,像我的Android部分,platforms directory检查失败。so what,我只试用iOS部分,其他可以不鸟它。只要保证:

    1
    2
    3
    node.js checklist
    iOS checklist
    Installed driver list

    以上3者全pass即可。如果按照我刚才的步骤,除iOS checklist的ios-webkit-debug-proxy外,其他不应该会有failed。

  2. 安装ios-webkit-debug-proxy

    1
    brew install ios-webkit-debug-proxy

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

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

    1
    2
    libimobiledevice/
    usbmuxd/

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

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

五. 运行第一个测试案例

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

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

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

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

1. 下载案例及App

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

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

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

1
npm i
 

2. macaca-test-sample目录结构解析

1
2
3
4
5
6
7
8
9
10
./
├── HISTORY.md
├── LICENSE
├── Makefile
├── README.md
├── app
├── circle.yml
├── macaca-test
├── node_modules
└──  package .json
  • app:

    • 存放测试中使用到的app:ios-app-bootstrap.zip。
  • macaca-test:

    1
    2
    3
    4
    5
    ./
    ├── 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都干掉。

3. 运行第一个测试案例

1
macaca run --verbose

 

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



本文转自hyddd博客园博客,原文链接:http://www.cnblogs.com/hyddd/p/5571229.html,如需转载请自行联系原作者。

目录
相关文章
|
6月前
|
移动开发 前端开发 数据安全/隐私保护
iOS代码混淆-从入门到放弃
iOS代码混淆-从入门到放弃
69 0
|
存储 iOS开发
iOS 逆向编程(一)入门条件
iOS 逆向编程(一)入门条件
158 1
|
1月前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
81 7
|
3月前
|
开发工具 C语言 Swift
探索iOS开发之旅:从入门到精通
【8月更文挑战第30天】在这篇文章中,我们将一起踏上一场关于iOS开发的奇妙旅程。无论你是刚刚接触iOS开发的新手,还是希望提升自己技能的开发者,这篇文章都将为你提供有价值的指导和启示。我们将从基础的iOS开发概念开始,逐步深入到高级技巧和最佳实践。通过这篇文章,你将了解到如何构建一个成功的iOS应用程序,以及如何不断提升自己的开发技能。让我们一起开启这场探索之旅吧!
57 4
|
移动开发 前端开发 数据安全/隐私保护
iOS代码混淆-从入门到放弃
iOS代码混淆-从入门到放弃
173 0
|
缓存 JavaScript iOS开发
iOS 逆向编程(十四)Cycript 语法入门
iOS 逆向编程(十四)Cycript 语法入门
193 0
|
6月前
|
移动开发 前端开发 数据安全/隐私保护
iOS 代码混淆 - 从入门到放弃
iOS 代码混淆 - 从入门到放弃
|
移动开发 前端开发 数据安全/隐私保护
 iOS代码混淆-从入门到放弃
代码混淆可以对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加逆向工程的难度,从而有效保护应用程序的安全性,减少开发者的经济损失。
|
Linux Swift iOS开发
iOS 逆向编程(十九)Mach-O 入门了解(如何通过 Mach-O 逆向 APP 思路)
iOS 逆向编程(十九)Mach-O 入门了解(如何通过 Mach-O 逆向 APP 思路)
205 0
|
安全 iOS开发
iOS 逆向编程(二)越狱入门知识
iOS 逆向编程(二)越狱入门知识
212 0