通常为了简单的使用,直接下载 Appium Desktop 就好了,很多都系都封装好了。原始下载地址 百度网盘下载地址
安装完 Appium Desktop,还需要安装 Android Studio(其实主要是用它来安装 Android SDK),顺便也能开发下安卓应用什么的。
原始 Android Studio 下载地址 百度网盘下载地址
Android Studio 安装完之后,第一次打开,之后会提示下载 Android SDK,不过因为国内的网络问题下载不动,所以需要先配置个代理。有 HTTP 代理,或者 Socks5 代理。
总共需要下载 1G 以内的数据(所以需要找个好的网络)。包括 platform-tools, avd emulator
代理配置界面。

testerhome 提供的 http 代理地址是 http://xxx.xxx.81.122:6$(date +%m%d) %m%d代表月和日。假设今天是 5 月 17 号,代理地址就是http://xxx.xxx.81.122:60517
Mac 上所有的内容默认会下载到 $HOME/Library/Android/sdk目录,这个就是ANDROID_HOME的位置,设置一下环境变量。
为了持续集成方便,有些人可能还是更喜欢命令行的 appium
安装方法
npm config set registry https://registry.npm.taobao.org/
npm config set disturl https://npm.taobao.org/dist
npm i -g appium
需要等待一下下,直接命令行运行 appium 就运行起来了

打开之后,先点击启动 Server,随后点击右上角的那个放大镜(Inspector)。

我用的是微信测试。下面是会用到的配置。具体的每项配置的内容需要看这里 Desired Capabilities Documentation 这个英文文档写的也不怎么低。我等下给两个常用的例子。

{
"platformName": "Android",
"deviceName": "WhatEver",
"automationName": "UiAutomator2",
"udid": "NX529J",
"appPackage": "com.tencent.mm",
"appActivity": ".ui.LauncherUI"
}
adb devices可以查看到。只有一个设备的话,也可以不写 udidAppium ,其他可选的是 Selendroid、UiAutomator2 or Espresso。其中的appPackage和appActivity怎么获取呢?
adb shell dumpsys activity activities | grep mFocusedActivity
输出示例:
mFocusedActivity: ActivityRecord{931a882 u0 com.tencent.mm/.ui.LauncherUI t553}
com.tencent.mm/.ui.LauncherUI 就是当前处于前台的 Activity。那个默认的 automationName(Appium) 其实就是 uiautomator1
如果你需要每次都安装 apk,也可以这样子写。(这里我用了网易云音乐的 apk)
{
"platformName": "Android",
"deviceName": "WhatEver",
"app": "/Users/codeskyblue/Downloads/CloudMusic_official_5.1.1.923682.apk"
}
没写 udid 是因为我电脑上就连接了一台设备。
写了 app 就不用写appPackage和appActivity了,appium 会使用aapt工具分析 apk 获取这些信息的。
启动完 Inspector 就可以看下下面的图片了。(我用的是 Appium1.5.0 可能最新版的界面会更好看一点)

这是个比较有意思的功能,点击录制

接下来在界面上选择要点击的位置,选择 Tap,就可以执行点击操作,并且自动生成测试代码

appium 做的不好的是那个 xpath,实在是有点太长了。

选中哪个像外链一样的按钮,appium desktop 就会生成一个完整可以直接运行的 python 代码了。

将其中的代码拷贝到外部的文件中,比如 music.py
先安装 python 库Appium-Python-Client
pip install --user Appium-Python-Client
随后命令行运行 python music.py
实践的时候发现通过命令行获取到的网易云音乐的appPackage和appActivity appium 不能正常的启动应用,而是直接报错了,命令行测试了一下也是报错。
有人查到了原因,是因为部分 https://blog.csdn.net/lazyer_dog/article/details/46050211
知道了原因还是很难搞,很头疼,直接拿出了我的 atx,去分析默认的 activity 吧
(venv) codeskyblue:~/tmp$ python -matx apkparse ~/Downloads/CloudMusic_official_5.1.1.923682.apk
{
"version": {
"code": "117",
"name": "5.1.1"
},
"main_activity": "com.netease.cloudmusic.activity.LoadingActivity",
"package_name": "com.netease.cloudmusic"
}