撰寫測試 (Ruby)
AppiumLib 和 AppiumLibCore (推薦) 是 Ruby 中的官方 Appium 程式庫,可透過 appium_lib 和 appium_lib_core 套件名稱在 gem 中取得。appium_lib_core 繼承自 Selenium Ruby Binding,而 appium_lib 繼承自 appium_lib_core,因此安裝這些程式庫會包含 selenium binding。如果您需要較不複雜的用戶端解決方案,我們建議使用 appium_lib_core
。appium_lib
有一些核心程式庫沒有的實用方法,但代價是複雜度較高,而且歷史方法可能無法在最新環境中運作。
第一步,讓我們初始化一個 Gemfile 來管理相依性
然後,您可以如下新增 Appium Ruby Client 相依性
以下測試程式碼範例使用 test-unit
模組,因此請執行
執行這些步驟後,您的 Gemfile
檔案應包含
appium_lib_core
是作為 Appium 用戶端的主要部分。appium_lib
有各種輔助方法,但驅動程式實例通常設計為用作全域變數。這可能會導致處理實例的問題。appium_lib_core
沒有這樣的全域變數。
這個範例是使用 test-unit
gem 模組的 appium_lib_core
。appium_lib
中的測試程式碼應該類似。
require '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 = 'https://#: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_version
@driver.wait { |d| d.find_element :xpath, '//*[@text="Battery"]' }.click
end
end
注意
本指南的範圍不包括提供 Ruby 用戶端程式庫或此處發生所有事情的完整說明,因此我們現在不會詳細說明程式碼本身。
- 您可能特別想閱讀有關 Appium 功能 的資訊。
- appium_lib_core GitHub 儲存庫中的功能測試程式碼應有助於找到更多運作範例。
- 文件 appium_lib_core 和 appium_lib 也有助於找到可用的方法。
注意
範例程式碼可從 GitHub Appium 儲存庫 取得。
基本上,此程式碼執行下列動作
- 定義一組要傳送給 Appium 伺服器的「功能」(參數),讓 Appium 知道您要自動化哪種類型的項目。
- 在內建的 Android 設定應用程式上啟動 Appium 會話。
- 尋找「電池」清單項目並按一下。
- 暫停一下,純粹為了視覺效果。
- 結束 Appium 會話。
就是這樣!我們來試試看。在執行測試之前,請確定您在另一個終端機階段執行 Appium 伺服器,否則您會收到無法連線的錯誤訊息。然後,您可以執行指令碼
# Please run "bundle install" first if your environment has not run the installation command yet.
bundle exec ruby test.rb
如果一切順利,您會看到設定應用程式開啟並導覽到「電池」檢視,然後應用程式會再關閉。
恭喜您,您已經開始您的 Appium 之旅!請繼續閱讀,以探索一些後續步驟。