Macaca实战之一:环境搭建(亲测好用)
1、Appium && Macaca对比
1.1、周边工具支持
相对Appium,Macaca提供了更加全面的周边工具支持,这其中包含可持续集成平台Reliable,元素查找工具app-inspector,脚本录制工具UI-Recorder等。
Reliable持续集成平台可以帮助我们进行用例的管理以及任务的调度,对于UI自动化,只有当他成为一种规范化的程式定期的触发与执行,这样才能发挥他的作用,因此,一个持续集成系统对于自动化的长期发展是必不可少的,而Appium并没有提供这套系统,这意味着我们需要从无到有的搭建自己的一套持续集成环境,这个投入无疑也是巨大的。
app-inspector 元素查找工具,极大的方便了控件的查找以及定位。
UI-Recorder脚本录制工具可以快速的通过录制得到脚本,方便新手入门。
具体的使用可以参考官方网站,都有详细的介绍。
1.2、轻量
从功能上来讲,Appium较Macaca是有优势的,Appium已经发展了多年,积累了很多经验,但是也造成了一些尾大不掉的毛病。以对安卓API版本的支持为例,Appium支持所有的安卓API版本,而Macaca只支持API>17(相当于Android4.2系统)的版本,这个跟两者的底层原理有关,Macaca对于安卓的支持是基于安卓sdk的UIAutomator框架,而这个框架是从API 17开始支持的,Appium从最早的安卓开始,对于API 17以上的版本,Appium与Macaca一样是基于UIAutomator的,对于API 17以下的版本,Appium则基于老的instrument,对于这部分的支持,还引入了Selendroid。但是从应用的角度讲,Android7已经发行,4.2系统以下的设备占比不大,我们不希望为了支持这部分少量的机型而增加自己在自动化上的工作量。简单来讲,大而全的并不一定是最好的,关键是找到适合自己的。
1.3、社区活跃,中文文档丰富
Macaca是由阿里集团开源的框架,官方网站提供了中文版以及英文版双语文档,虽然对于开发者而言,阅读英文文档的能力是必须的,但是中文文档的提供无疑能帮助很多基础相对薄弱的同学快速入门。此外,Macaca团队还提供了用于技术交流的微信群以及钉钉群,当遇到问题的时候可以方便的联系到主创团队的相关同学,这无疑也能给大家带来很大的方便。
1.4、平台更丰富
虽然Macaca和Appium同时都支持PC与移动端,但是Macaca新增了对于Electron应用的支持,这个是其他框架都不具备的,虽然作为一个Node.js小白我没有接触过相关的应用,但是相信对Electron的开发者以及测试同学来说,这是一个不错的选择。
1.5、API的统一性
研究过Appium的官方API,以java-client为例,针对iOS和安卓,控件以及Driver等类别都根据平台不同而不一样,对于控件,有AndroidElement,IOSElement,对于Driver,有AndroidDriver,IOSDriver,如果我们的用例要支持多平台,就需要处理多种平台不一致性,但Macaca从底层上就没有区分iOS与安卓,基本上除了各自系统特有的几个API以外都可以通过一个统一的API支持,这就方便了很多。
2、环境搭建
2.1、公共部分
2.1.1、安装homebrew
(https://brew.sh/?spm=a2c4e.11153940.blogcont178872.16.3a1b3a20JasmKw)
命令行中输入:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.1.2、安装node.js
命令行中输入:
brew install node 安装node
brew update node 如果之前已安装成功,需要更新的话,更新node
node -v 安装完成后,检查是否安装成功
2.1.3、安装cnpm
npm是node.js的包管理工具,可以用他来安装和更新各种node的package,npm的下载速度比较慢,可以使用阿里巴巴提供的cnpm,加快了包的下载速度
命令行中输入:
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm -v 检查cnpm是否安装成功
如果安装过程中提示permission权限相关错误,可以尝试$sudo chown -R $USER/usr/local
2.1.4、安装chrome
去中文官网下载,安装,设置成为默认浏览器
2.2、Android环境
2.2.1、安装JDK【支持JDK1.8及以上】
JDK的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载后直接安装
2.2.2、安装android studio(暂时可以跳过,不用安装)
安装完成后,不要安装任何插件。
2.2.3、安装SDK
下载地址:https://www.androiddevtools.cn/
解压后,进入到路径
cd /Users/tools/android-sdk-macosx/tools./android
一般都是选择默认的就可以了
2.2.4、安装gradle
gradle需要手动安装,命令安装容易报错。版本不能选择最新的,否则报错无解。
下载:gradle-4.6-all.zip,直接解压,免安装
下载地址:http://services.gradle.org/distributions/
2.2.5、设置JDK,SDK,GRADLE环境变量
unix:bin bin$ cd ~ #进入到 ~ 目录,必须要在这个目录下unix:~ bin$ touch .bash_profile #如果.bash_profile不存在则创建这个文件unix:~ bin$ vim .bash_profile #使用vi编辑器编辑 .bash_profile文件
然后输入 i ,在vi编辑器里面输入 i 的意思是开始编辑。
vi编辑器里面的内容如下:
#路径参考自己的电脑
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
export ANDROID_HOME=/Users/mac/develop/androidSDK
export GRADLE_HOME=/Users/mac/develop/gradle-4.1
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PATH=$PATH:$GRADLE_HOME/bin
完成后,保存.bash_profile
最后生效环境变量
source .bash_profile
2.2.6、试验 macaca android环境
cnpm i macaca-android -g #安装Android驱动cnpm i macaca-ios -g #顺带安装上iOS驱动cnpm i macaca-chrome -g #顺带安装上Chrome驱动cnpm i macaca-electron -g #安装测试驱动模块cnpm i app-inspector@2 -g #安装元素查看器cnpm i -g macaca-cli #安装macacamacaca doctor #检查是否安装成功
以下说明,android环境完成了。
执行命令:
adb devices #获取android手机的device,需要打开发开者调试模式app-inspector -u 手机的devices --verbose
自动跳转到页面,说明安装成功。
2.3 、安装IOS环境
如果出现如下错误:
如果提示:Permission denied
试着切换到root用户,执行chmod + x /usr/local
然后再切换到普通用户,su - 用户名
再次执行命令,然后还是报错。
输入 brew link carthage ,报错如下
这时候用下面的命令,问题解决:
brew uninstall carthage
brew update
brew upgrade
brew cleanup
brew install carthage
sudo chown -R $(whoami) /usr/local
brew link --overwrite carthage
brew install carthage
2.3.1、app store下载Xcode9.3以上版本
2.3.2、 安装xcode Command Line Tools
打开Xcode,启动终端,输入:
xcode-select --install
2.3.3、 安装usbmuxd
以便于通过usb通道测试ios真机
brew install usbmuxd
2.3.4、安装ios-webkit-debug-proxy
以便于测试app中的webview
brew install ios-webkit-debug-proxy
添加环境变量
export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
2.3.5、安装carthage
用来构建macacaXCTesyWD
brew install carthage
2.3.6、安装ideviceinstaller、ios-deploy
用来给真机安装App
brew install ideviceinstallerbrew install ios-deploy
2.3.7、安装IOS app-inspector
手机连上itunes,获取udid=***************************
2.3.8、调试IOS真机
找到app-inspector的安装目录,我的是/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD。
执行open XCTestWD.xcodeproj命令
添加开发这账号,并修改Bundle Identifier,共6个地方,如下
修改完成后,选择你的真机,运行构建,如下
运行成功后,在手机上进行安装,如下
此时手机安装了一个APP。
拿到证书签名
执行命令:
DEVELOPMENT_TEAM_ID=R565DTM cnpm i app-inspector -g
安装完成后,重新修改上面的6项改动
重新RUN和test,这时可以关闭XCODE了
然后执行命令:
app-inspector -u ************* --verbose(*是你的udid,通过iTunes获得),后自动打开chrome浏览器,记得提前安装好浏览器,并设置为默认浏览器。
如果想看到时时的日志,所以在上面命令后面加上--verbose
命令执行后,在手机点击信任,解锁。
如果发生报错如下,重启终端:
出现下面的界面,表示成功。
Macaca实战之一:环境搭建(亲测好用)相关推荐
- windows10+虚拟机(VMware12.5)+乌班图(ubuntu-18.04.4)+Qt(5.13.2)环境搭建亲测有效
环境搭建 1.windows10下载虚拟机VMware12.5 2.乌班图(ubuntu-18.04.4) 3.安装VMwareTools 4.Qt安装 5.Qt安装后环境配置 6.Qt无法正常使用的 ...
- android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
[技术分享]Android内核漏洞利用技术实战:环境搭建&栈溢出实战 2017-08-14 16:22:02 阅读:0次 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn ...
- sublime配置java编译运行环境(亲测有效)
sublime配置java编译运行环境(亲测有效) 对Java新手而言用eclipse进行一些简单的Java程序的编译与运行其实是比较麻烦的,也是没有必要的,用VS code的话会有很多warning ...
- React Native从入门到实战--开发环境搭建
前言: 从今天起开启一门全新的课程学习,就是React Native,远在18年https://www.cnblogs.com/webor2006/p/9350428.html其实当时就已经做过开篇, ...
- mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6
@[TOC](mongodb生成自签名证书以及配置SSL(亲测有效) 版本-5.0.6 一直以来都是向大神学习,今天也做回大神分享,哈哈!!几个小时的努力不算白费. 一.自签名证书生成 1.生成根证书 ...
- 大数据实战之环境搭建(七)
本节我给大家测试一下Linux环境的Solr,通过增删改查的实例demo看看Solr环境是否已经OK.记得有哥们留言,问到只看见Solr和Cassandra的单独环境搭建,却不见它们的协同.我想说这两 ...
- ElasticSearch探索之路(六)实战:环境搭建、REST、CRUD、Search
文章目录 环境搭建 搭建Elasticsearch环境 搭建Kibana环境 基本操作 RESTful CRUD 创建索引 插入文档 查询文档 更新文档 删除文档和索引 Search 查询方式 URL ...
- Elastic Stack核心技术实战01--Elasticsearch环境搭建与基础入门
相信大家对于ELK并不陌生吧,大家在工作中一定都接触过Elasticsearch这个搜索引擎,ELK技术栈就是Elasticsearch和Logstash以及Kibana三个组件共同组成的,但是随着后 ...
- k8s集群搭建(亲测有效)
环境准备 集群数量此次使用3台CentOS 7系列机器 节点名称 节点IP k8s-master01 192.168.0.150 k8s-node01 192.168.0.151 k8s-node02 ...
- Java_Web实战(一) --环境搭建
一.准备工具 MySQL.eclipse.tomcat 二.MySQL 安装好mysql后,记录好用户名和密码. 本人mysql 用户名:root 密码:sa 启动mysql服务:net start ...
最新文章
- MATLAB加入螺旋相位板调制,平板式螺旋相位板的设计与应用
- 活用这23种图表,让你的数据分析胜人一筹 | 推荐收藏
- 约翰诺曼超级计算机研究中心,第433章 拉泽尔松教授的决定_学霸的黑科技系统_晨星LL作品_du00...
- STM32H743+CubeMX-QSPI读写外部FLASH(W25Q128JVSQ)
- 加强计算机网络应用,加强计算机网络管理技术的创新应用
- 最近架设的MUNIN,WEBALIZER,AWSTATS截图存档
- Mac 上使用vim 快捷键
- 【应用随机过程】01. 随机过程的基本概念
- Java项目:SSM会议室预约系统
- 解决curl ftp:192.168.4.12 (67) Access denied: 530和500问题
- 31:几何算法--点集的凸包
- 苹果宣布推出新的Mac Mini和MacBook Pro与M2 Pro和M2 Max
- Screen Wonders for Mac (3D动态视频壁纸) v1.9.1
- CAD Express Tools下载与简介
- 开利宣布收购空调企业广东积微集团,包括志高暖通等多家子公司
- 在uniapp里面使用阿里矢量图标(iconfont)
- for 循环练习题(2)
- Python开发智能语音机器人——小O同学
- 局域网ip地址不够用-增加内网IP地址
- python 通讯录系统_Python实现通讯录功能
热门文章
- 多次迟到、旷工?员工将百度告上法院,获赔12万!
- 开发线上商城系统要注意哪些问题
- 阿里云 云监控插件安装参考
- ffmpeg中av_read_frame阻塞的原因与解决方案
- 双十二,WAVE SUMMIT+2021峰会亮点抢先看!
- photoshop学习笔记(二)---PS的相关工具
- 网站上禁止转载的文字,怎么复制文字?(不包括pdf里的文字)
- java 怎么产生性别_生物的性别是如何演化形成的?
- 30-数据字典中的表或视围1
- CentOS 7.4 搭建LNMP(Linux+Nginx+MySQL+PHP)