Mac端Safari浏览器上Appium执行速度极慢问题求助
解决Appium iOS Safari自动化测试速度过慢的方案
我之前在iOS 11.3 + Xcode 9.3的环境下做Safari自动化测试时,也碰到过和你一模一样的速度卡顿问题,折腾了好一阵才找到几个靠谱的解决办法,分享给你:
关闭不必要的Appium默认行为
Appium默认会在每个操作后自动截图、处理弹窗,这些在iOS环境里会严重拖慢执行速度。你可以在Desired Capabilities里添加以下配置来禁用这些冗余操作:const caps = { platformName: 'iOS', platformVersion: '11.3', deviceName: '你的测试设备/模拟器名称', browserName: 'Safari', autoAcceptAlerts: false, // 关闭自动弹窗处理 autoWebview: false, // 禁止自动切换到WebView上下文 shouldUseCompactResponses: true, // 减少Appium返回的冗余数据 newCommandTimeout: 300 // 延长命令超时时间,避免频繁重试 };优化模拟器性能
模拟器的渲染负载是速度慢的常见原因,你可以做这几个调整:- 关闭模拟器的「显示设备边框」选项(顶部菜单:窗口 > 显示设备边框);
- 进入模拟器的系统设置,开启「减少动态效果」(设置 > 通用 > 辅助功能 > 减少动态效果);
- 确保使用的是64位设备镜像,iOS 11+对32位镜像的兼容性和性能都很差。
调整Appium服务器启动参数
启动Appium时减少日志输出、关闭不必要的安全校验,能大幅降低IO和校验开销:appium --log-level warn --relaxed-security注意:
--relaxed-security仅用于测试环境,生产环境不要使用。手动适配WebDriverAgent
Appium内置的WebDriverAgent可能和Xcode 9.3存在适配问题,你可以手动编译适配版本:- 获取适配Xcode 9.3的WebDriverAgent源码(确保版本匹配);
- 在Xcode中打开WebDriverAgent项目,完成代码签名并编译;
- 启动Appium时指定自定义的WebDriverAgent路径:
appium --webdriveragent-path /你的本地WebDriverAgent路径/WebDriverAgent.xcodeproj
精简测试脚本逻辑
脚本里的冗余操作也是拖慢速度的关键:- 避免频繁在Native和WebView上下文之间切换,尽量在同一个上下文完成所有操作;
- 用显式等待替代隐式等待,精准控制等待时间,避免无意义的长等待。比如Python中的示例:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 等待目标元素出现,最长等待10秒 target_element = WebDriverWait(driver, 10).until( EC.visibility_of_element_located(("id", "target-id")) )
尝试特定版本组合
你可以试试Appium 1.7.2这个稳定版本,它对iOS 11.3的兼容性比1.7早期版本和1.8 Beta更好;同时确保Xcode命令行工具是完整的,执行xcode-select --install可以修复工具缺失的问题。
内容的提问来源于stack exchange,提问作者Vikrant Ojha
相关产品推荐
相关产品推荐

