APP自动化测试环境搭建(Appium+Python+Jenkins 一站式教程)

APP自动化测试环境搭建(Appium+Python+Jenkins 一站式教程)

    • 前言
    • [一、 环境搭建整体规划](#一、 环境搭建整体规划)
    • [二 、基础软件安装与配置(Windows系统)](#二 、基础软件安装与配置(Windows系统))
      • [2.1 JDK 17.0.10 安装(Android SDK依赖JDK运行)](#2.1 JDK 17.0.10 安装(Android SDK依赖JDK运行))
      • [2.2 Python 3.11.9 安装(编写脚本)](#2.2 Python 3.11.9 安装(编写脚本))
      • [2.3 Node.js 20.20.0 安装(Appium依赖)](#2.3 Node.js 20.20.0 安装(Appium依赖))
      • [2.4 Android SDK 安装与配置(提供adb工具)](#2.4 Android SDK 安装与配置(提供adb工具))
    • [三、Appium 核心工具安装与配置](#三、Appium 核心工具安装与配置)
      • [3.1 旧版Appium Desktop与新版Appium Server核心区别](#3.1 旧版Appium Desktop与新版Appium Server核心区别)
      • [3.2 Appium Server 安装(2.x+版本)](#3.2 Appium Server 安装(2.x+版本))
      • [3.2 Appium Python Client 安装](#3.2 Appium Python Client 安装)
    • 四、设备连接配置(模拟器/真实设备)
      • [4.1 模拟器配置](#4.1 模拟器配置)
      • [4.2 真实设备配置](#4.2 真实设备配置)
    • 五、APP元素定位工具选型、安装
    • 六、自动化脚本编写与本地验证
      • [6.1 编写脚本](#6.1 编写脚本)
      • [6.2 本地运行验证](#6.2 本地运行验证)
    • [七、Jenkins 安装与配置](#七、Jenkins 安装与配置)
      • [7.1 Jenkins 安装](#7.1 Jenkins 安装)
      • [7.2 Jenkins 初始化配置](#7.2 Jenkins 初始化配置)
      • [7.3 Jenkins 环境变量配置(关联Python/Appium)](#7.3 Jenkins 环境变量配置(关联Python/Appium))
      • [7.4 Jenkins创建自动化任务(自由风格任务)](#7.4 Jenkins创建自动化任务(自由风格任务))
      • [7.5 运行任务并查看结果](#7.5 运行任务并查看结果)
    • 八、常见问题排查
    • 总结

前言

在移动互联网产品迭代速度越来越快的今天,APP自动化测试已经成为保障产品质量、提升测试效率的核心手段。其中,Appium+Python+Jenkins 的组合凭借其跨平台兼容性(支持Android/iOS)、脚本编写简洁性、持续集成易落地性,成为了行业内主流的APP自动化测试解决方案。

本文基于 JDK 17.0.10Python 3.11.9 版本适配,提供一份详细、可落地的一站式环境搭建教程,从基础软件安装到最终持续集成跑通,全程步骤清晰、备注关键版本兼容要点,新手也能跟着一步步完成搭建,避免踩坑。

一、 环境搭建整体规划

在开始具体操作前,先明确整个环境的核心组成和依赖关系,避免搭建过程中出现遗漏或版本冲突:

  1. 基础运行环境:JDK 17.0.10(Appium 2.x+ 稳定依赖)、Python 3.11.9(自动化脚本编写,兼容最新Appium客户端)、Node.js 20.20.0(Appium服务运行依赖)

  2. 移动设备支撑:Android SDK(安卓设备/模拟器驱动管理)、安卓模拟器/真实设备

  3. 核心自动化工具:Appium Server(自动化服务端,推荐2.x+版本)、Appium Python Client(Python客户端依赖,适配Python 3.11)

  4. 持续集成工具:Jenkins(任务调度、自动触发运行、结果可视化)

  5. 验证环节:编写简单Python自动化脚本,本地调试通过后,配置Jenkins实现持续集成运行

二 、基础软件安装与配置(Windows系统)

提示:所有软件安装路径禁止包含中文、空格及特殊字符,否则会导致后续工具运行报错(如Appium启动失败、SDK识别异常、Jenkins任务执行失败等)。

2.1 JDK 17.0.10 安装(Android SDK依赖JDK运行)

Appium 2.x+ 版本对JDK 11+ 支持更稳定,本文选用 JDK 17.0.10(长期支持版本,兼容性强,同时适配后续Jenkins运行需求)。需注意:JDK 17 已移除JRE目录,环境变量配置与JDK 8略有差异。

前往官方渠道下载对应系统的JDK 17.0.10安装包,选择与系统位数匹配的版本(64位为主):


2.2 Python 3.11.9 安装(编写脚本)

参考我另一篇文章python安装教程

选用 Python 3.11.9 版本(稳定版,兼容最新版Appium Python Client,同时避免3.12+版本可能存在的依赖包适配问题)。


2.3 Node.js 20.20.0 安装(Appium依赖)

参考我另一篇文章Node.js 安装教程

Appium基于Node.js开发,需安装Node.js环境才能启动Appium Server,推荐版本为Node.js v20.x LTS稳定版,兼顾安全性、兼容性和长期可用性


2.4 Android SDK 安装与配置(提供adb工具)

参考我另一篇文章Android SDK 版本选择、下载、安装

Android SDK用于管理安卓设备驱动、模拟器镜像,无需安装完整Android Studio,单独安装SDK Tools即可,适配Python 3.11.9和后续Appium设备连接需求。

三、Appium 核心工具安装与配置

3.1 旧版Appium Desktop与新版Appium Server核心区别

(1)形态与安装方式:旧版Appium Desktop是带图形界面(GUI)的独立安装包,集成了Appium Server、元素定位工具(Inspector),无需命令行操作;新版Appium已彻底移除独立GUI安装包,仅提供命令行版本(需通过npm安装),元素定位需单独安装Appium Inspector工具。

(2)Node.js依赖处理:旧版Appium Desktop会在安装包内部捆绑对应版本的Node.js,无需用户手动安装和配置,本质是"内置封装"而非"脱离依赖",启动时自动调用内置Node.js运行Server;新版Appium需依赖系统全局安装的Node.js,通过npm命令安装和启动,无内置Node.js模块。

(3)功能与扩展性:旧版功能集成度高,适合新手可视化操作,但版本迭代停滞(最后稳定版为1.22.x),对高版本JDK、新安卓系统(Android 12+)和Python 3.11+适配性差;新版Appium 2.x+支持驱动模块化管理(如按需安装uiautomator2、XCUITest驱动),兼容JDK 11+和Python 3.8+,迭代活跃且支持更多新特性,更适合企业级自动化和持续集成场景。

(4)维护与生态:Appium官方已停止对Desktop版本的更新维护,后续仅优化命令行版本;新版依托npm生态,可通过命令快速升级、安装插件,适配Jenkins等持续集成工具更顺畅。

3.2 Appium Server 安装(2.x+版本)

Appium 2.x+ 版本支持命令行启动,同时兼容JDK 17.0.10和Python 3.11.9,安装步骤如下:

(1)打开cmd命令行,执行npm安装命令:npm install -g appium(默认全局安装最新版Appium,也可以指定版本安装);

(2)安装驱动(Android驱动uiautomator2):appium driver install uiautomator2

(3)验证安装:输入 appium -v 显示2.x+版本号,输入 appium driver list 能看到uiautomator2驱动,则安装成功。

3.2 Appium Python Client 安装

安装适配Python 3.11.9的客户端依赖,用于编写Python自动化脚本与Appium Server通信:

(1)打开cmd命令行,执行pip安装命令:pip install appium-python-client(自动安装适配Python 3.11的最新版本,或者指定版本);

(2)验证安装:输入 pip list,若能看到「appium-python-client」条目,则安装成功。

四、设备连接配置(模拟器/真实设备)

4.1 模拟器配置

  1. 推荐使用雷电模拟器、夜神模拟器,安装后打开模拟器,在「设置」中开启「开发者选项」,勾选「USB调试」;

  2. 连接夜神模拟器:启动夜神模拟器,打开电脑cmd命令行,输入命令 adb connect 127.0.0.1:62001(夜神默认端口为62001,其他模拟器端口不同),提示"connected to 127.0.0.1:62001"即为连接成功。

  3. 连接雷电模拟器:启动雷电模拟器,打开电脑cmd命令行,输入命令 adb connect 127.0.0.1:5555(雷电模拟器默认端口5555),提示"connected to 127.0.0.1:5555"即为连接成功。

  4. 验证连接:输入命令 adb devices,若列表中显示"127.0.0.1:62001 device",说明模拟器已被adb识别,可正常用于Appium、Android Studio测试。

4.2 真实设备配置

(1)USB连接

  1. 安卓设备开启「开发者选项」(连续点击系统版本号5次),勾选「USB调试」,连接电脑(选择「传输文件」模式);不同手机l操作略有不同

  2. 若设备未被识别,安装对应品牌USB驱动(或通过Android SDK中的USB驱动自动适配);

  3. 执行 adb devices,显示设备ID(如「XXXXXXXXXXXX」),则真实设备连接成功。

(2)无线连接

  1. 同一WIFI环境下
  2. adb connect ip:端口号
  3. 执行 adb devices,显示设备ip:端口号,说明连接成功。

五、APP元素定位工具选型、安装

建议使用Appium Inspector

工具名称 定位类型 核心优点 核心缺点 适配技术栈 适用场景
Appium Inspector 原生APP(Android/iOS) 功能全面、代码生成、实时调试、跨平台 需启动Appium Server、配置复杂、资源占用较高 Appium框架 企业级项目、跨平台测试、高定位精度需求
WEditor Android原生APP 安装便捷、轻量高速、适配uiautomator2、操作简单 仅支持Android、与Appium环境冲突 Python + uiautomator2 小型项目、快速调试、Android专属测试
UC-DevTools WebView/H5页面 国内网络稳定、WebView适配强、网络调试能力 不支持原生控件定位、仅适配混合APP 所有混合APP(原生+WebView) 国内环境、H5页面调试、网络问题排查
Chrome Inspect WebView/H5页面 原生集成、功能强大、社区资源丰富 需翻墙、国内网络兼容性差 Chrome内核WebView 外网环境、深度Web调试、熟悉Chrome操作的用户
ADB命令行 Android原生APP 无GUI依赖、应急高效、灵活可控、无需额外安装 无图形化、操作繁琐、无实时调试 所有Android自动化框架 应急定位、服务器环境、脚本动态定位

六、自动化脚本编写与本地验证

编写简单的Python自动化脚本,验证Appium与设备的连接,以及脚本运行效果(以打开设备自带计算器APP为例)。

6.1 编写脚本

创建test_calc.py文件,内容如下(需根据设备型号、APP包名调整):

python 复制代码
# 导入Appium客户端依赖
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
import time

# 设备与APP配置信息
desired_caps = {
    "platformName": "Android",  # 系统类型
    "platformVersion": "13",     # 设备系统版本(模拟器/真实设备版本)
    "deviceName": "emulator-5554",  # 设备ID(通过adb devices获取)
    "appPackage": "com.android.calculator2",  # 计算器APP包名
    "appActivity": ".Calculator",  # 计算器APP启动页
    "noReset": True,  # 不重置APP状态
    "automationName": "UiAutomator2"  # 自动化引擎(对应安装的uiautomator2驱动)
}

# 连接Appium Server,启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
print("APP启动成功")

# 简单操作:点击数字1
driver.find_element(AppiumBy.ID, "com.android.calculator2:id/digit_1").click()
time.sleep(2)

# 关闭APP,退出驱动
driver.quit()
print("脚本运行完成")
      

6.2 本地运行验证

  1. 打开cmd命令行,启动Appium Server:appium(默认端口4723,启动成功后显示「Appium REST http interface listener started on 0.0.0.0:4723」);

  2. 打开新的cmd窗口,切换至脚本所在目录,执行命令:python test_calc.py

  3. 观察设备:模拟器/真实设备自动打开计算器APP,点击数字1,随后关闭APP,命令行显示「脚本运行完成」,则本地验证成功。

七、Jenkins 安装与配置

7.1 Jenkins 安装

  1. 下载Jenkins安装包:https://www.jenkins.io/download/,选择Windows系统的「LTS」稳定版(长期支持版本);

  2. 双击安装包,默认下一步,建议自定义安装路径(例:D:\Develop\Jenkins),安装过程中会自动关联本地JDK 17.0.10环境;

  3. 安装完成后,Jenkins会自动启动,默认端口为8080,访问 http://localhost:8080 进入初始化页面。

7.2 Jenkins 初始化配置

  1. 根据页面提示,从Jenkins安装目录的「secrets\initialAdminPassword」文件中获取初始密码,输入后进入插件安装页面;

  2. 选择「安装推荐的插件」,等待插件下载安装完成(需联网,耗时约5-10分钟);

  3. 创建管理员账号(用户名、密码、邮箱),完成初始化后进入Jenkins主页面。

7.3 Jenkins 环境变量配置(关联Python/Appium)

  1. 进入Jenkins主页面,点击「系统管理」→「系统配置」;

  2. 下拉至「全局属性」,勾选「环境变量」,新增以下变量(对应本地安装路径):

    • 变量名:JAVA_HOME,变量值:D:\Develop\Java\jdk-17.0.10

    • 变量名:PYTHON_HOME,变量值:D:\Develop\Python311

    • 变量名:ANDROID_HOME,变量值:D:\Develop\Android\Sdk

    • 变量名:Path,变量值:%PYTHON_HOME%;%PYTHON_HOME%\Scripts;%ANDROID_HOME%\platform-tools;%NODE_HOME%\bin(补充本地Node.js路径)

  3. 点击「保存」,完成环境变量关联,确保Jenkins能调用本地Python、Appium、ADB等工具。

7.4 Jenkins创建自动化任务(自由风格任务)

  1. Jenkins主页面点击「新建任务」,输入任务名称(如「APP自动化测试任务」),选择「自由风格软件项目」,点击「确定」;

  2. 进入任务配置页面,在「源码管理」中选择「无」(本地脚本无需源码仓库,若脚本存于Git可配置Git地址);

  3. 在「构建步骤」中点击「增加构建步骤」,选择「执行Windows批处理命令」,输入命令:

cd D:\Scripts\AppiumTest(脚本所在目录)

python test_calc.py

  1. 点击「保存」,完成任务创建。

7.5 运行任务并查看结果

  1. 回到任务页面,点击「立即构建」,Jenkins开始执行任务,可点击「控制台输出」查看运行日志;

  2. 若日志显示「脚本运行完成」,无报错信息,且设备执行了对应操作,则Jenkins自动化任务运行成功;

  3. 后续可配置定时构建、触发构建(如代码提交后触发),实现持续集成。

八、常见问题排查

  1. Appium启动失败:检查JDK、Node.js版本是否兼容,确保JDK 17.0.10和Node.js v16.x,且环境变量配置正确;

  2. 设备无法识别(adb devices无设备):检查USB调试是否开启,模拟器端口是否映射,ADB驱动是否安装;

  3. Jenkins执行脚本报错「python不是内部命令」:检查Jenkins全局环境变量中PYTHON_HOME和Path是否配置正确,重启Jenkins生效;

  4. 脚本运行报错「NoSuchElementException」:检查APP包名、启动页是否正确,元素ID是否与设备系统版本匹配。

总结

  • 本文基于JDK 17.0.10和Python 3.11.9版本,完成了Appium+Python+Jenkins自动化测试环境的全流程搭建,从基础软件安装、环境变量配置,到脚本编写、Jenkins持续集成,

  • 搭建完成后,可基于此环境扩展复杂的自动化脚本(如UI自动化、接口联动自动化),通过Jenkins实现定时执行、结果监控,大幅提升APP测试效率。后续将持续更新 适配iOS设备、集成测试报告插件(如Allure)等,进一步完善自动化测试体系。

后续不定时更新