51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1710|回复: 0
打印 上一主题 下一主题

Mac环境变量的配置和Appium的安装问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-19 16:52:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这篇文章主要是记录自己在工作中遇到的问题,以备日后遇到同类问题后能够快速解决。也希望这篇
文章能对一些技术小白有一些帮助。讲解如有不当之处还请指出,共同进步,在此感谢。

因国内不是太好下载appium,首先附上appium的网盘下载链接:

Appium下载链接,密码: e7dr

我们在工作中有时会与环境变量打交道,什么Android环境变量,JAVA环境变量,对于小白来说,真
的挺头疼得。网上更多的是关于Windows的配置方法,对于Mac的配置方法比较少,有的一些也似
乎有时解决不了问题。

这里所提到的环境变量的配置方法是在我在安装Appium时遇到的问题,一个是“Android-HOME no
t set”,另一个是“JAVA-HOME not set”。我们在安装Appium时可能会有很多问题问题,但是有些问
题都是因为这两个环境变量没有配置导致的,所以只要将这两个问题解决,一连带几个问题都不存
在,问题如截图:

如图,有5个报错,但是有4个问题都是Android的环境变量问题,还有一个是JAVA环境变量问题
我们在运行Appium 的时候是需要多个文件支持的,比如JAVA环境和Android环境。如果Appium找
不到这些环境,就会报错。所以我们需要配置这些环境变量。

首先打开终端,输入命令:open .bash_profile或者vim ~/.bash_profile(在此之前你必须已经创
建了这样一个.bash_profile文件,如果没有,请创建:touch .bash_profile).

使用这两个命令都可以直接进入profile文件:

使用open .bash_profile金可以直接进行编辑,编辑完以后command+s进行保存即可;

使用vim ~/.bash_profile则不能直接编辑,此时点按字母“i”进入编辑模式,然后就可以对文本进行
编辑,编辑完以后,点按“esc”键,即可退出编辑模式,然后输入“:wq”即可保存退出文本。如果
你不太会使用Vim文本编辑器,可以在终端输入

vimtutor
查看Vim自带教程。

当我们进入到文本编辑器以后,就可以配置Android和JAVA环境变量了,前提是你已经安装了Andr
oid和Java的开发环境。可能每个人的环境变量不一样,一般你没有自己改变其位置,这些变量位
置是一样的,如图:

该图中的最后两行就是我配置的两个环境变量,如果你没有修改其位置,就可以复制使用了,为
了方便大家复制(因为我觉得这里没必要手写),给出文本(其中guxuecheng是我的用户名,换
成你自己的即可):
export ANDROID_HOME=/Users/guxuecheng/Library/Android/sdk

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

。这里说了,是在安装Appium时缺少环境变量的问题,但是我们在安装Appium时一般还会遇到
其他问题,这里我把我遇到的问题一并列出,并给出解决方法:


错误一、[Error:Couldnot detect MacOS XVersion from sw_vers output:'10.12.4']

如图:

截图中给出的是10.12,但是实际中遇到的一般是10.12.4.
这个问题比较麻烦,解决起来还是比较麻烦的。我会列出详细步骤,一定照做,不要输错,否则
很麻烦:

第一步,输入命令:vim/Applications/Appium.app//Contents/Resources/node_modules/appium/n
ode_modules/appium-support/build/lib/system.js

做如下修改:

找到下面几行代码:

case 10:

_arr = ['10.8', '10.9', '10.10', '10.11'];

_i = 0;



改为:

case 10:

_arr = ['10.8', '10.9', '10.10', '10.11','10.12'];

_i = 0;



第二步,输入一下命令:vim/Applications/Appium.app//Contents/Resources/node_modules/ap
pium/node_modules/appium-support/lib/system.js

做如下修改(这里需要修改两处):

修改一:

找到如下代码:

try {

stdout = (await exec('sw_vers', ['-productVersion'])).stdout;

}

改为:

try {

stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();

}

修改二:



找到如下代码:

for (let v of ['10.8', '10.9', '10.10', '10.11']) {

if (stdout.indexOf(v) === 0) { return v; }

}

改为:

for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) {

if (stdout.indexOf(v) === 0) { return v; }

}





第三步:输入以下命令:vim/Applications/Appium.app//Contents/Resources/node_modules/appium-s
upport/build/lib/system.js

找到如下代码:

case 10:

_arr = ['10.8', '10.9', '10.10', '10.11'];

_i = 0;

修改为:

case 10:

_arr = ['10.8', '10.9', '10.10', '10.11','10.12'];

_i = 0;

第四步:输入以下命令:

vim/Applications/Appium.app//Contents/Resources/node_modules/appium-support/lib/system.js

这里需要做两处修改

第一处:

找到如下代码:

try {

stdout = (await exec('sw_vers', ['-productVersion'])).stdout;

}

改为:

try {

stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();

}

第二处:

找到如下代码:

for (let v of ['10.8', '10.9', '10.10', '10.11']) {

if (stdout.indexOf(v) === 0) { return v; }

}

改为:

for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) {

if (stdout.indexOf(v) === 0) { return v; }

}

错误一解决办法出处:https://stackoverflow.com/questi ... -error-could-not-de
tect-mac-os-x-version-from-sw-vers-output-10-12。


错误二、Cannot read property ‘replace’ of undefined

错误如图:

这个问题解决方法应该是最为简单的,就是因为你没有安装node.js.把这个安装上就好了。。安装好
之后可以在终端输入:node -v。查看node安装成功与否,如果返回了node的版本,则说明安装成功。


解决所有问题以后再次点击下图1处:


如果出现下图2处的信息,说明安装Appium成功,可以进行接下来的学习了:



错误三:Carthage was NOT found!

这个原因是因为缺少Carthage(这是个啥东西?自己Google吧),解决办法就是装上他:

brew update

brew install update

补充:

一、环境变量PATH的语法解释:

${}为占位符,${PATH} 和 $PATH等效

=前后不能有空格

: 为分隔符(等同于windows环境变量中的 ; )

PATH=$PATH:xxx 可以理解为 " PATH+=xxx "(当然不能这么写)

PATH=xxxPATH这种写法亦可,只是前后顺序的问题;



二、bash 和 zsh

linux 和 unix 两个操作系统默认的 shell 都是 bash,所以我在文章开始配置环境变量也是用的 bash,
这样我也用了很长一段时间,直到

今天我发现我的 adb 命令居然都用不了了,检查了一下环境变量也没错,无奈请教了一下公司大牛,
原来是因为我的环境变量都使用了 .zshrc文件 ,原来的 .bash_profile配置文件就不起作用了。为什么
会这样呢?原来是因为之前我一个同事在我电脑上把我的bash 环境变量切换到了 zsh。好吧,zsh 说
是比 bash 更强大,那我就用 zsh 吧。

查看当前电脑使用的是哪一个 shell,使用命令:

echo $SHELL
命令echo 的作用是:输出指定的字符串或者变量,这里就是输出变量 shell 的值, 一定要是大写,且
要以$开头。还有类似的命令比如 echo $PATH,该命令的作用就是显示当前path环境变量。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-26 05:13 , Processed in 0.068395 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表