MACACA自动化框架搭建

本文是基于Windows系统搭建macaca+python+Android框架的过程和踩坑记录(Linux的以后再研究),有兴趣的同学可以一起交流学习一下

macaca简介:

https://macacajs.github.io/zh/environment-setup

macaca是由阿里巴巴公司开发的一套自动化解决方案,开源地址:https://github.com/macacajs/

其适用于PC端和移动端

基本环境:

  1. JDK的安装及环境配置;(1.8)
  2. Node.js的安装及环境配置;(8+)
  3. android SDK安装及环境配置;(25+)
  4. gradle安装及环境配置;
  5. python环境配置;

JDK的安装及环境配置

java环境配置就略过了,不过要声明一点就是:最好使用Java8

因为Java9以上更新了不少特性,会后续导致Android SDK的配置出现各种问题,这里不描述Android SDK安装出现的问题。

Node.js的安装及环境配置

macaca由Node.js开发,所以需要安装Node.js

  1. 直接到官网下载稳定版本的msi包安装(8以上版本)
    坑:安装路径可以修改,但是保证一定不要有空格!
    巨坑:对于已经安装过Node.js的,请检查一下路径是否存在空格(一般默认路径是C:\Program Files\nodejs,Program Files之间就存在空格)
    安装完毕后可检查是否成功
  2. 配置Node.js
    在安装的文件夹X:\xxx\nodejs下创建两个文件夹"node_global"及"node_cache"


    配置npm安装的全局模块所在的路径,以及缓存cache的路径
    npm config set prefix "X:\xxx\nodejs\node_global"
    npm config set cache "X:\xxx\nodejs\node_cache"

    可用如下命令检查是否成功:
    npm config get prefix

    npm config get cache

  3. 添加PATH环境变量

    在【系统变量】下新建【NODE_PATH】,输入【X:\xxx\nodejs\node_global\node_modules】,
    在【用户变量】下的【Path】修改npm的路径为【X:\xxx\nodejs\node_global】

android SDK安装及环境配置

  1. http://tools.android-studio.org/index.php/sdk下载sdk manager,安装
    如果前面安装的是Java9以上,可能会出现无法定位JAVA_HOME,sdk manager一闪而过等情况
  2. 安装如下图工具:




    备注:
            a) Android SDK Build-tools一定要选择25.0.2版本,不然后续可能会出错
            b) 原本要求是使用API25的,但是我后续安装时却提示要用API26
  3. 配置Android SDK环境变量
    创建系统变量ANDROID_HOME,变量值:X:\xxx\sdk(以安装目录为准,确认里面有tools和add-ons等多个文件夹)
    PATH变量值的最后追加 ;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;
  4. 在cmd输入adb,android检查配置是否正常

gradle安装及环境配置

  1. https://gradle.org/releases/选择最新版本,点complete
  2. 在系统变量中添加"GRADLE_HOME"变量 C:\Gradle\gradle-4.6 (你的gradle根目录)
    在系统变量PATH中添加 %GRADLE_HOME%\bin;(你的gradle解压目录下的bin文件夹)
  3. cmd命令行窗口输入gradle -v,显示如下内容即可

python环境配置

python环境搭建略,macaca只支持Python3.4以上版本,本人使用的是python3.6

