ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Appium Ruby 快速入门:用 appium_lib_core 编写并运行第一个自动化测试

Appium Ruby 快速入门:用 appium_lib_core 编写并运行第一个自动化测试 Appium Ruby 快速入门用 appium_lib_core 编写并运行第一个自动化测试【免费下载链接】appiumCross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol项目地址: https://gitcode.com/GitHub_Trending/ap/appium本指南基于当前仓库 packages/appium/docs/en/quickstart/test-rb.md 整理而成面向希望使用 Ruby 编写 Appium 测试的开发者。文章以官方 Ruby 客户端库appium_lib_core为主线完整还原从初始化 Gemfile、安装依赖、编写测试脚本到连接 Appium Server 运行测试的全过程并给出仓库中真实可运行的示例代码位于 sample-code/quickstarts/rb。读完后你将掌握如何用 Ruby 声明 Desired Capabilities、如何启动/结束 Appium 会话、如何定位并点击界面元素以及如何用test-unit组织测试用例。Ruby 官方客户端库appium_lib 与 appium_lib_coreAppium 官方为 Ruby 提供了两个客户端库均以 gem 形式发布库gem 包名说明appium_lib_core推荐appium_lib_core基于 Selenium Ruby Binding 构建客户端侧逻辑更精简appium_libappium_lib继承自appium_lib_core提供了更多便捷辅助方法两者的继承关系为appium_lib_core继承自 Selenium Ruby Bindingappium_lib又继承自appium_lib_core因此无论安装哪一个都会自动带上 Selenium binding 依赖。官方建议按以下原则选择如果你需要一个更简洁、复杂度更低的客户端方案推荐使用appium_lib_core。如果你的场景依赖appium_lib特有的历史辅助方法可以选用appium_lib但要意识到它引入了更多历史遗留方法——这些方法可能无法在最新的 Appium 环境中正常工作同时其 driver 实例习惯上以全局变量方式使用在多实例场景下容易引发处理问题appium_lib_core不存在这样的全局变量设计。第一步初始化 Gemfile 并安装依赖本指南的完整代码可以直接从仓库 sample-code/quickstarts/rb 获取。首先在工作目录初始化一个 Gemfile 来管理依赖bundle init然后添加 Appium Ruby 客户端依赖bundle add appium_lib_core # 或者使用 # bundle add appium_lib本指南的测试代码使用test-unit模块组织用例因此还需要bundle add test-unit以上步骤完成后你的Gemfile应当与仓库中的 sample-code/quickstarts/rb/Gemfile 一致source https://rubygems.org gem appium_lib_core gem test-unit第二步编写测试代码下面的示例代码使用appium_lib_core配合test-unit编写使用appium_lib时的写法与之类似完整文件见仓库的 sample-code/quickstarts/rb/test.rbrequire appium_lib_core require test/unit CAPABILITIES { platformName: Android, automationName: uiautomator2, deviceName: Android, appPackage: com.android.settings, appActivity: .Settings, language: en, locale: US } SERVER_URL http://localhost:4723 class AppiumTest Test::Unit::TestCase def setup core ::Appium::Core.for capabilities: CAPABILITIES driver core.start_driver server_url: SERVER_URL end def teardown driver.quit end def test_find_apps driver.wait { |d| d.find_element :xpath, //*[textApps] }.click end end这段代码的核心执行流程如下定义 Capabilities参数集通过CAPABILITIES哈希声明本次自动化会话的参数告诉 Appium Server 要自动化什么样的目标。启动 Appium 会话在setup中通过Appium::Core.for创建客户端实例再调用start_driver连接 Appium Serverhttp://localhost:4723目标为 Android 系统内置的设置应用。查找并点击元素在test_find_apps中使用 XPath//*[textApps]定位Apps列表项并点击。视觉停留等待/暂停片刻以观察界面变化纯粹为了视觉效果。结束会话在teardown中调用driver.quit关闭会话使用安全导航运算符.driver 未启动时不会报错。Capabilities 关键参数说明参数值作用platformNameAndroid目标平台类型automationNameuiautomator2指定使用的 Appium driver此处为 UiAutomator2deviceNameAndroid目标设备标识appPackagecom.android.settings被测应用的包名appActivity.Settings被测应用启动的 Activitylanguage/localeen/US会话的语言与地区设置关于 Capabilities 的完整讲解可参考仓库的 Session Capabilities 指南Capabilities 是启动 Appium 会话的核心参数采用键值对形式值可以是任意合法 JSON 类型且在会话生命周期内不可变更。其中platformName等属于 W3C WebDriver 标准能力而automationName、appPackage、appActivity等 Appium 特有能力按规范应使用appium:前缀例如appium:automationName具体是否自动加前缀取决于客户端库的实现。所有 Appium base driver 认可的能力全集可查阅 Capabilities Reference。第三步运行测试运行前请务必确认在另一个终端会话中已经启动了 Appium Server否则脚本会因无法连接服务器而报错。启动命令可参考快速入门系列的 安装指南系统要求见 requirements.md需要 macOS/Linux/Windows 以及 Node.js^20.19.0 || ^22.12.0 || 24.0.0、npm10。仓库测试夹具test/fixtures/default-args.ts确认了 Appium 的默认监听端口为4723与示例中的SERVER_URL http://localhost:4723一致。然后执行测试脚本# 如果环境尚未执行过安装命令请先运行 bundle install bundle exec ruby test.rb如果一切顺利你将看到设置应用被打开自动导航到Apps视图随后应用被关闭。进阶阅读生态与下一步本指南仅覆盖 Ruby 客户端最基础的使用方式不涉及客户端库的完整细节。建议进一步阅读Capabilities 指南理解如何更精细地控制会话含appium:options分组、always-match / first-match 能力等高级用法。快速入门总览了解 Appium 安装、driver 安装如 UiAutomator2、客户端库选型的完整流程。Ecosystem 页面浏览可用的 drivers、clients、plugins 与 tools。管理 Appium Drivers 与 Plugins 与 Settings 指南进一步掌握扩展管理与会话内行为调整。其他语言JavaScript、Python、Java、.NET的快速入门示例位于 quickstart 目录 下仓库根目录的 README.md 则对项目整体架构基于 W3C WebDriver 协议的跨平台自动化框架做了完整介绍。至此你已经迈出了 Appium Ruby 自动化测试的第一步可以基于上述指南继续深入探索。【免费下载链接】appiumCross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol项目地址: https://gitcode.com/GitHub_Trending/ap/appium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表