Macaca [基于 Node.js 的自动化测试 Macaca] - 使用 Macaca 录制器录制脚本

达峰的夏天 · 2016年10月26日 · 最后由 伟伟 回复于 2021年09月14日 · 4103 次阅读

上一篇 - 如何选择其他测试框架

Macaca 脚本录制工具发布,录制器与inspector理念一致,都是跨多端支持,同时支持 iOS, Android, PC 端的脚本录制,将脚本生成的成本降到最低,生成的脚本可以通过 Macaca 工具直接运行。

录制器由 uirecorder 作者 yaniswang 开发

安装

$ cnpm i uirecorder@beta -g
$ uirecorder --version 可以看到已经安装的版本

注:目前是 beta 阶段,功能已经完整会持续完善细节体验

录制一段脚本

# 开启 Macaca cli 的 server 服务
$ macaca server --port 4444 --verbose
# 初始化 uirecorder 配置
$ uirecorder init --mobile
Webdriver host or ip 127.0.0.1
Webdriver port 4444
config.json file saved
$ npm install jwebdriver chai faker --save-dev
$ uirecorder start --mobile

运行脚本

如何回放我们录制的脚本呢?

$ mocha test.spec.js

尚待完善

  • 支持多语言模块 (衔接已有 macaca-wd, wd.java)
  • iOS 运行速度慢

相关链接


欢迎讨论,互相学习。

微博: http://weibo.com/xudafeng
Github: https://github.com/xudafeng

下一篇,还在写

共收到 22 条回复 时间 点赞
达峰的夏天 [该话题已被删除] 中提及了此贴 10月26日 18:12

关注下

关注,too

关注下

顺便把支持 appium 的脚本也做了就更好了.


达峰,请问我在执行安装的时候遇到了这个问题,是什么原因呢

#6 楼 @zhengzheng 用这句倒是可以装起来 npm i uirecorder -g


请问一下,我执行命令 uirecorder start --mobile,然后出来一个 app 路径扩展名,输什么进去都不对。请教一下,这里是代表了什么呀?

我搞错了,这个是让我输入我本地下载 apk 或者 app 的路径。

然后又出错了,我打开一个 cmd 窗口输入命令 macaca server --port 4444 --verbose,然后另外新起一个 cmd 命令窗口,执行命令 uirecorder start --mobile。然后就不知道为什么报错了?

求教一下。可不可以写一个很详细的 macaca 启动模拟器或者是真机的案例教程呀。

#10 楼 @xdf 这个是我把我自己的搭建步骤记录下来了。但是最后一步用 sample 调用模拟器或者真机,没有成功额。不知道要怎么样才能调真机。

npm install jwebdriver chai faker --save-dev 安装不上,这一步是必须的吗?

如果省略 “npm install jwebdriver chai faker --save-dev”,其余按照步骤执行,输入命令:“uirecorder start --mobile”
出现这样的错误:
Recorder server listen on: 9765
Mobile open failed, please check macaca config. Internal Server Error

? 测试脚本文件名: test.js
? App 路径 (扩展名: apk, app, zip): /Users/simon/Downloads/test_development.ipa.zip
? App 平台: iOS

录制服务器监听在端口: 9765
录制浏览器已开启
手机打开失败,请检查 macaca 是否配置正确? { [Error: socket hang up] code: 'ECONNRESET' }

我的提示这样,是什么问题?
还有我的开发包的.ipa 的,我是通过压缩得到 test_development.ipa.zip 因为我暂时拿不到 app 这样的做法会报错吗?

达峰的夏天 Macaca App Inspector 原理解析 中提及了此贴 06月03日 23:30

Macaca 录制器实现原理 https://testerhome.com/topics/8901

我也遇到了下面的错误,
手机打开失败,请检查 macaca 是否配置正确? Internal Server Error

请问下大家都怎么处理的呢?

? 测试脚本文件名: sample/test.spec.js
? App 路径 (扩展名: apk, app, zip): D:\soft\hxb_ydyw_Android.apk

录制服务器监听在端口: 9765
手机打开失败,请检查 macaca 是否配置正确? The best matching driver provider org.openqa.selenium.ie.InternetExplorerDriver can't create a new driver instance for Capabilities [{app=D:\soft\hxb_ydyw_Android.apk, platformName=Android, udid=2ba15c9a}]
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'LAPTOP-S28TBC8C', ip: '192.168.1.113', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: unknown

请问大家该怎么处理呢?

wangl 回复

请问你解决了吗这个问题

楼主,请教一个问题,在用 uirecorder 录制 Android 手机的时候,会一直卡在浏览器打开的界面,看起来是加载 chrome 的扩展程序加载错误了,请教下怎么解决?详细信息:
mac 系统
uirecorder 版本:v2.5.40
chrome 版本:65.0.3325.181(正式版本)
停止的界面:

在命令上加上--debug 后:

天晓 回复

已经通过降低版本解决

罗晓霞 回复

请问这个问题解决了吗

各位大大,这可能什么情况呢
Failed to compile.
./node_modules/uirecorder/lib/start.js
Module parse failed: Unexpected token (1770:20)
You may need an appropriate loader to handle this file type.
| if (configJson.webdriver.chromeOptions && configJson.webdriver.chromeOptions.mobileEmulation) {
| capabilities.chromeOptions = {
| ...capabilities.chromeOptions,
| mobileEmulation: configJson.webdriver.chromeOptions.mobileEmulation,
| }
 @ ./node_modules/uirecorder/index.js 2:20-45
 @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/views/Home.vue
 @ ./src/views/Home.vue
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8076 webpack/hot/dev-server ./src/main.js

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册