Appium是一个自动化开源工具,支持iOS、Android和Windows桌面平台上的原生、移动Web和混合应用的自动化。它是跨平台的,允许用同样的API对多平台(iOS、Android、Windows)写测试,能在iOS、Android和Windows测试套件之间复用代码。
下载方法

Appium的下载主要有两种方式:
1. 通过Node.js安装:
首先需要安装Node.js,可以通过`
安装完成后,使用npm命令全局安装Appium:
bash
npm i -g appium
注意:目前不支持其他软件包管理器。
2. 下载Appium Desktop安装:
可以从GitHub的Releases页面下载对应操作系统的Appium Desktop版本:
Windows平台:下载exe安装包,如`Appium-Server-GUI-windows-1.22.0.exe`。
Mac平台:下载dmg安装包,如`Appium-Server-GUI-mac-1.22.0.dmg`。
Linux平台:可以选择下载源码,但更推荐使用Node.js安装方式。
使用步骤

使用Appium进行自动化测试的基本步骤如下:
1. 安装依赖环境:
Python:如果使用Python编写测试脚本,需要安装Appium-Python-Client库:
bash
pip install Appium-Python-Client
Android SDK:如果测试Android应用,需要安装Android SDK。可以通过Android Studio安装,安装完成后需要配置环境变量:
创建`ANDROID_HOME`变量,值为SDK安装的根目录路径。
将`%ANDROID_HOME%platform-tools`加入到环境变量`Path`中。
验证设置成功:在命令行输入`adb version`,可以看到当前adb的版本信息。
JDK:安装JDK8及以上版本,并配置环境变量:
创建`JAVA_HOME`变量,值为JDK安装的根目录路径。
创建`CLASSPATH`变量,值为`.;%JAVA_HOME%lib;%JAVA_HOME%lib
ools.jar`。
在`Path`变量中添加`%JAVA_HOME%bin;%JAVA_HOME%jrebin`。
验证JDK环境配置是否成功:在命令行输入`java -version`,可以看到当前JDK的版本信息。
2. 启动Appium Server:
如果是通过Node.js安装的Appium,可以直接在命令行输入`appium`启动服务。
如果是通过Appium Desktop安装的,可以启动Appium Desktop应用,host和port默认即可。在`Edit Configuration`中将Android SDK和Java JDK加到环境变量中,设置好后保存并重启Appium,然后启动服务。
3. 配置Desired Capabilities:
点击`Start Inspector Session`进行Desired Capabilities的配置。在`JSON Representation`中输入以下json数据(以Android为例):
json
platformName": "Android",
platformVersion": "8.1.0",
deviceName": "MI_5X",
appPackage": "com.tencent.qqmusic",
appActivity": ".activity.AppStarterActivity",
resetKeyboard": true,
noReset": true
以上数据通过adb命令获取,获取`appPackage`与`appActivity`时需要将app启动。
4. 启动测试会话:
配置好Desired Capabilities后,点击`Start Session`,app启动运行之后可以在界面上点击选择查看当前页面所有元素控件的详细信息,右侧`Selected Element`下方有三个按钮:
`Tap`:执行选中元素的点击操作。
`Send Keys`:为文本框等input对象传值。
`Clear`:清除输入框中的文本。
5. 编写自动化脚本:
启动session成功运行app之后,可以通过各种定位方法(如`find_element_by_id`、`find_element_by_xpath`等)定位元素,并使用`click`方法对元素进行点击操作,使用`swip`方法对屏幕进行滑动操作等。以下是一个Python实现操作的示例代码:
python
import time
from appium import webdriver
caps = {
platformName": "Android",
platformVersion": "8.1.0",
deviceName": "MI_5X",
appPackage": "com.tencent.qqmusic",
appActivity": ".activity.AppStarterActivity",
resetKeyboard": True,
noReset": True
driver = webdriver.Remote(" caps)
time.sleep(15)
el1 = driver.find_element_by_id("com.tencent.qqmusic:id/clt")
el1.click
time.sleep(5)
driver.swipe(500, 1550, 500, 800)
driver.quit
注意:在完成上一步操作之后由于手机性能的差异,app的响应速度不同,建议等待几秒后再进行下一步操作。
用户使用反馈

根据要求,用户对Appium的使用反馈主要集中在以下几个方面:
功能强大:Appium支持多种平台(iOS、Android、Windows)的自动化测试,能够满足不同用户的需求。
跨平台复用代码:用户可以使用同样的API对多平台写测试,提高了代码的复用性。
视觉辅助工具:Appium Inspector是一个非常实用的视觉辅助工具,帮助用户更方便地定位元素,但在Appium Server GUI最新版本中不再包含该功能,需要单独下载。
环境配置复杂:部分用户反馈Appium的环境配置过程较为复杂,需要安装多个依赖环境(如Python、Android SDK、JDK等),并且需要正确配置环境变量。
网络稳定性问题:在下载Appium相关组件(如Appium Inspector)时,可能会遇到网络稳定性问题,影响下载体验。