安装macaca相关

  1. macaca-cli 核心框架
    (cmd要以管理员模式打开,不然权限不够安装)
    安装命令:npm i macaca-cli -g 出现下图惊悚的猴子和成功提示就ok了
  2. 使用macaca doctor命令检查macaca环境

    出现的全是绿色就ok

    坑:
    *执行macaca doctor 时提示 Not accepted Android SDK license agreements
    创建一个.bat执行下列语句
    mkdir "%ANDROID_HOME%/licenses"
    echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%/licenses/android-sdk-license"
  3. 安装各种驱动(网上的教程基本都让换淘宝源,但是公司可以连外网,我实际使用时下载也不慢,所以可以直接npm)

    npm i macaca-electron -g (macaca-electron是基于Electron开发的Macaca驱动,是Macaca驱动之一)

    npm i macaca-chrome -g

    npm i webdriver-client -g

    npm i macaca-chromedriver -g

    python -m pip install wd

  4. 安装Android驱动(坑基本都在这里)
    npm i macaca-android -g
    安装请确保安装日志都时成功的,有问题从日志上还是比较好定位解决的(毕竟肯定有我没踩到的坑)
    安装成功后,请确保生成了两个apk文件,(我的路径是D:\nodejs\node_global\node_modules\macaca-android\node_modules\uiautomatorwd\app\build\outputs\apk)

    只要生成了以上两个apk基本就没问题了

    坑:
    *安装macaca时出现如下错误(Android SDK Build-tools 25.0.2的没找到截图)

    到Android SDK安装API26(安装Android SDK Build-tools 25.0.2)
  5. 安装inspector
    npm i app-inspector -g
    这个工具是用于定位元素的(据说iOS用不了),用Android SDK自带的uiautomatorviewer也可以定位(在sdk目录下的tools文件夹中)
    使用方法:
    a) 手机使用数据线连接电脑,打开USB调试,允许安装未知应用等一系列东西(最好设置成充电时不休眠)
    b) 确保电脑已经安装上手机的驱动
    c) adb devices -l 查看设备号

    d) 启动inspector命令:app-inspector -u 设备号

    e) 成功连接的话,手机会提示安装驱动模块,点击安装,成功后会自动打开页面

    里面就可以定位元素信息了,设备界面变化可以通过刷新浏览器重新获取界面信息

    坑:
    *出现Command failed: /Users/**/sdk/platform-tools/adb -s ** push /usr/local/lib/node_modules/macaca-android/node_modules/uiautomatorwd/app/build/outputs/apk/app-debug.apk /data/local/tmp/com.macaca.android.testing错误
    首先保证gradle已经成功安装,确认那两个apk存在如果,gradle安装没有问题
    卸载macaca-android 
    npm uninstall macaca-android
    npm uninstall app-inspector -g 
    npm cache clean
    同时可以清理下下载缓存目录:
    win10 在 C:\Users\xxx\AppData\Local\Temp 下 手动删除npm开头相关即可重新安装macaca-android
    或者删除手机内三个应用(这是macaca升级导致apk签名不一致问题,基本手机里不会有)
    android-unlock
    com.macaca.android.testing.test
    UiAutomator sample

    *部分手机(*小米要允许USB安装需要查入sim卡)在连接macaca时不会弹出驱动安装提示,超时以后会提示Error=Unable to find instrumentation info for: ComponentInfo{com.macaca.android.testing.test/android.support.test.runner.AndroidJUnitRunner}等错误,总之前面步骤都没做错,就换台手机试试

启动macaca服务

macaca server -p 3456 --verbose

-p指定端口 --verbose可以打印详细信息(坑都靠这个定位问题了)

然后就可以执行用例了

实例:

官方python示例:

https://github.com/macaca-sample/sample-python

根据以上搭建方法就可以跑通官方的用例了,但是我跑的官方用例的6的case里有一个failed了,不知道是不是还有环境(错误日志发现是web的case没跑过)没搭好

更多示例:

https://github.com/macaca-sample

社区:

TesterHome里有比较好的中文社区,上面的很多坑都能在里面找到解决方法,github上也能找到很多信息,不过鉴于macaca并不是特别热门,社区的活跃度不高,甚至网上的资料都比较少

社区连接:

https://testerhome.com/topics/node68

(当然有钉钉的可以加官方的钉钉群)(非常不活跃)

原文地址:https://www.cnblogs.com/dreamhighqiu/p/10996311.html

时间: 2024-07-31 10:10:12

MACACA自动化框架搭建的相关文章

Web自动化框架搭建——前言

