Remote TestKit の使い方

Appium連携のチュートリアル


概要

appiumは、スマホやタブレットのテスト自動化を実現するためのテストフレームワークの一種です。 Remote TestKitと連携させることで、様々な端末に対して検証を行うことができます。

事前準備(一例)

ご利用のクライアントPCに、appium環境をセットアップすることでご利用いただけます。 ※以下、Mac OSでのコマンド版appiumでChromeを使った検証を行うサンプルのセットアップ例です。

コマンド版appuimインストール

以下手順でコマンド版appiumをインストールします。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sudo chown -R $(whoami) /usr/local
brew update
brew install node  ※unlinkするようなエラーが出たらbrew unlink nodeをしてから実行
npm uninstall appium
npm install -g appium
git clone https://github.com/appium/appium.git
cd appium
git checkout master-backup  ※現在のmasterにはsubmoduleが無いため、submoduleディレクトリがあるブランチを利用
git submodule init
git submodule update
npm install -g appium --no-shrinwrap  ※サンプル実行時にエラーが出たので実行

ライブラリインストール

gemを使って、サンプル実行に必要なライブラリをインストールします。
gem install selenium-webdriver
gem install appium_lib

※最新のライブラリでプログラムが動作しなかった場合は、以下のようにバージョンを落とす
(インストールした最新版のappium_libから特定のバージョンに落とす例)
gem uninstall appium_lib
gem install appium_lib -v 9.4.9

Chrome用のセットアップ(使わない場合は不要)

  1. http://chromedriver.storage.googleapis.com/index.html
  2. X.XX を押下  ※2018/02/01時点の最新は2.35
  3. chromedriver_mac64.zip を押下
  4. 任意のディレクトリにダウンロードして展開
  5. ruby コマンドと同じパスに、展開してできた chromedriver を配置
    which ruby
    sudo cp chromedriver /usr/bin/  ※which ruby の結果が /usr/bin/ruby の場合
※ chromedriver の配置の際 Operation not permitted が出た場合は、以下手順でrootlessを解除を行ってから再度実行する
  1. 「Command + R」を押しながらMacを再起動してリカバリーモード起動
  2. 「Utilities - Terminal」を押下して以下を入力
    csrutil disable
  3. Macを再起動

サンプルプログラム作成

サンプルプログラムを作成します。 以下は、Chromeを起動し、検索ボックスにテキストを入力して結果を表示させるサンプルです。
require 'selenium-webdriver'
require 'appium_lib'

def sampleQuit(driver)
    driver.quit
    puts "Quit Browser"
    puts "Finish"
end

# chrome for android
opts = {
    caps: {
        deviceName: 'android',
        platformName: 'android',
        browserName: 'Chrome'
    }
}

puts "Start Sample"
begin
    driver = appium::Driver.new(opts, true).start_driver
rescue
    puts "Open Driver Error"
    exit(0)
end
puts "Open Browser"

begin
    driver.navigate.to "http://google.com"
    element = driver.find_element(:name, 'q')
rescue
    puts "Any probrems occur"
    sampleQuit(driver)
    exit(0)
end

puts "Open URL"
sleep(3)

element.send_keys("remotetestkit")
element.submit
puts "Input Keys"
sleep(3)

sampleQuit(driver)

Remote TestKitとの連携

appiumサーバ起動

ターミナルを開いて以下を入力します。
appium &

Remote TestKit実行

  1. Remote Testkitを起動してログイン
  2. Android端末をレンタル
  3. 「設定 - 仮想adb有効化」

appiumサンプルを実行

ターミナルを開いて、作成したappiumサンプルを実行します。
ruby appiumサンプルファイル