• #12 楼 @zxc80729 安卓的 sdk manager 下载下较大版本的 android sdk 啊 API 22 以上的. 推荐你直接用 Genymotion 模拟器.

  • #9 楼 @zxc80729 https://testerhome.com/topics/5754 不行的话 你尝试下该篇的 cnpm 方式.

  • https://testerhome.com/topics/5754
    该作者也可以参考下.
    我通过

    porps.put("package", "com.***.main");//appPackage   
    porps.put("activity", ".***");//aappActivity 
    

    的方式 发现并不可以 .不知道为什么,理论上应该是可以的 要么是我没找对包名和启动类名.要么是哪里没弄对.大家也可以试下这种方式.

    重新利用 adb logcat 找了下 包和启动类名 替换后是可以的

  • 1 服务下载组件卡了,你就去看 npm cache 文件夹 倒叙排列 刷新 看是否还有新文件下载 ,最近两个文件时间相隔太久了 ,比如都 10 分钟了 都没新文件生成,那 89 不离十是卡了 你就 ctrl+c 停掉 再反复尝试. 有时候有耐心一点 多等会儿.
    安装成功的标志是,一大坨结构目录树看到这个才算真正安装成功。有时候由于服务镜像问题,是相当漫长的下载过程的。

    2 如果报的是检查 校验 组件包 什么之类的依赖错误

    你就 npm cache clean 清理干净 , 还有那个 C:\Users\your name\AppData\Local\Temp 目录 npm 相关都删掉

    再反复尝试

    3 找个好点的网络环境 要么 *** 要么番羽墙 尽量用国内的 淘宝镜像源http://registry.npm.taobao.org

    4 如果安装完还是有执行脚本问题 先确定不是脚本的错。然后 npm unistall macaca-chrome -g

    再 npm cache clean 清理掉相关下载缓存 或者怕不放心
    C:\Users\your name\AppData\Local\Temp 目录 npm 相关都删掉
    然后 在全新安装
    我能遇到的都总结给你们了.再出现神马奇怪的问题 自己先判断下仔细看日志.

  • @ycwdaaaa
    给作者个赞 支持这句:"没有想法,很多人是在别人的路上重复干着别人重复造过 N 轮的轮子,对测试这个概念没有自己的理解,没有自己的一套体系,没有总结出自己的一套方法论"

  • #23 楼 @amber_cheng https://github.com/alibaba/macaca/issues/103 是个 bug 你看 API https://macacajs.github.io/macaca-wd/api/#takeScreenshot 没有什么可传递参数。需要 macaca 修复。

  • 统一回复
    你们仔细看下, 就两类问题,
    1 服务下载组件卡了,你就去看 npm cache 文件夹 倒叙排列 刷新 看是否还有新文件下载 ,最近两个文件时间相隔太久了 ,比如都 10 分钟了 都没新文件生成,那 89 不离十是卡了 你就 ctrl+c 停掉 再反复尝试. 有时候有耐心一点 多等会儿.

    2 如果报的是检查 校验 组件包 什么之类的依赖错误

    你就 npm cache clean 清理干净 , 还有那个 C:\Users\your name\AppData\Local\Temp 目录 npm 相关都删掉

    再反复尝试

    3 找个好点的网络环境 要么 *** 要么番羽墙 尽量用国内的 淘宝镜像源http://registry.npm.taobao.org

    4 不行用 cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    cnpm i macaca-cli -g

    我能遇到的都总结给你们了.再出现神马奇怪的问题 自己先判断下仔细看日志.

  • #16 楼 @mikezhou 你看下日志已经提示你了. 要不你试试 遇到类似问题的话,去清理下你的 C:\Users\yourname\AppData\Local\Temp 目录 npm 相关的。
    然后再执行 npm cache clean 然后在执行试试. 详细见 4 楼的回复.


  • 今天修复了 win10 下 macaca doctor 检查命令 驱动检查列显示的 bug 。感谢 macaca 团队。

  • @tsj1107 请问 想 ios 手机真机跑。
    xdf @xudafeng 4 月 19 10:43
    不需要越狱,需要你的 app 和https://github.com/xudafeng/webdriveragent 这两个地方都是用你本地的签名,就可以跑了。

    请问 怎么设置这两个地方的签名。。。没弄过求教程。。。


  • 经过不懈的研究琢磨,尝试。终于摸清 webstorm 是在此处添加语法提示插件。
    但是在此处搜索 macaca 发现该地址并未提供语法插件支持,https://github.com/DefinitelyTyped/DefinitelyTyped
    直接去也搜不到 macaca 到是搜到了 mocha 和 webdriverio 。

    并且我们看到,mocha 支持的 after 框架语法,找到了语法提示文件 ***.mocha.d.ts.

    希望 macaca 项目也能支持 语法提示插件啊。

  • 遇到的这个问题,咨询作者说是 devtool 工具的问题。已经提了 issue
    https://github.com/alibaba/macaca/issues/97

    也希望 macaca 团队能重视下。对于国内大多数公司的非测试开发人员来说,稍微有些运维和开发的弄这个确实遇到好多问题。
    1 希望能把教程分平台环境写, 比如 win10 linux mac。这样才算真正的跨平台支持。
    2 希望针对用例脚本的书写 再多些分享。比如 这篇就很不错。但引用到的技术也是相当多概念的。对于希望深入的使用者还是有难度的。
    3 希望能添加下 对 IDE 工具,macaca 语法提示插件的支持,比如 webstorm。

  • npm i macaca-android -g 这样升级吗?

    为什么不支持 npm update 语法的升级方式.

  • Macaca-iOS 入门那些事 2 at 2016年07月28日

    这么好的分析 macaca 脚本构成的文章居然没回帖。我鼓捣好环境跑通样例了,现在要自己写了,这篇文章还是很大帮助的。
    好多概念啊 BDD promise 异步模式 mochajs 框架。。。。 我只想写个用例脚本而已

  • @ziczhu

    按照你的步骤执行到这里,报错了 没找到 webdriver-client。。。请问该如何解决

  • @ziczhu devtool 不支持 win10 平台环境吗? 还是我安装没成功

    D:\macaca\macaca-desktop-browser>npm i devtool -g
    D:\nodejs\node-global\devtool -> D:\nodejs\node-global\node_modules\devtool\bin\index.js
    D:\nodejs\node-global
    `-- devtool@2.0.3

    npm WARN optional Skipping failed optional dependency /devtool/chokidar/fsevents:
    npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14

    D:\macaca\macaca-desktop-browser>devtool
    fs.js:549
    return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
    ^

    Error: ENOENT: no such file or directory, open 'D:\nodejs\node-global\node_modules\devtool\node_modules\electron-prebuilt\path.txt'
    at Error (native)
    at Object.fs.openSync (fs.js:549:18)
    at Object.fs.readFileSync (fs.js:397:15)
    at Object. (D:\nodejs\node-global\node_modules\devtool\node_modules\electron-prebuilt\index.js:4:42)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)

    sorry 自己又鼓捣好了。是假性安装成功,实际并没有安装成功。
    假性安装成功的日志如下:
    npm i devtool -g
    D:\nodejs\node-global\devtool -> D:\nodejs\node-global\node_modules\devtool\bin\index.js
    D:\nodejs\node-global
    `-- devtool@2.0.3

    npm WARN optional Skipping failed optional dependency /devtool/chokidar/fsevents:
    npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14

    记得每次 卡进度 ctrl+c 结束掉后 upm uninstall devtool -g 一下。 否则下次再执行 npm i devtool -g 会假性安装成功 实际运行 devtool 又会报错。

    总是卡进度,没办法换下安装源头
    C:\Users\cmd>npm config get registry
    http://registry.cnpmjs.org/

    C:\Users\cmd>npm config set registry http://registry.npm.taobao.org

    C:\Users\cmd>npm config get registry
    http://registry.npm.taobao.org/

    C:\Users\cmd>npm i devtool -g
    D:\nodejs\node-global\devtool -> D:\nodejs\node-global\node_modules\devtool\bin\index.js

    electron-prebuilt@1.1.1 postinstall D:\nodejs\node-global\node_modules\devtool\node_modules\electron-prebuilt
    node install.js

    Downloading electron-v1.1.1-win32-x64.zip
    [============================================>] 100.0% of 51.47 MB (2.39 MB/s)
    D:\nodejs\node-global
    -- devtool@2.0.3
    +-- browser-resolve@1.11.2
    |
    -- resolve@1.1.7
    +-- chokidar@1.6.0
    | +-- anymatch@1.3.0
    | | +-- arrify@1.0.1
    | | `-- micromatch@2.3.11
    | | +-- arr-diff@2.0.0
    略掉以下

    这样看到依赖组件目录树了 才算真正安装成功。

  • @tsj1107 大神,用什么 IDE 工具去编写 macaca 用例脚本啊? 就是能直接. 点出来 API 接口语法的那种。
    JetBrains WebStorm 我用这个,然后打开示例项目,点出来的是 mocha 的 API 啊。

  • #6 楼 @bingbing 你这个 win 环境下 保存图片的问题解决了吗?

  • win10 跑 android 的时候报了些错,看了下
    Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "D:\Android\android-sdk-windows/platform-tools/adb -s 192.168.236.101:5555 pull /data/local/tmp/screenshot.png C:\Users\cmd\AppData\Local\Temp\macaca-android-screenshot116625-7964-l8nsrc.png"

    at ChildProcess.exithandler (child_process.js:213:12)
    at emitTwo (events.js:87:13)
    at ChildProcess.emit (events.js:172:7)
    at maybeClose (internal/child_process.js:827:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

    1) #2 should display home

    类似的一共有三处,应该是保存路径和 win10 环境不匹配的问题。

  • cmd@TR:~$ adb devices -l
    List of devices attached
    192.168.56.101:5555 device product:vbox86p model:Samsung_Galaxy_S6_5_1_0API_22__1440x2560 device:vbox86p

    先启动个 genymotion 安卓虚拟机或 AVD 虚拟机也可

    make test-android 也可以跑啊.没毛病.

  • #7 楼 @tt33025515 看日志应该是 样例脚本跑到一半报的 好像是 chromedriver 报错了. 这个 macaca-chrome 安装成功了吗?
    安装后仔细看下日志有没有警告或报错之类的.

  • #8 楼 @jieliu
    补充:如果网络不好的话,npm install 出来的安装进度指示,看不出是否还再下载了,你可以到你配置的 node-cache 目录 来观察,看文件创建日期等信息,来看是否有新文件在下载中.有时候是很慢的,卡住了.停掉命令 再来一遍就行了.最后安装成功会有一坨的日志输出,尤其是那个层级目录树很是醒目.


  • 遇到类似问题的话,去清理下你的 C:\Users\cmd\AppData\Local\Temp 目录 npm 相关的。
    然后再执行 npm cache clean 这时会报一些错,不过实际你的 node-cache 已经清理干净了,并且还删除掉了 node-cache。
    你就需要再手动创建文件夹 node-cache.貌似不自己主动创建也可以,命令会自动根据你的 npm config 自行创建的.

    补充:如果网络不好的话,npm install 出来的安装进度指示,看不出是否还再下载了,你可以到你配置的 node-cache 目录 来观察,看文件创建日期等来看是否有新文件在下载中.

  • npm i macaca-android -g
    npm i macaca-chrome -g 也都安装了

    cmd@cmd-PC MINGW64 /d/macaca/macaca-test-sample-master/macaca-test
    $ macaca run -d /d/macaca/macaca-test-sample-master/macaca-test/macaca-desktop-sample.test.js --verbose

    index.js:17:12 [master] pid:13924 webdriver server start with config:
    { port: 3456,
    window: true,
    ip: '169.254.166.89',
    host: 'cmd-PC',
    loaded_time: '2016-07-21 10:32:54' }
    middlewares.js:17:10 [master] pid:13924 base middlewares attached
    router.js:108:10 [master] pid:13924 router set
    webdriver sdk launched
    module.js:327
    throw err;
    ^

    Error: Cannot find module 'webdriver-client'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object. (D:\macaca\macaca-test-sample-master\macaca-test\macaca-desktop-sample.test.js:3:10)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at D:\nodejs\node-global\node_modules\macaca-cli\node_modules\mocha\lib\mocha.js:219:27
    at Array.forEach (native)
    at Mocha.loadFiles (D:\nodejs\node-global\node_modules\macaca-cli\node_modules\mocha\lib\mocha.js:216:14)
    at Mocha.run (D:\nodejs\node-global\node_modules\macaca-cli\node_modules\mocha\lib\mocha.js:468:10)
    at Object. (D:\nodejs\node-global\node_modules\macaca-cli\node_modules\mocha\bin_mocha:403:18)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3

    Test completed!

    我看了下 macaca-desktop-sample.test.js 文件里是
    var wd = require('webdriver-client')({
    platformName: 'desktop',
    browserName: 'electron'

    我是否要改成 browserName: 'chrome'

    同时改文件 D:\macaca\macaca-test-sample-master.travis.yml 内容为
    language: node_js
    sudo: required
    node_js:

    • "4" dist: trusty addons: apt: sources:
      • google-chrome packages:
      • google-chrome-stable
      • xvfb before_install:
      • export DISPLAY=:99.0
      • sh -e /etc/init.d/xvfb start