1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这块,想提供建设性建议,是建立在业务场景.用户使用的深刻理解基础上,然后对产品目规划理解是否合理,提出自己的看法与想法:体验这块,一定要有一个比较全局的概念,换个意思说,就是应该站在产品经理的角度去看系统,看系统的各个子功能.各个子功能协调是否合理.是否还有更优建议.而不仅仅只局限一个界面.一个菜单.

appium+Java+testng自动化框架搭建-第一季

app自动化越来越火,随着移动app的不断发展,手机端测试日益火爆,想成为一个高级软件测试工程师必须要掌握,那么我们今天就来搭建appium+Java+testng自动化测试框架. Appium环境搭建(Windows版) 在网络上看到很多教程,今天安装了appium,把安装过程详细记录一遍,如下图: 我的电脑环境是win7 64位 注:appium安装到C盘,node.js安装到C盘 一.安装node.js 1.安装node.js nodejs 官网下载地址:https://nodejs.or

Selenium + python的自动化框架搭建

selenium是一个web的自动化测试工具,和其它的自动化工具相比来说其最主要的特色是跨平台.跨浏览器.支持windows.linux.MAC,支持ie.ff.safari.opera.chrome等.此外还有一个特色是支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能. 关于selenium的原理.架构.使用等可以参考其官网的资料,这里记录如何搭建一个使用python的selenium测试用例开发环境.其实用python来开发selenium的方法有2种:

Jenkins+ant+Jmeter接口自动化框架搭建

工具准备 JDK: jdk1.8.0_111 Ant: apache-ant-1.9.9 Jmeter: apache-jmeter-3.1 Jenkins: jenkins-2.7.4 JDK安装 安装JDK: 双击JDK安装包,选择安装路径,可以采取默认安装路径,也可以自定义安装路径,为了方便直接安装在默认路径下了.安装路径:C:\Program Files\Java\jdk1.8.0_111; 配置JDK环境变量: 系统变量→新建 JAVA_HOME 变量 变量值填写jdk的安装目录(本人

Web自动化框架搭建之二基于数据驱动应用简单实例~~

整体框架,先划分成细小功能模块~~,从最简单的开始,介绍 实现循环百度搜索实例: #coding=utf-8 '''Created on 2014??6??9?? @author: 小鱼'''import xlrdfrom selenium import webdriverimport time #excelFile文件物理地址 book=xlrd.open_workbook("E:\Users\Administrator\workspace\SeleniumTest\excelFile.xls

python+selenium自动化框架搭建入门到实用(一)-框架解决

1.整个框架目录如下: constant:存放一些常量,比如测试的url,以及一些公关方法需要用到的元素: errorpicture:用于存放自动运行过程中的错误截图: framework:用于存放一些基础的类及方法: pages:用于存放PageObject的页面类: publicmethod:用于存放一些公关方法: question:用于存放开发过程中遇到的一些问题,以及框架目前需要优化的地方: report:存放测试报告: resource:存放测试数据: testmethods:存放测试

appium+python自动化框架搭建

一.需要安装软件 1.jdk1.6.0 (64位) 2.android-sdk-windows 3.python:2.7(3.6也可以) 4.appium:1.4.13.1 5.Node.js:node-v4.4.7-x64 6.Appium-Python-Client 二.jdk安装 1.下载jdk包,小编的是64位1.6版本,其它高级版本应该也是可以的.根据自己的系统选择对应版本 2.一路傻瓜式安装,注意安装路径不要有空格,不要有中文.jdk和jre不要放在一个文件夹下 3.设置三个环境变量

glup自动化框架的搭建

自动化框架的搭建:https://github.com/zjhsd2007/www 屏蔽掉的部分是Test(文件夹的目录 也是你的项目名称);本地项目启动后 配合sass,会自动启动浏览器,然后好处多多,比如我在编辑器中修改了代码页面就自动刷新了,可以马上看到效果;偶的Ctrl+f5键不用在担心了,不过网页有时有缓存需要自己再手动刷新一下,总体来说比较好用!

3分钟手把手带你搭建基于selenium的自动化框架

1 .什么是seleniumSelenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览