1. 项目概述为什么Appium是移动端自动化的首选如果你正在看这篇文章大概率是刚接触移动端自动化测试或者被五花八门的工具搞得眼花缭乱想找一个靠谱的起点。我干了快十年的测试开发从早期的MonkeyRunner、Robotium到后来的UIAutomator、Espresso再到现在的Appium可以说把这条路踩了个遍。今天咱们不聊虚的就从一个最实际、也最容易劝退新人的环节开始Appium的安装与环境配置。很多人觉得安装不就是“下一步、下一步、完成”吗那我得说你对Appium的“威力”可能有点误解。它本质上不是一个独立的软件而是一个客户端-服务器架构的测试框架。你的测试脚本用Python、Java等语言编写是客户端它通过WebDriver协议向一个中间服务器Appium Server发送指令这个服务器再去调用不同平台Android/iOS的原生测试框架来驱动真机或模拟器。这个设计让它具备了“一次编写多端运行”的跨平台能力但也让它的环境搭建变得相对复杂像搭积木一样缺一块都不行。所以这篇文章的目标很明确带你从零开始手把手搭建一个能稳定运行Android自动化测试的Appium环境。我会把每一步的原理、可能遇到的坑、以及我踩过无数次坑后总结的“保命”技巧都告诉你。整个过程会涉及JDK、Android SDK、Node.js、Appium Server、Appium Inspector以及Python客户端库。别怕跟着我的步骤走保证你能在半天内搞定这个“入门第一关”。2. 环境准备搭建稳固的基石在开始安装Appium之前我们需要先把它的“地基”打好。这个地基主要由三部分组成Java环境、Android开发环境和Node.js环境。顺序很重要乱来容易出问题。2.1 Java开发环境JDK安装与配置Appium Server本身是用Node.js写的但它需要调用Android SDK里的工具比如adb,uiautomator2而这些工具大部分是Java编写的。因此一个正确配置的JDK是必须的。1. 版本选择与下载我强烈建议使用JDK 8又称JDK 1.8。这不是因为它最新而是因为它最稳定、兼容性最广。很多Android构建工具和遗留系统都对JDK 8有最好的支持。更高版本如JDK 11, 17虽然也可以用但可能会遇到一些意想不到的兼容性问题对于新手来说先避开这些雷区。前往Oracle官网或OpenJDK站点如Adoptium下载对应你操作系统Windows/macOS/Linux的JDK 8安装包。注意对于macOS用户如果使用较新的系统如macOS Monterey及以上从Oracle直接安装JDK 8可能会遇到权限问题。一个更省心的办法是使用Homebrew来安装brew install --cask adoptopenjdk8。2. 安装与核心环境变量配置安装过程就是一路下一步。安装完成后配置系统环境变量是关键这一步错了后面全盘皆输。JAVA_HOME这个变量指向你的JDK安装根目录。例如在Windows上可能是C:\Program Files\Java\jdk1.8.0_361在macOS/Linux上可能是/Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home。Path在Path变量中添加%JAVA_HOME%\bin(Windows) 或$JAVA_HOME/bin(macOS/Linux)。3. 验证安装打开终端Windows是CMD或PowerShell输入以下命令java -version javac -version如果两行命令都能正确显示版本号特别是显示1.8.x并且没有“不是内部或外部命令”的错误说明配置成功。实操心得环境变量配置后一定要关闭并重新打开你的终端窗口新的配置才会生效。这是新手最常忽略的一点导致验证失败时一头雾水。2.2 Android SDK与平台工具安装Android SDK是Appium与Android设备沟通的桥梁。我们不需要安装完整的Android Studio那太臃肿只需要其命令行工具包Command-line Tools即可。1. 下载命令行工具前往Android开发者官网找到“Command line tools only”进行下载。解压到一个你容易找到的目录例如D:\Android\cmdline-tools。2. 配置ANDROID_HOME与PathANDROID_HOME这个变量指向你的Android SDK根目录。通常我们将解压后的cmdline-tools目录放在一个名为sdk的文件夹里那么ANDROID_HOME就指向这个sdk文件夹的路径例如D:\Android\sdk。Path需要添加多个路径到Path变量中%ANDROID_HOME%\platform-tools(包含adb,fastboot等关键工具)%ANDROID_HOME%\tools和%ANDROID_HOME%\tools\bin(包含sdkmanager,avdmanager等管理工具)%ANDROID_HOME%\cmdline-tools\latest\bin(新版本命令行工具路径)3. 使用sdkmanager安装必要组件打开终端使用以下命令安装最核心的包。这个过程可能需要科学上网请确保网络通畅。# 接受所有许可避免安装过程中断 sdkmanager --licenses --sdk_root%ANDROID_HOME% # 安装平台工具必须包含adb sdkmanager “platform-tools” --sdk_root%ANDROID_HOME% # 安装一个Android平台例如最常用的API 30 sdkmanager “platforms;android-30” --sdk_root%ANDROID_HOME% # 安装构建工具必须 sdkmanager “build-tools;30.0.3” --sdk_root%ANDROID_HOME%4. 验证adb安装完成后在终端输入adb version。如果能显示ADB的版本号说明Android SDK的基础部分配置成功。注意事项sdkmanager的路径和--sdk_root参数在新旧版本中有所不同。如果你遇到“命令未找到”的错误请检查Path中配置的路径是否正确并尝试在sdkmanager命令前加上完整路径。2.3 Node.js与npm环境安装Appium Server是一个Node.js应用因此我们需要Node.js环境来运行它。npm是Node.js的包管理器会随Node.js一同安装。1. 版本选择与下载建议选择长期支持版本LTS例如Node.js 18.x。它比最新版Current更稳定。从Node.js官网下载对应系统的安装包。2. 安装与验证安装过程简单基本无需额外配置。安装完成后在终端验证node -v npm -v两者都能显示版本号即可。3. 配置npm镜像源国内用户强烈建议默认的npm源在国外下载速度极慢且容易失败。将其替换为国内镜像源能极大提升体验。npm config set registry https://registry.npmmirror.com/可以通过npm config get registry命令检查是否设置成功。至此我们的三大基石已经准备完毕。接下来就可以开始安装主角——Appium了。3. Appium Server的安装与启动有了稳固的基础安装Appium Server本身反而是一件相对简单的事情。我们有两种主要方式通过npm全局安装或者使用桌面图形化客户端。我强烈建议新手先从npm安装开始因为它能让你更清晰地理解其组成并且在后续排查问题时命令行提供的日志信息也更为直接和完整。3.1 通过npm安装Appium Server打开你的终端确保Node.js已正确安装输入以下命令npm install -g appium这个-g参数代表全局安装意味着你可以在系统的任何位置运行appium命令。 安装过程可能会持续几分钟取决于你的网络速度。如果之前配置了国内npm镜像速度会快很多。安装完成后通过以下命令验证appium -v如果成功显示Appium的版本号如2.5.1恭喜你Server主体安装成功。3.2 安装必要的Appium驱动Driver这是Appium 2.0版本之后一个非常重要的变化在Appium 1.x时代所有平台的驱动如uiautomator2 for Android, XCUITest for iOS是内置的。但在2.0版本中Appium采用了插件化架构核心服务器只提供协议支持具体的设备驱动需要作为独立插件来安装。这带来了更好的灵活性和可维护性。对于Android自动化我们最常用、也最稳定的驱动是appium-uiautomator2-driver。 在终端中执行以下命令进行安装appium driver install uiautomator2这个命令会从Appium的插件仓库下载并安装最新的uiautomator2驱动。你可以通过appium driver list命令来查看已安装的驱动。3.3 启动Appium Server安装好驱动后我们就可以启动Appium Server了。在终端中直接输入appium默认情况下Appium Server会启动在http://127.0.0.1:4723。你会看到终端开始滚动日志最后一行出现类似[Appium] Appium REST http interface listener started on 0.0.0.0:4723的信息表示服务器已成功启动并正在监听4723端口。关键参数解析--address或-a: 指定监听的IP地址默认是0.0.0.0监听所有网络接口。一般本地测试用127.0.0.1即可。--port或-p: 指定端口号默认是4723。如果该端口被占用可以指定其他端口如appium -p 4724。--log-level: 设置日志级别如debug,info,warn,error。排查问题时使用debug会输出海量信息。--session-override: 允许覆盖现有会话。在脚本调试时如果前一个会话未正常结束这个参数很有用。一个更常用的启动命令示例指定日志级别和地址appium -a 127.0.0.1 -p 4723 --log-level info --session-override实操心得保持这个终端窗口打开不要关闭。这个窗口就是你的Appium Server运行日志的观察窗口任何客户端连接、指令执行、错误信息都会在这里打印是排查问题的第一现场。后续运行测试脚本时需要确保Server处于运行状态。4. 客户端工具链安装与配置Server端准备好了我们还需要“武器”来向它发送指令写测试脚本和“眼睛”来查看应用界面元素定位元素。这就是客户端工具链。4.1 安装Python客户端库Appium-Python-Client虽然Appium支持多种语言但Python因其语法简洁、生态丰富在自动化测试领域应用最广。我们将使用Appium-Python-Client这个库来编写测试脚本。使用pip进行安装建议在虚拟环境中进行pip install Appium-Python-Client这个库封装了与Appium Server通信的所有WebDriver协议细节让我们可以用面向对象的方式来编写测试代码。4.2 安装与使用Appium Inspector元素定位神器写自动化脚本70%的工作是在定位界面元素上。Appium Inspector是一个图形化工具可以连接到正在运行的应用像“检查器”一样查看其UI组件树并获取元素的唯一标识符如resource-id, xpath, accessibility id等是编写脚本不可或缺的助手。1. 下载与安装由于Appium 2.0的架构变化传统的独立Appium Inspector桌面版已不再更新。现在官方推荐的方式是使用Appium Inspector as a Desktop App它本质上是一个封装了Web界面的Electron应用。前往Appium官方GitHub仓库的Release页面找到appium-inspector的发布版本下载对应你操作系统的安装包.dmg, .exe, .AppImage等。安装过程与普通软件无异。2. 配置与连接这是最容易出错的一步。打开Appium Inspector你需要正确配置Remote Server的地址才能连接到你的Appium Server和待测应用。Remote Host:127.0.0.1或localhostRemote Port:4723(与你启动Appium Server的端口一致)Remote Path:/wd/hub(对于Appium 1.x) 或/(对于Appium 2.x)。Appium 2.x默认使用根路径/这是与1.x最大的不同之一填错会导致连接失败。Desired Capabilities: 这是核心配置是一个JSON对象告诉Appium Server你要测试什么应用、在什么设备上、以什么方式测试。一个连接Android模拟器上系统设置应用的示例如下{ “platformName”: “Android”, “appium:platformVersion”: “11.0”, “appium:deviceName”: “Android Emulator”, “appium:automationName”: “UiAutomator2”, “appium:appPackage”: “com.android.settings”, “appium:appActivity”: “.Settings” }配置好后点击“Start Session”按钮。如果一切正常Inspector会启动模拟器或连接真机上的目标应用并在右侧显示应用的UI层级树和元素属性。避坑指南如果点击“Start Session”后长时间卡住或报错请第一时间检查你的Appium Server终端日志。常见的错误包括Desired Capabilities配置错误如automationName没写对、设备未连接或未启动、端口被占用、驱动未安装等。日志里通常会有明确的错误信息提示。5. 完整环境验证运行你的第一个自动化脚本环境都搭好了是骡子是马拉出来遛遛。我们用一个最简单的脚本来验证整个链路是否通畅。这个脚本将打开Android系统自带的“设置”应用然后退出。1. 准备Python脚本 (first_test.py):from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy import time # 1. 定义Desired Capabilities与Appium Inspector中的配置基本一致 desired_caps { “platformName”: “Android”, “appium:platformVersion”: “11.0”, # 你的模拟器/真机系统版本 “appium:deviceName”: “Android Emulator”, # 设备名称模拟器可用此名 “appium:automationName”: “UiAutomator2”, “appium:appPackage”: “com.android.settings”, “appium:appActivity”: “.Settings”, “appium:noReset”: True # 不重置应用状态便于快速测试 } # 2. 连接Appium Server # 注意Appium 2.x 的默认端点通常是 ‘http://127.0.0.1:4723‘ 而不是 ‘.../wd/hub‘ driver webdriver.Remote(‘http://127.0.0.1:4723‘, desired_caps) # 3. 一个简单的操作等待2秒让界面稳定 time.sleep(2) # 4. 尝试找到一个元素例如“网络和互联网”选项并点击这里用文本定位示例 try: # 通过文本内容定位元素 element driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, ‘new UiSelector().text(“网络和互联网”)‘) element.click() print(“成功找到并点击了‘网络和互联网’选项”) except Exception as e: print(f“未找到指定元素或点击失败: {e}“) # 可以改为通过XPath或其他方式定位 # 例如driver.find_element(AppiumBy.XPATH, “//android.widget.TextView[text‘网络和互联网’]“).click() # 5. 再等待2秒观察结果 time.sleep(2) # 6. 退出会话 driver.quit() print(“测试脚本执行完毕”)2. 执行前的检查清单[ ] Appium Server 正在终端运行appium命令未停止。[ ] Android模拟器已启动或者真机已通过USB连接电脑并开启了USB调试模式在终端输入adb devices应能看到设备列表。[ ] 脚本中的platformVersion和deviceName需要根据你的实际情况修改。deviceName可以通过adb devices -l命令查看。3. 运行脚本在另一个终端窗口导航到脚本所在目录执行python first_test.py4. 观察结果你的模拟器或真机应该会自动启动“设置”应用。脚本会尝试点击“网络和互联网”选项。查看运行脚本的终端和运行Appium Server的终端如果没有抛出红色的错误信息并且最后打印了“测试脚本执行完毕”那么恭喜你你的第一个Appium自动化环境已经完全搭建成功并验证通过6. 常见问题与深度排查指南安装过程很少一帆风顺以下是新手最常遇到的几个“拦路虎”及其解决方案。6.1 端口冲突与服务器启动失败问题现象执行appium命令时报错Could not start REST http interface listener. Requested port is already in use。原因与解决端口4723被其他程序占用。更换端口最简单的办法使用appium -p 4724指定一个新端口启动。同时记得在Appium Inspector和测试脚本中也将端口改为4724。找出并关闭占用进程Windows: 打开CMD运行netstat -ano | findstr :4723找到PID然后在任务管理器中结束对应进程。macOS/Linux: 运行lsof -i :4723或sudo lsof -i :4723找到PID然后用kill -9 PID结束进程。6.2 “adb devices”找不到设备问题现象运行adb devices显示空列表或者设备名后面跟着unauthorized。排查步骤检查USB连接与调试模式确保USB线完好且已连接。在手机“设置”-“关于手机”中连续点击“版本号”7次开启“开发者选项”。进入“开发者选项”开启“USB调试”。驱动问题仅Windows部分手机需要安装特定的USB驱动。可以尝试安装手机厂商官方提供的PC套件或驱动或使用通用的“Google USB Driver”。授权弹窗首次连接时手机会弹出“允许USB调试吗”的弹窗务必点击“允许”。如果错过了可以重启adb服务adb kill-server然后adb start-server。模拟器确认如果使用模拟器确保模拟器已完全启动进入系统界面。6.3 Appium Inspector连接会话失败问题现象点击“Start Session”后长时间无响应或弹出错误对话框。深度排查首要检查Appium Server日志。这是最关键的线索来源。看日志末尾的报错信息。检查Desired CapabilitiesautomationName必须为UiAutomator2(Android) 或XCUITest(iOS)。platformVersion必须与设备系统版本一致。appPackage和appActivity必须正确。可以通过adb shell dumpsys window | findstr mCurrentFocus(Windows) 或adb shell dumpsys window | grep mCurrentFocus(macOS/Linux) 命令查看当前前台应用的包名和Activity。对于Appium 2.x确保appium:前缀正确。在JSON中除了platformName其他Capability建议都加上appium:前缀或者全部不加在代码中Appium-Python-Client新版会自动处理。检查Remote PathAppium 2.x 通常使用/而不是/wd/hub。尝试切换。检查设备状态再次确认adb devices中有且设备状态为device。6.4 运行Python脚本时报“无法找到模块”或“SessionNotCreatedException”问题现象运行脚本时Python报错ModuleNotFoundError: No module named ‘appium‘或 WebDriver报SessionNotCreatedException。解决模块未找到说明Appium-Python-Client未安装或未安装在当前Python环境。使用pip list | findstr appium检查并确保在正确的虚拟环境中安装。Session创建失败这通常是Desired Capabilities配置错误或Appium Server/设备端问题。错误信息会包含详细原因例如‘app‘ capability is required when using…表示未指定应用路径。仔细阅读错误信息并对照Server日志一起分析。环境搭建是自动化测试的第一步也是最考验耐心的一步。它就像盖房子的地基地基打牢了后面砌墙盖楼才会顺利。这个过程虽然繁琐但只要你严格按照步骤并学会查看日志来排查问题就一定能成功。当你看到第一个脚本驱动手机自动操作起来的那一刻所有的麻烦都是值得的。这仅仅是开始接下来你可以探索更复杂的用户交互、数据驱动测试、框架设计等更有趣的部分了。
Appium自动化测试环境搭建:从零到一配置Android移动端测试框架
发布时间:2026/6/21 14:05:29
1. 项目概述为什么Appium是移动端自动化的首选如果你正在看这篇文章大概率是刚接触移动端自动化测试或者被五花八门的工具搞得眼花缭乱想找一个靠谱的起点。我干了快十年的测试开发从早期的MonkeyRunner、Robotium到后来的UIAutomator、Espresso再到现在的Appium可以说把这条路踩了个遍。今天咱们不聊虚的就从一个最实际、也最容易劝退新人的环节开始Appium的安装与环境配置。很多人觉得安装不就是“下一步、下一步、完成”吗那我得说你对Appium的“威力”可能有点误解。它本质上不是一个独立的软件而是一个客户端-服务器架构的测试框架。你的测试脚本用Python、Java等语言编写是客户端它通过WebDriver协议向一个中间服务器Appium Server发送指令这个服务器再去调用不同平台Android/iOS的原生测试框架来驱动真机或模拟器。这个设计让它具备了“一次编写多端运行”的跨平台能力但也让它的环境搭建变得相对复杂像搭积木一样缺一块都不行。所以这篇文章的目标很明确带你从零开始手把手搭建一个能稳定运行Android自动化测试的Appium环境。我会把每一步的原理、可能遇到的坑、以及我踩过无数次坑后总结的“保命”技巧都告诉你。整个过程会涉及JDK、Android SDK、Node.js、Appium Server、Appium Inspector以及Python客户端库。别怕跟着我的步骤走保证你能在半天内搞定这个“入门第一关”。2. 环境准备搭建稳固的基石在开始安装Appium之前我们需要先把它的“地基”打好。这个地基主要由三部分组成Java环境、Android开发环境和Node.js环境。顺序很重要乱来容易出问题。2.1 Java开发环境JDK安装与配置Appium Server本身是用Node.js写的但它需要调用Android SDK里的工具比如adb,uiautomator2而这些工具大部分是Java编写的。因此一个正确配置的JDK是必须的。1. 版本选择与下载我强烈建议使用JDK 8又称JDK 1.8。这不是因为它最新而是因为它最稳定、兼容性最广。很多Android构建工具和遗留系统都对JDK 8有最好的支持。更高版本如JDK 11, 17虽然也可以用但可能会遇到一些意想不到的兼容性问题对于新手来说先避开这些雷区。前往Oracle官网或OpenJDK站点如Adoptium下载对应你操作系统Windows/macOS/Linux的JDK 8安装包。注意对于macOS用户如果使用较新的系统如macOS Monterey及以上从Oracle直接安装JDK 8可能会遇到权限问题。一个更省心的办法是使用Homebrew来安装brew install --cask adoptopenjdk8。2. 安装与核心环境变量配置安装过程就是一路下一步。安装完成后配置系统环境变量是关键这一步错了后面全盘皆输。JAVA_HOME这个变量指向你的JDK安装根目录。例如在Windows上可能是C:\Program Files\Java\jdk1.8.0_361在macOS/Linux上可能是/Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home。Path在Path变量中添加%JAVA_HOME%\bin(Windows) 或$JAVA_HOME/bin(macOS/Linux)。3. 验证安装打开终端Windows是CMD或PowerShell输入以下命令java -version javac -version如果两行命令都能正确显示版本号特别是显示1.8.x并且没有“不是内部或外部命令”的错误说明配置成功。实操心得环境变量配置后一定要关闭并重新打开你的终端窗口新的配置才会生效。这是新手最常忽略的一点导致验证失败时一头雾水。2.2 Android SDK与平台工具安装Android SDK是Appium与Android设备沟通的桥梁。我们不需要安装完整的Android Studio那太臃肿只需要其命令行工具包Command-line Tools即可。1. 下载命令行工具前往Android开发者官网找到“Command line tools only”进行下载。解压到一个你容易找到的目录例如D:\Android\cmdline-tools。2. 配置ANDROID_HOME与PathANDROID_HOME这个变量指向你的Android SDK根目录。通常我们将解压后的cmdline-tools目录放在一个名为sdk的文件夹里那么ANDROID_HOME就指向这个sdk文件夹的路径例如D:\Android\sdk。Path需要添加多个路径到Path变量中%ANDROID_HOME%\platform-tools(包含adb,fastboot等关键工具)%ANDROID_HOME%\tools和%ANDROID_HOME%\tools\bin(包含sdkmanager,avdmanager等管理工具)%ANDROID_HOME%\cmdline-tools\latest\bin(新版本命令行工具路径)3. 使用sdkmanager安装必要组件打开终端使用以下命令安装最核心的包。这个过程可能需要科学上网请确保网络通畅。# 接受所有许可避免安装过程中断 sdkmanager --licenses --sdk_root%ANDROID_HOME% # 安装平台工具必须包含adb sdkmanager “platform-tools” --sdk_root%ANDROID_HOME% # 安装一个Android平台例如最常用的API 30 sdkmanager “platforms;android-30” --sdk_root%ANDROID_HOME% # 安装构建工具必须 sdkmanager “build-tools;30.0.3” --sdk_root%ANDROID_HOME%4. 验证adb安装完成后在终端输入adb version。如果能显示ADB的版本号说明Android SDK的基础部分配置成功。注意事项sdkmanager的路径和--sdk_root参数在新旧版本中有所不同。如果你遇到“命令未找到”的错误请检查Path中配置的路径是否正确并尝试在sdkmanager命令前加上完整路径。2.3 Node.js与npm环境安装Appium Server是一个Node.js应用因此我们需要Node.js环境来运行它。npm是Node.js的包管理器会随Node.js一同安装。1. 版本选择与下载建议选择长期支持版本LTS例如Node.js 18.x。它比最新版Current更稳定。从Node.js官网下载对应系统的安装包。2. 安装与验证安装过程简单基本无需额外配置。安装完成后在终端验证node -v npm -v两者都能显示版本号即可。3. 配置npm镜像源国内用户强烈建议默认的npm源在国外下载速度极慢且容易失败。将其替换为国内镜像源能极大提升体验。npm config set registry https://registry.npmmirror.com/可以通过npm config get registry命令检查是否设置成功。至此我们的三大基石已经准备完毕。接下来就可以开始安装主角——Appium了。3. Appium Server的安装与启动有了稳固的基础安装Appium Server本身反而是一件相对简单的事情。我们有两种主要方式通过npm全局安装或者使用桌面图形化客户端。我强烈建议新手先从npm安装开始因为它能让你更清晰地理解其组成并且在后续排查问题时命令行提供的日志信息也更为直接和完整。3.1 通过npm安装Appium Server打开你的终端确保Node.js已正确安装输入以下命令npm install -g appium这个-g参数代表全局安装意味着你可以在系统的任何位置运行appium命令。 安装过程可能会持续几分钟取决于你的网络速度。如果之前配置了国内npm镜像速度会快很多。安装完成后通过以下命令验证appium -v如果成功显示Appium的版本号如2.5.1恭喜你Server主体安装成功。3.2 安装必要的Appium驱动Driver这是Appium 2.0版本之后一个非常重要的变化在Appium 1.x时代所有平台的驱动如uiautomator2 for Android, XCUITest for iOS是内置的。但在2.0版本中Appium采用了插件化架构核心服务器只提供协议支持具体的设备驱动需要作为独立插件来安装。这带来了更好的灵活性和可维护性。对于Android自动化我们最常用、也最稳定的驱动是appium-uiautomator2-driver。 在终端中执行以下命令进行安装appium driver install uiautomator2这个命令会从Appium的插件仓库下载并安装最新的uiautomator2驱动。你可以通过appium driver list命令来查看已安装的驱动。3.3 启动Appium Server安装好驱动后我们就可以启动Appium Server了。在终端中直接输入appium默认情况下Appium Server会启动在http://127.0.0.1:4723。你会看到终端开始滚动日志最后一行出现类似[Appium] Appium REST http interface listener started on 0.0.0.0:4723的信息表示服务器已成功启动并正在监听4723端口。关键参数解析--address或-a: 指定监听的IP地址默认是0.0.0.0监听所有网络接口。一般本地测试用127.0.0.1即可。--port或-p: 指定端口号默认是4723。如果该端口被占用可以指定其他端口如appium -p 4724。--log-level: 设置日志级别如debug,info,warn,error。排查问题时使用debug会输出海量信息。--session-override: 允许覆盖现有会话。在脚本调试时如果前一个会话未正常结束这个参数很有用。一个更常用的启动命令示例指定日志级别和地址appium -a 127.0.0.1 -p 4723 --log-level info --session-override实操心得保持这个终端窗口打开不要关闭。这个窗口就是你的Appium Server运行日志的观察窗口任何客户端连接、指令执行、错误信息都会在这里打印是排查问题的第一现场。后续运行测试脚本时需要确保Server处于运行状态。4. 客户端工具链安装与配置Server端准备好了我们还需要“武器”来向它发送指令写测试脚本和“眼睛”来查看应用界面元素定位元素。这就是客户端工具链。4.1 安装Python客户端库Appium-Python-Client虽然Appium支持多种语言但Python因其语法简洁、生态丰富在自动化测试领域应用最广。我们将使用Appium-Python-Client这个库来编写测试脚本。使用pip进行安装建议在虚拟环境中进行pip install Appium-Python-Client这个库封装了与Appium Server通信的所有WebDriver协议细节让我们可以用面向对象的方式来编写测试代码。4.2 安装与使用Appium Inspector元素定位神器写自动化脚本70%的工作是在定位界面元素上。Appium Inspector是一个图形化工具可以连接到正在运行的应用像“检查器”一样查看其UI组件树并获取元素的唯一标识符如resource-id, xpath, accessibility id等是编写脚本不可或缺的助手。1. 下载与安装由于Appium 2.0的架构变化传统的独立Appium Inspector桌面版已不再更新。现在官方推荐的方式是使用Appium Inspector as a Desktop App它本质上是一个封装了Web界面的Electron应用。前往Appium官方GitHub仓库的Release页面找到appium-inspector的发布版本下载对应你操作系统的安装包.dmg, .exe, .AppImage等。安装过程与普通软件无异。2. 配置与连接这是最容易出错的一步。打开Appium Inspector你需要正确配置Remote Server的地址才能连接到你的Appium Server和待测应用。Remote Host:127.0.0.1或localhostRemote Port:4723(与你启动Appium Server的端口一致)Remote Path:/wd/hub(对于Appium 1.x) 或/(对于Appium 2.x)。Appium 2.x默认使用根路径/这是与1.x最大的不同之一填错会导致连接失败。Desired Capabilities: 这是核心配置是一个JSON对象告诉Appium Server你要测试什么应用、在什么设备上、以什么方式测试。一个连接Android模拟器上系统设置应用的示例如下{ “platformName”: “Android”, “appium:platformVersion”: “11.0”, “appium:deviceName”: “Android Emulator”, “appium:automationName”: “UiAutomator2”, “appium:appPackage”: “com.android.settings”, “appium:appActivity”: “.Settings” }配置好后点击“Start Session”按钮。如果一切正常Inspector会启动模拟器或连接真机上的目标应用并在右侧显示应用的UI层级树和元素属性。避坑指南如果点击“Start Session”后长时间卡住或报错请第一时间检查你的Appium Server终端日志。常见的错误包括Desired Capabilities配置错误如automationName没写对、设备未连接或未启动、端口被占用、驱动未安装等。日志里通常会有明确的错误信息提示。5. 完整环境验证运行你的第一个自动化脚本环境都搭好了是骡子是马拉出来遛遛。我们用一个最简单的脚本来验证整个链路是否通畅。这个脚本将打开Android系统自带的“设置”应用然后退出。1. 准备Python脚本 (first_test.py):from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy import time # 1. 定义Desired Capabilities与Appium Inspector中的配置基本一致 desired_caps { “platformName”: “Android”, “appium:platformVersion”: “11.0”, # 你的模拟器/真机系统版本 “appium:deviceName”: “Android Emulator”, # 设备名称模拟器可用此名 “appium:automationName”: “UiAutomator2”, “appium:appPackage”: “com.android.settings”, “appium:appActivity”: “.Settings”, “appium:noReset”: True # 不重置应用状态便于快速测试 } # 2. 连接Appium Server # 注意Appium 2.x 的默认端点通常是 ‘http://127.0.0.1:4723‘ 而不是 ‘.../wd/hub‘ driver webdriver.Remote(‘http://127.0.0.1:4723‘, desired_caps) # 3. 一个简单的操作等待2秒让界面稳定 time.sleep(2) # 4. 尝试找到一个元素例如“网络和互联网”选项并点击这里用文本定位示例 try: # 通过文本内容定位元素 element driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, ‘new UiSelector().text(“网络和互联网”)‘) element.click() print(“成功找到并点击了‘网络和互联网’选项”) except Exception as e: print(f“未找到指定元素或点击失败: {e}“) # 可以改为通过XPath或其他方式定位 # 例如driver.find_element(AppiumBy.XPATH, “//android.widget.TextView[text‘网络和互联网’]“).click() # 5. 再等待2秒观察结果 time.sleep(2) # 6. 退出会话 driver.quit() print(“测试脚本执行完毕”)2. 执行前的检查清单[ ] Appium Server 正在终端运行appium命令未停止。[ ] Android模拟器已启动或者真机已通过USB连接电脑并开启了USB调试模式在终端输入adb devices应能看到设备列表。[ ] 脚本中的platformVersion和deviceName需要根据你的实际情况修改。deviceName可以通过adb devices -l命令查看。3. 运行脚本在另一个终端窗口导航到脚本所在目录执行python first_test.py4. 观察结果你的模拟器或真机应该会自动启动“设置”应用。脚本会尝试点击“网络和互联网”选项。查看运行脚本的终端和运行Appium Server的终端如果没有抛出红色的错误信息并且最后打印了“测试脚本执行完毕”那么恭喜你你的第一个Appium自动化环境已经完全搭建成功并验证通过6. 常见问题与深度排查指南安装过程很少一帆风顺以下是新手最常遇到的几个“拦路虎”及其解决方案。6.1 端口冲突与服务器启动失败问题现象执行appium命令时报错Could not start REST http interface listener. Requested port is already in use。原因与解决端口4723被其他程序占用。更换端口最简单的办法使用appium -p 4724指定一个新端口启动。同时记得在Appium Inspector和测试脚本中也将端口改为4724。找出并关闭占用进程Windows: 打开CMD运行netstat -ano | findstr :4723找到PID然后在任务管理器中结束对应进程。macOS/Linux: 运行lsof -i :4723或sudo lsof -i :4723找到PID然后用kill -9 PID结束进程。6.2 “adb devices”找不到设备问题现象运行adb devices显示空列表或者设备名后面跟着unauthorized。排查步骤检查USB连接与调试模式确保USB线完好且已连接。在手机“设置”-“关于手机”中连续点击“版本号”7次开启“开发者选项”。进入“开发者选项”开启“USB调试”。驱动问题仅Windows部分手机需要安装特定的USB驱动。可以尝试安装手机厂商官方提供的PC套件或驱动或使用通用的“Google USB Driver”。授权弹窗首次连接时手机会弹出“允许USB调试吗”的弹窗务必点击“允许”。如果错过了可以重启adb服务adb kill-server然后adb start-server。模拟器确认如果使用模拟器确保模拟器已完全启动进入系统界面。6.3 Appium Inspector连接会话失败问题现象点击“Start Session”后长时间无响应或弹出错误对话框。深度排查首要检查Appium Server日志。这是最关键的线索来源。看日志末尾的报错信息。检查Desired CapabilitiesautomationName必须为UiAutomator2(Android) 或XCUITest(iOS)。platformVersion必须与设备系统版本一致。appPackage和appActivity必须正确。可以通过adb shell dumpsys window | findstr mCurrentFocus(Windows) 或adb shell dumpsys window | grep mCurrentFocus(macOS/Linux) 命令查看当前前台应用的包名和Activity。对于Appium 2.x确保appium:前缀正确。在JSON中除了platformName其他Capability建议都加上appium:前缀或者全部不加在代码中Appium-Python-Client新版会自动处理。检查Remote PathAppium 2.x 通常使用/而不是/wd/hub。尝试切换。检查设备状态再次确认adb devices中有且设备状态为device。6.4 运行Python脚本时报“无法找到模块”或“SessionNotCreatedException”问题现象运行脚本时Python报错ModuleNotFoundError: No module named ‘appium‘或 WebDriver报SessionNotCreatedException。解决模块未找到说明Appium-Python-Client未安装或未安装在当前Python环境。使用pip list | findstr appium检查并确保在正确的虚拟环境中安装。Session创建失败这通常是Desired Capabilities配置错误或Appium Server/设备端问题。错误信息会包含详细原因例如‘app‘ capability is required when using…表示未指定应用路径。仔细阅读错误信息并对照Server日志一起分析。环境搭建是自动化测试的第一步也是最考验耐心的一步。它就像盖房子的地基地基打牢了后面砌墙盖楼才会顺利。这个过程虽然繁琐但只要你严格按照步骤并学会查看日志来排查问题就一定能成功。当你看到第一个脚本驱动手机自动操作起来的那一刻所有的麻烦都是值得的。这仅仅是开始接下来你可以探索更复杂的用户交互、数据驱动测试、框架设计等更有趣的部分了。