安装 Appium Desktop

通常为了简单的使用,直接下载 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 命令行版本

为了持续集成方便,有些人可能还是更喜欢命令行的 appium

安装方法

  1. 设置 taobao 的 npm 代理 (有人可能会更喜欢用 cnpm,不过我还是喜欢用 npm,因为可以少打一个字母 c)
npm config set registry https://registry.npm.taobao.org/
npm config set disturl https://npm.taobao.org/dist
  1. npm 直接安装 appium
npm i -g appium

需要等待一下下,直接命令行运行 appium 就运行起来了

Appium Desktop 的简单实用

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

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

{
  "platformName": "Android",
  "deviceName": "WhatEver",
  "automationName": "UiAutomator2",
  "udid": "NX529J",
  "appPackage": "com.tencent.mm",
  "appActivity": ".ui.LauncherUI"
}

其中的appPackageappActivity怎么获取呢?

  1. 先把应用打开
  2. 命令行执行 adb shell dumpsys activity activities | grep mFocusedActivity

输出示例:

mFocusedActivity: ActivityRecord{931a882 u0 com.tencent.mm/.ui.LauncherUI t553}

那个默认的 automationName(Appium) 其实就是 uiautomator1

如果你需要每次都安装 apk,也可以这样子写。(这里我用了网易云音乐的 apk)

{
  "platformName": "Android",
  "deviceName": "WhatEver",
  "app": "/Users/codeskyblue/Downloads/CloudMusic_official_5.1.1.923682.apk"
}

没写 udid 是因为我电脑上就连接了一台设备。
写了 app 就不用写appPackageappActivity了,appium 会使用aapt工具分析 apk 获取这些信息的。

启动完 Inspector 就可以看下下面的图片了。(我用的是 Appium1.5.0 可能最新版的界面会更好看一点)

Appium desktop 中的自动录制功能

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

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

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

命令行执行生成的代码

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

将其中的代码拷贝到外部的文件中,比如 music.py

先安装 python 库Appium-Python-Client

pip install --user Appium-Python-Client

随后命令行运行 python music.py

实践的时候发现通过命令行获取到的网易云音乐的appPackageappActivity 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"
}

参考文章


↙↙↙阅读原文可查看相关链接,并与作者交流