Appium 3.x安卓APP企业级安装实战

发布时间:2026/7/24 21:05:48

Appium 3.x安卓APP企业级安装实战 Appium 3.x 企业级安卓APP安装规范写法商城实战示例前言本文整理Appium移动端自动化测试中APP安装操作的企业级标准实现方式。对比课堂教学中为串讲知识点而设计的零散流程梳理符合项目实战的代码结构与设计逻辑所有代码均基于 Appium 3.5.2 Python Client 5.x 环境实操验证适合入门后向项目写法过渡用于复习与面试参考。本文为个人原创学习笔记代码与内容均为实操整理发布于CSDN仅作技术交流Appium遵循Apache 2.0开源协议。一、企业级写法 vs 课堂演示写法课堂上“先打开设置→跳转APP→再安装商城”的流程是为了在一段脚本里串联多个API知识点属于教学专用演示。真实企业项目中代码以「稳定、可维护、易排查」为核心不会有冗余的跨应用跳转目标明确、逻辑闭环。两者核心区别维度课堂演示写法企业级规范写法流程设计为串联API强行拼接多步操作流程冗余目标单一只做安装/启动相关操作无多余步骤结果校验执行完无验证静默失败也无法感知每一步操作后校验状态确保执行成功代码维护包名、路径硬编码在命令里修改麻烦配置抽离为变量改参数不用动业务逻辑排查成本无日志输出报错不知道哪一步出问题每步加打印日志快速定位故障点二、方案一自动安装企业90%场景首选适用场景常规自动化测试项目只需要启动目标APP不需要频繁卸载重装。这是Appium官方推荐的最简标准写法全程不用自己写安装判断逻辑。实现逻辑直接在能力集caps中配置本地APK文件路径Appium会自动处理设备未安装该APP → 自动安装后启动设备已安装该APP → 直接启动配合noReset保留数据完整可运行代码importtimefromappiumimportwebdriverfromappium.options.commonimportAppiumOptions# 可配置项修改这里即可切换不同APP # 目标APP包名TARGET_APP_PACKAGEcom.tpshop.malls# 本地APK文件绝对路径APK_FILE_PATHrD:\BaiduNetdiskDownload\配套课件\9-阶段九UI自动化测试\移动端环境\apk\TPshop.apk# Appium服务地址APPIUM_SERVERhttp://127.0.0.1:4723# 设备基础配置caps{platformName:Android,appium:platformVersion:9,appium:deviceName:127.0.0.1:5555,appium:automationName:UiAutomator2,# 配置APK路径Appium自动处理安装与启动appium:app:APK_FILE_PATH,appium:noReset:True,}# 加载配置连接Appium服务optionsAppiumOptions()options.load_capabilities(caps)driverwebdriver.Remote(command_executorAPPIUM_SERVER,optionsoptions)# 等待APP加载完成time.sleep(3)# 验证启动结果print(f启动成功当前包名{driver.current_package})print(f当前页面{driver.current_activity})# 结束会话driver.quit()三、方案二可控式安装卸载环境清理/多版本测试适用场景需要强制清理环境、每次执行前重装APP或者需要切换多个APP版本的测试场景。对安装、卸载过程有完全控制权每一步都有状态校验确保环境干净一致。完整规范代码importtimefromappiumimportwebdriverfromappium.options.commonimportAppiumOptions# 可配置项 TARGET_APP_PACKAGEcom.tpshop.mallsAPK_FILE_PATHrD:\BaiduNetdiskDownload\配套课件\9-阶段九UI自动化测试\移动端环境\apk\TPshop.apkAPPIUM_SERVERhttp://127.0.0.1:4723# 设备基础配置caps{platformName:Android,appium:platformVersion:9,appium:deviceName:127.0.0.1:5555,appium:automationName:UiAutomator2,# 初始化先停在系统桌面不启动业务APPappium:appPackage:com.android.launcher3,appium:noReset:True,}# 连接Appium服务optionsAppiumOptions()options.load_capabilities(caps)driverwebdriver.Remote(command_executorAPPIUM_SERVER,optionsoptions)# 核心安装流程 # 1. 检查APP是否已安装is_installeddriver.execute_script(mobile: isAppInstalled,{appId:TARGET_APP_PACKAGE})ifis_installed:print(f检测到{TARGET_APP_PACKAGE}已安装执行卸载清理...)driver.execute_script(mobile: removeApp,{appId:TARGET_APP_PACKAGE})time.sleep(3)# 等待卸载完成# 卸载后二次校验ifnotdriver.execute_script(mobile: isAppInstalled,{appId:TARGET_APP_PACKAGE}):print(卸载成功)else:print(警告卸载失败请检查权限)# 2. 执行安装print(开始安装TPshop商城...)driver.execute_script(mobile: installApp,{appPath:APK_FILE_PATH})time.sleep(5)# 安装耗时较长根据APK大小调整等待时间# 3. 安装结果校验ifdriver.execute_script(mobile: isAppInstalled,{appId:TARGET_APP_PACKAGE}):print(✅ TPshop商城安装成功)else:print(❌ 安装失败请检查APK文件路径与系统权限)# 4. 启动APP验证print(正在启动APP...)driver.execute_script(mobile: shell,{command:fmonkey -p{TARGET_APP_PACKAGE}-c android.intent.category.LAUNCHER 1})time.sleep(3)print(f当前前台包名{driver.current_package})# 结束会话driver.quit()print(安装测试流程结束)四、API版本适配对照表复习必看Appium-Python-Client 5.x 已移除大量直接调用方法所有操作统一通过mobile:协议执行对应关系如下老版本直接方法已失效新版标准写法功能说明driver.is_app_installed()driver.execute_script(mobile: isAppInstalled, {appId: 包名})判断APP是否已安装driver.install_app()driver.execute_script(mobile: installApp, {appPath: APK路径})安装本地APKdriver.remove_app()driver.execute_script(mobile: removeApp, {appId: 包名})卸载指定APPdriver.terminate_app()driver.execute_script(mobile: terminateApp, {appId: 包名})强制关闭APP前置条件启动Appium服务时需添加--relaxed-security参数放开shell与安装相关权限本地学习测试使用无安全风险。五、企业级写法核心设计总结配置抽离把包名、路径、地址等易变参数抽成顶部变量后续维护只改配置不用动业务逻辑结果校验关键操作后必须校验执行结果避免静默失败导致后续步骤全错日志清晰每一步加打印输出排查问题时能一眼定位到失败节点最小冗余不做无意义的跨应用跳转初始化要么直接打开目标APP要么停在桌面流程最短最稳定版权与参考说明本文为个人原创学习笔记所有代码与案例均为实操整理发布于CSDN仅作技术交流Appium 为开源自动化测试框架遵循 Apache 2.0 开源协议引用其官方规范仅作学习说明转载请注明原文出处禁止商用参考资料Appium 官方文档

相关新闻