テストを作成する(Ruby)

AppiumLibAppiumLibCore推奨)は、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を初期化しましょう。

bundle init

次に、以下のようにAppium Rubyクライアントの依存関係を追加できます。

bundle add appium_lib_core
# or
# bundle add appium_lib

以下のテストコード例ではtest-unitモジュールを使用しているため、実行してください。

bundle add test-unit

これらのステップが完了すると、Gemfileファイルには以下が含まれているはずです。

Gemfile
source 'https://rubygems.org'

gem 'appium_lib_core'
gem 'test-unit'

appium_lib_coreはAppiumクライアントとしてのメイン部分です。appium_libにはさまざまなヘルパーメソッドがありますが、ドライバーインスタンスは通常グローバル変数として使用するように設計されています。インスタンスの処理に問題が発生する可能性があります。appium_lib_coreにはそのようなグローバル変数はありません。

この例は、test-unit gemモジュールを使用したappium_lib_coreによるものです。appium_libでのテストコードも同様です。

test.rb
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リポジトリから入手できます。

基本的に、このコードは次のことを行っています。

  1. Appiumサーバーに送信する「機能」(パラメーター)のセットを定義します。これにより、Appiumは自動化したいものがどのようなものかを認識します。
  2. 組み込みのAndroid設定アプリでAppiumセッションを開始します。
  3. 「バッテリー」リストアイテムを見つけてクリックします。
  4. 視覚効果のためだけに、しばらく一時停止します。
  5. Appiumセッションを終了します。

以上です!試してみましょう。テストを実行する前に、別のターミナルセッションでAppiumサーバーが実行されていることを確認してください。そうしないと、サーバーに接続できないというエラーが表示されます。次に、スクリプトを実行できます。

# Please run "bundle install" first if your environment has not run the installation command yet.
bundle exec ruby test.rb

すべてがうまくいけば、設定アプリが開き、「バッテリー」ビューに移動してから、アプリが再び閉じるのがわかります。

おめでとうございます、Appiumの旅を始めました!探求するための次のステップに進んでください。