在Mac下配置Macaca环境

Macaca依赖的功能模块非常多,安装过程很复杂,不过这是目前所有自动化测试框架的通病。
在Mac下配置Macaca环境
文章图片
Macaca自动化测试框架 Node.js 请安装Node.jsv6.0或者更高版本,装好Node.js后命令行里就已经集成npm工具。
默认情况下,npm命令下载的全局模块会存放在系统目录下,这会导致后续操作有很多坑,因此,需要修改默认的全局模块(node_global)的存放路径以及缓存(global_cache)的路径。
在用户目录下新建node_modules文件夹,在下面建立node_globalnode_cache两个文件夹,修改默认全局路径:

$ npm config set prefix "/Users/[用户名]/node_modules/node_global" $ npm config set cache "/Users/[用户名]/node_modules/node_cache"

配置Node环境变量,让系统识别npm下载的全局模块:
$ vim ~/.bash_profile [按下i,显示insert,进入输入模式,输入如下配置] NODE_HOME="/Users/[用户名]/node_modules/node_global" export PATH="$NODE_HOME/bin:$PATH" export NODE_HOME [按esc,输入:wq!保存] $ source ~/.bash_profile $ echo $NODE_HOME

Android 环境 安装JDK1.8,并配置Java环境变量:
$ /usr/libexec/java_home [保存得到JAVA_HOME的路径] $ vim ~/.bash_profile [按下i,显示insert,进入输入模式,输入如下配置] JAVA_HOME="[JAVA_HOME的路径]" CLASS_PATH="$JAVA_HOME/lib" export PATH="$JAVA_HOME/bin:$PATH" export JAVA_HOME [按esc,输入:wq!保存] $ source ~/.bash_profile $ echo $JAVA_HOME

安装18-25版本中的任一SDK和Android Support Repository,并配置Android环境变量:
$ vim ~/.bash_profile [按下i,显示insert,进入输入模式,输入如下配置] ANDROID_HOME="[ANDROID_HOME的路径]" export PATH="$ANDROID_HOME/tools:$PATH" export PATH="$ANDROID_HOME/platform-tools:$PATH" export PATH="$ANDROID_HOME/emulator:$PATH" export ANDROID_HOME [按esc,输入:wq!保存] $ source ~/.bash_profile $ echo $ANDROID_HOME

运行android测试用例前要配置Gradle环境变量:
$ vim ~/.bash_profile [按下i,显示insert,进入输入模式,输入如下配置] GRADLE_HOME="[GRADLE_HOME的路径]" export PATH="$GRADLE_HOME/bin:$PATH" export GRADLE_HOME [按esc,输入:wq!保存] $ source ~/.bash_profile $ echo $GRADLE_HOME

iOS 环境 下载Xcode8.3或者更高版本,安装Homebrew(一款常用的 MacOS 的包管理器)以使用brew命令。
安装usbmuxd以便于通过USB通道测试iOS真机:
$ brew install usbmuxd

安装ideviceinstallerios-deploy用来给真机安装App:
$ brew install ideviceinstaller $ brew install ios-deploy

ios-webkit-debug-proxy以便于测试App中的WebView:
$ brew install ios-webkit-debug-proxy

安装carthage来构建Macaca XCTestWD:
$ brew install carthage

Macaca环境配置 安装Macaca命令行工具:
$ npm i -g macaca-cli

安装不同的驱动以适应不同平台的支持:
$ npm i macaca-ios -g $ npm i macaca-android -g $ npm i macaca-electron -g $ npm i macaca-chromedriver -g

检查当前Macaca的安装环境是否配置成功:
$ macaca doctor

Python环境配置 因为使用python语言开发,所以需要先安装python的开发环境。Mac已经有了Python 2.x,所以就不用再安装了,不过为了以后方便,可以再安装一个python3:
xcode-select --install [查看已有的python2.7版本] $ python --version [利用homebrew搜索python3] $ brew search python $ brew install python3

安装完成后可以在/usr/local/Cellar/下看到python3的文件夹,接下来就检查一下刚刚安装的python3与系统的python路径:
$ which python $ which python3

现在只需要下载安装unittest等一些Macaca所需的模块即可:
$ sudo pip install [unittest2的whl文件] $ [输入密码] $ sudo pip install wd

然后,为了方便开发,可以下载PyCharm社区版来开发python项目。
执行官方示例 将官方示例sample-python克隆到本地:
$ git clone https://github.com/macaca-sample/sample-python.git --depth=1 $ pip install -r requirements.txt

先启动服务器,添加了--verbose可以看到详细的信息,添加-p 3456可以设置端口号:
$ macaca server --verbose

分别执行不同平台的测试用例:
$ python tests/macaca-desktop-sample.test.py $ python tests/macaca-ios-sample.test.py $ python tests/macaca-android-sample.test.py

如果是使用PyCharm执行测试用例,一旦导入unittest模块,PyCharm就会自动识别以unittest的模式去运行。若是想以python直接执行的模式运行,点开右上角的“Edit Configurations”,再点左上角的+号,选择Python,在右方的配置中选择要执行的用例文件即可。
如果在执行Android用例时,在真机上很顺利,但到了模拟器上,到打开百度网页那里就报错Error: chromedriver proxy error with: Error: connect ECONNREFUSED。原因是模拟器里的浏览器版本和本机macaca内置的chromedriver的对应关系问题,具体查看Android的Webview版本问题,换api19--23之间模拟器一般就可以了。
特别要注意的是,官方示例无法在api22以下的Android系统中执行。
【在Mac下配置Macaca环境】iOS真机调试前需要重签名XCTestWD.xcodeproj,Xcode项目所在路径:xxx/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD.xcodeproj,双击打开Xcode项目,重签名XCTestWD和XCTestWDUITests,并能正常执行即可。如果是个人开发者,iOS上要在“设置>通用>设备管理”中信任开发者。

    推荐阅读