刚刚把整个ui自动化的环境差不多配置完了。于是开始运行一下测试用例。
启动appium server。
运行case中的test.py。
刚运行,test.py立马就报错停止了。
打开appium的界面,看下具体的报错。
其中有一条是:
[ADB] The ANDROID_HOME environment variable is not set to the Android SDK root directory path. ANDROID_HOME is required for compatibility with SDK 23+. Checking along PATH for adb.
[ADB] Using 'adb' from '/usr/local/bin/adb'
[ADB] Cannot extract apk info using apkanalyzer. Falling back to aapt. Original error: Could not find 'apkanalyzer' in ["/platform-tools/apkanalyzer","/emulator/apkanalyzer","/tools/apkanalyzer","/tools/bin/apkanalyzer"]. Do you have Android Build Tools installed at ''?
[ADB] The ANDROID_HOME environment variable is not set to the Android SDK root directory path. ANDROID_HOME is required for compatibility with SDK 23+. Checking along PATH for aapt.
看起来都是ANDROID_HOME环境变量没有设置的问题。
ANDROID_HOME指的是什么呢?看上面的日志输出,找不到ANDROID_HOME,最终用的就是[ADB] Using 'adb' from '/usr/local/bin/adb'。 难道ANDROID_HOME就是adb吗?但是看网上说的应该是android。也有的是这个
看起来确实是Android。
看了下全局的Library和个人目录下的Library。都没有Android。 看来是没有安装。
mac下安装android sdk,参考:
https://www.cnblogs.com/1009-smile/p/10228584.html
因为下载的时间比较久,所以昨天没等下载完成就先下班回家了。
今天早上打开电脑一看,已经下载完成了。
准备设置一下环境变量。结果我打开网址,看到最后面的一句话,简直气吐血。
搞半天,就是为了可以使用adb命令吗?闹呐!!! 我本来就可以执行adb命令啊。难道下载这半天就为了下载adb吗?瞬间有种不妙的感觉,搞这半天,应该是解决不了我的问题的。
结果事实证明,确实没有结果。
启动测试用例后,还是报原来的错误。
网上的知识真是参差不齐,怪自己懂的太少!
appium依然运行不了。看错误提示,应该是缺少一些sdk的具体命令。既然adk和adb差不多是一回事(到现在也没搞明白到底他俩是不是一种东西)。那么应该看下adb的路径下到底有没有这个apkanalyzer。于是执行命令:
which adb 查看adb的命令在哪儿。
进入到adb的命令位置处,执行 ll 名,就可以显示该命令具体的实际安装路径在哪儿。
终于找到了通过brew安装的adb的命令的位置。
于是进入到platform-tools下面,发现确实没有apkanalyzer。 也就是说通过brew安装的adb其实是缺少一部分sdkd的。那要怎么才能安装全呢?
重新安装adk的时候,发现下面一篇文章讲解的还是比较清晰的。
https://www.jianshu.com/p/8b02ee89888e
然而套路还是跟上面一篇文章的套路是一样的。
我也不知道为什么下载下来的就是缺少包分析器的命令。
最后的解决方法是:
将一个同事的可用包直接传给我,我修改下环境变量就可以了。
修改环境变量的时候,发现brew安装的adb命令,环境变量不在我的用户级的环境变量中设置。于是又学习了下mac的环境变量相关的知识。
https://www.jianshu.com/p/f245cd00734f
核心点:
Mac系统的环境变量,加载顺序为:
(etc目录下面的是系统级的配置,~目录下的是用户配置)
/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取.
如果/.bash_profile文件存在,则后面的几个文件就会被忽略不读了;
如果/.bash_profile文件不存在,才会以此类推读取后面的文件。
~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
终端输入:echo $PATH,按回车执行命令查看当前变量值