自动化测试框架 —— Macaca 的环境配置及简单使用

本文在完全参考官方使用指南的前提下,进行环境搭建、demo的运行以及自己项目的配置,测试脚本语言使用的是 Python。其实,认真按照 Macaca 官方指南进行环境配置,是不会出错的。

下面开始直奔主题,Macaca 的介绍再此不多赘述了,套用官方的一句话介绍就是遵从标准的多端自动化测试,大部分人关心的是如何搭建环境和如何使用。

⚠️ 要有足够的耐心,否则是会被逼疯的,这期间头发少了很多。

背景:Mac、Xcode10、iOS、Python

环境配置

安装 Node.js

请先安装 Homebrew(一款常用的 MacOS 的包管理器),按照官网提示安装即可。

$ brew install node

过程是漫长的,耐心等待……

配置 iOS 环境(包括真机)

这一过程完全参照官方指南即可,没有什么可说的。
安装 usbmuxd 以便于通过 USB 通道测试 iOS 真机

$ brew install usbmuxd

安装 ideviceinstaller 用来给真机安装 App

$ brew install ideviceinstaller

应用中如含有 WebView,请安装 ios-webkit-debug-proxy

$ brew install ios-webkit-debug-proxy

安装 macaca-ios 驱动

# 本地安装
$ npm i macaca-ios --save-dev
# 全局安装(如果需要测试真机,最好安装有 TEAM_ID 的 macaca-ios,下面会讲)
$ npm i macaca-ios -g

关于 iOS 真机环境,需要明白两个概念:
Macaca 依赖 macaca-ios,而 macaca-ios 依赖安装到真机的 XCTestWD,所以要确保 Macaca 最终调用的 XCTestWD 是安装到真机上的 XCTestWD
iOS 真机上的 XCTestWD 需要签名( TEAM_ID ),且和被测试的 App 一样。
解释一下,就是如果你想测试,你的真机(模拟器也一样)上会先安装一个 XCTestWDUITest,但真机上 Test 的签名必须和你要测试的App签名一致。
在这里插入图片描述
手机(模拟器)上会有这么一个东西。
那么如何安装 XCTestWD,其实安装 macaca-ios 时是可以自动配置 XCTestWD 的,而且官方也是推荐这种自动配置的。
自动配置 XCTestWD 就是在安装 macaca-ios 的过程中将 TEAM_ID 通过环境变量传入即可,XCTestWD 会自动使用该 TEAM_ID(这一步真是坑死我了,卡在这一天,讲到 app-inspector 安装时会说)。

# 卸载之前安装的 macaca-ios
$ npm uninstall -g macaca-ios

# 安装有 TEAM_ID 的 macaca-ios
$ DEVELOPMENT_TEAM_ID=YOUR_TEAM_ID npm i macaca-ios -g

关于 TEAM_ID 如何获取
自动化测试框架 —— Macaca 的环境配置及简单使用_第1张图片
如果要手动配置 XCTestWD 可以自行参考官方使用指南。

配置 Android 环境

笔者为 iOS 开发,所以没有过多关注 Android 环境的相关配置,你可以参考官方使用指南进行配置,笔者就参照官方使用指南进行配置,并且配置成功。

安装命令行工具

# 全局安装
$ npm i -g macaca-cli

安装成功后,可以看到如下可爱的?,重新安装则会覆盖更新。
自动化测试框架 —— Macaca 的环境配置及简单使用_第2张图片

环境检查

通过 macaca doctor 可以检查环境是否配置成功。

$ macaca doctor

如下图所示则表示环境配置正常,如果有标红提示,则需要对应处理(如何处理请自行百度,你遇到的问题度娘上基本都可以找到)。
自动化测试框架 —— Macaca 的环境配置及简单使用_第3张图片

准备 App 包

iOS 应用,请使用 Scheme 设置为 debug 的 .app 包。
如何获取 .app 包:
自动化测试框架 —— Macaca 的环境配置及简单使用_第4张图片
自动化测试框架 —— Macaca 的环境配置及简单使用_第5张图片
iphoneos 文件夹中的 .app 包用于真机测试,iphonesimulator 文件夹中的 .app 包用于模拟器测试。
Android 应用,请使用 .apk 格式的包。

安装 app-inspector

app-inspector 是浏览器端的移动设备 UI 查看器,使用树状结构查看 UI 布局,自动生成 xpath。

# 直接安装
$ npm i app-inspector -g

# 也可以直接配置 TEAM_ID 
$ DEVELOPMENT_TEAM_ID=YOUR_TEAM_ID npm i app-inspector -g

使用

$ app-inspector -u YOUR_DEVICE_UDID

就是这一步,出了一个问题,当时也没仔细看报错原因,卡在这一天,没有截图,大概说一下问题,每次运行就提示我 TEAM_ID 错误,可是明明是自动配置,但其实这种错误就是没有配置成功,只需要根据错误提示所给的路径,去到该路径下,打开 XCTestWD 项目,手动配置一下即可。

运行测试脚本

此处对如何写测试脚本,不过多讲解,主要是在初始配置上的一些问题做些解释。
自动化测试框架 —— Macaca 的环境配置及简单使用_第6张图片
iOS 系统,测试脚本中的一些初始配置,如果是真机,主要需要配置的就是 platformName、app(.app 包的路径)、udid。.app 包的路径一定要写对,而且真机和模拟器的包是不一样的。

# 起服务
$ macaca server --verbose

# 再打开一个终端,运行测试脚本
$ python3 tests/ios-test.py

参考文档

官方网站
国内社区:

  • Testerhome
  • Cnodejs

注:大部分问题在 Testerhome 可查到解决方案。

你可能感兴趣的:(自动化测试框架 —— Macaca 的环境配置及简单使用)