Appium 环境配置
前言
Appium 作为移动端自动化测试工具在业界非常流行,特别是在当前移动互联网背景下,很多公司基于此框架来开展自动化测试。但 appium 的环境配置相对 selenium 来说复杂的多,让很多同学望而生畏。本文介绍 appium + python 基于windows 平台来搭建环境。其他平台的搭建大同小异。
环境准备
jdk1.8
node
Appium
android-sdk
python
Appium-Python-Client
一、安装 jdk,配置环境变量
1.下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.安装过程就不多说了,配置好环境变量后,检查是否成功:
![](https://i-blog.csdnimg.cn/blog_migrate/ed2cb85664840cc4e5b2e2fc96fac5ab.png)
二、安装 Appium
方法一:
1.安装 node.js, 下载地址:http://nodejs.cn/download/
2.检查下是否安装成功
![](https://i-blog.csdnimg.cn/blog_migrate/e4f21d6e78c29090b565efb97c8f097d.png)
3.然后使用命令安装: npm install -g appium
方法二:
1.下载地址:http://appium.io/
2.安装后配置环境变量:把 Appium 安装主目录 C:\Program Files\Appium 添加到系统变量 Path
3.检查下,能开启 Appium代表成功:
![](https://i-blog.csdnimg.cn/blog_migrate/a7e996551aca5f28a666f55311e820df.png)
三、安装 android-sdk
1.下载地址:https://www.androiddevtools.cn/ (也可以直接安装 android studio 开发工具,内部集成了android-sdk)
2.解压后运行 SDK Manager.exe
![](https://i-blog.csdnimg.cn/blog_migrate/a7e4fc8b0becf7378cdbabeb9dabb4cb.png)
3.下载 build-tool 工具,后面会用到 aapt 命令。
![](https://i-blog.csdnimg.cn/blog_migrate/3e6ef84abdebd0cdbc589400631ab98b.png)
4.配置环境变量:
1)新增系统变量名 ANDROID_HOME ,变量值:D:\android-sdk-windows (android-sdk 主目录)
2)系统变量 Path 添加 adb 和 aapt 变量值。
adb 变量值:D:\android-sdk-windows\platform-tools
aapt 变量值:D:\android-sdk-windows\build-tools\29.0.2
5.检查环境变量配置是否成功:
![](https://i-blog.csdnimg.cn/blog_migrate/7bab34a27d202a68b371b09c77ca790e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3b950779cfcb5ad54ef69dbdf2d8bebc.png)
四、安装 appium-doctor
1.最新版的 Appium 不带 appium-doctor,所以需要自己下载
2.cmd 安装命令:npm install -g appium-doctor (参数 -g 设置 appium-doctor 环境变量)
3.运行 appium-doctor 检查 appium 运行所需的依赖和环境变量(当然比较自信的同学也可以跳过这个步骤,非必要步骤哈!)
![](https://i-blog.csdnimg.cn/blog_migrate/f352c4a2299f9d699893177b19e348e6.png)
五、安装 python
1.下载地址:https://www.python.org/
2.安装过程就不说了,傻瓜式安装。
六、安装 Appium-Python-Client
使用 python 的 类库管理工具 pip,cmd输入:pip3 install Appium-Python-Client
![](https://i-blog.csdnimg.cn/blog_migrate/c885b48077e6d824aa73fe289c3bb08a.png)
实例运用
一、开启模拟器
1.运行模拟器可以使用 android 自带的,我这里用的是 Genymotion 。我为什么要用Genymotion ,当然是运行速度更快啦,哈哈!如下图
![](https://i-blog.csdnimg.cn/blog_migrate/3eb8cd0ff546ee2bbf07dbb360db7589.png)
二、运行 Appium
1.cmd 运行命令 appium 。(这里有个问题 ,手动启用 appium,运行脚本的时候会报 Original error: Could not find 'adb.exe' in PATH,但是 adb 环境变量是配置成功的。暂不清楚是什么原因)
![](https://i-blog.csdnimg.cn/blog_migrate/215ff394563c4a6e06f6810183ab3c60.png)
2.打开界面后点击“Start Server”,Appium 开始监听。
![](https://i-blog.csdnimg.cn/blog_migrate/e9237898eb9b04b8b828a1419ab0567b.png)
三、aapt命令 获取apk包名
方法一:
1.aapt 命令可以获取包的详细信息,具体用法:aapt dump badging xxx/xxx/yy.apk 然后找到 PackageName
![](https://i-blog.csdnimg.cn/blog_migrate/36624a31e19e0f1bc2f79d3c16f3387a.png)
2.接着上面找到 launcherActivity
![](https://i-blog.csdnimg.cn/blog_migrate/c98eb013bcb3aa3258ff7a50faf6ee3d.png)
方法二:(此方法在appium最新版本 中出现部分非 android 原生页面加载不出来的情况,慎用!)
1.将包安装在模拟器(或真机)上,运行命令:adb shell getprop ro.build.version.release(获取android版本号)
![](https://i-blog.csdnimg.cn/blog_migrate/1b8c7d9254409a590efc5d84a5d601df.png)
2.获取包名和当前页面信息:adb shell dumpsys window | findstr mCurrentFocus(注意:我这里打开的是首页,下面代码启动app后会直接跳过引导页进入首页。这样比较方便,进入页面直接测试)
![](https://i-blog.csdnimg.cn/blog_migrate/1966cf8545dffe9d853bac90012bc1d7.png)
四、adb 获取 device name
1.cmd 输入命令:adb devices
五、运行一段脚本
运行如下测试代码,参数中 deviceName、appPackage、appActivity 的值上文已经获取过了。app 首页被调起代表成功:
![](https://i-blog.csdnimg.cn/blog_migrate/cb58e72c6ad5ba1db57275b050215fa9.gif)
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': '192.168.41.101:5555',
'platformVersion': '9.0',
# apk包名'appPackage': 'com.gem.tastyfood',
# apk的launcherActivity'appActivity': 'com.gem.tastyfood.LaunchActivity'
}
# Remote 地址在 Appuim 里找
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
![](https://i-blog.csdnimg.cn/blog_migrate/1076484e33a892ca75e0ee26ee9c8d3b.gif)
六、定位元素
1.定位元素可以通过 appium 工具
![](https://i-blog.csdnimg.cn/blog_migrate/171e2b8da03246b335ad81c4598e22fe.png)
2.填写相关上文获取的参数,点击 Start Session
![](https://i-blog.csdnimg.cn/blog_migrate/6c1cdef2481386c23f8c84d1d71ceb90.png)
3.进入元素定位界面,然后获取你想要的元素。
![](https://i-blog.csdnimg.cn/blog_migrate/622ebc1b14519acb0352b4f2f6a48eea.png)