Appium系列--3--Android appium 内存溢出的解决方法

本文介绍了两种解决Android Appium内存溢出问题的方法。第一种是通过调整Appium服务器的--max-old-space-size参数限制内存大小,避免设置超过2047导致的错误。第二种方法涉及appium-adb的logcat.js,注释掉接收和存储logcat日志的代码,以防止内存持续增长。这两种方案均基于网上分享的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

第一种:

Android appium服务器执行自动化脚本一个多小时总是报FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory内存溢出

通过调整\Appium\node_modules.bin\appium.cmd中的–max-old-space-size内存限制大小参数值
调整之前:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\appium\bin\appium.js" %*
) ELSE (
  node  "%~dp0\..\appium\bin\appium.js" %*
)

调整之后:


@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\appium\bin\appium.js" %*
) ELSE (
  node --max-old-space-size=2047 --gc-global  "%~dp0\..\appium\bin\appium.js" %*
)

【敲黑板知识点】:–max-old-space-size参数值设置超过

### Appium UI 自动化测试实现方法 #### 工具简介 Appium 是一款开源的跨平台移动应用自动化测试工具,能够用于安卓、iOS 和 Windows 应用的 UI 测试。它支持原生应用、混合应用和 Web 应用,并且不需要对被测应用进行二次打包即可完成测试[^3]。 #### 环境搭建 要成功实施 Appium 的 UI 自动化测试,首先需要搭建合适的测试环境。以下是详细的环境准备步骤: 1. **安装 Java Development Kit (JDK)** Appium 需要 JDK 来编译和运行测试脚本。确保已正确安装并设置 JAVA_HOME 环境变量[^4]。 2. **安装 Node.js** Appium 基于 Node.js 构建,因此需要先安装 Node.js 及其包管理器 npm。可以通过命令 `npm install -g appium` 安装 Appium[^1]。 3. **配置 Android SDK** 对于 Android 测试,需下载并配置 Android SDK。具体包括: - 下载 Android SDK Tools。 - 设置 ANDROID_HOME 环境变量指向 SDK 路径。 - 添加 platform-tools 到 PATH 中以便访问 adb 工具[^2]。 4. **启动 Appium Server** 启动 Appium server 作为客户端和服务端之间的桥梁。可以使用 GUI 版本或者通过命令行启动:`appium &`[^1]。 #### 编写测试脚本 编写测试脚本通常使用 Python、Java 或 JavaScript 等编程语言配合 Selenium WebDriver API 进行操作。以下是一个简单的 Python 示例代码展示如何连接设备并执行基本的操作: ```python from appium import webdriver desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', # 替换为实际设备名称 'appPackage': 'com.example.app', # 替换为目标应用程序包名 'appActivity': '.MainActivity' # 替换为主 Activity 名称 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) try: element = driver.find_element_by_id("button_id") # 查找按钮元素 element.click() # 执行点击动作 finally: driver.quit() ``` 此代码片段展示了如何初始化驱动程序并与目标应用交互[^3]。 #### 插件扩展与高级功能 随着需求的增长,可能需要用到一些额外的功能来增强测试能力。例如: - 图像识别插件可以帮助定位难以通过传统方式找到的界面组件。 - 日志记录可用于调试复杂场景下的失败原因。 - Cucumber 结合 BDD 方法论可以让业务人员更容易理解测试案例结构。 #### Jenkins集成持续交付流程 如果希望将 Appium 测试融入 CI/CD 系统,则可考虑将其部署到 Jenkins 上。主要涉及以下几个方面: - 清理旧版构建产物以防存储溢出; - 明确指定远程节点以分配资源合理利用硬件设施; - 设定触发条件比如定期扫描仓库更新提交后的自动运行机制; - 收集整理最终形成的 HTML 报告文件便于后续分析评估质量状况[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨水的早晨

程序媛也得攒钱植发啊~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值