appium_capybaraを試してみた

感想おまちしてます!

スマホアプリの自動化ツールAppiumのサブプロジェクト?にあるappium_capybaraを試してみた。”Gem enabling appium support in capybara(AppiumがCapybaraをサポートしちゃうぜこの野郎!)”らしい。

スポンサーリンク

appium_capybara

GitHub: https://github.com/appium/appium_capybara

exampleフォルダにiOSのサンプルがある。でも、うちは貧乏なのでAndroidしかないので、そのやり方を調べた。

appium.txt

サンプルやGitHubをながめていると、「Desired Capability」の設定を外出しするのが流行っているらしい。それにならって、appium.txtを作成。要件を記入しておく。

僕はリアルデバイスを繋いで動かしていたけど、デバイス名はつけてないと怒られるけど、間違っていても怒られなかったので、デバイス名とかは適当でよさそう。

サンプルだとsite_prismという、Capybara + PageObjectPatternを簡単に実装できるライブラリを使っていた。

GitHub: https://github.com/natritmeyer/site_prism

このライブラリを使うと、下のようにページオブジェクトがシンプルになる。

login_page.rb

通常だと

find_element(:id, 'com.daipresents.sample:id/login_button').click

と書くが、

element :login_button, :id, 'com.daipresents.sample:id/login_button'

と定義しておけば

login_button.click

のように定義した名前で呼び出せて、 find_element地獄から開放される感じ。

スターも800以上ついていて、いろんなところでよくみかけるライブラリだけど、モバイルアプリ系の情報が少ないので今後に期待。

spec_helper.rb

spec_helper.rbでは、ライブラリの読みこみやドライバーの初期化などを行う。上でつくったappium.txtもここで読みこんでいる。

spec_helper.rbの使い方や、Rubyのクラスローディングは、お作法がわかってないので勉強しないと。

login_spec.rb

login_spec.rbはこんなかんじ。ボタンをクリックするだけの動きをさせている。

調べてて思ったけど、CucumberとかCapybaraみたいに、工夫すれば読みやすく、書きやすくなるけど、そこまでやる? という気持ちがまだ残っている。

たとえば、プログラミング経験のない誇りあるテスターにテストコードを書いてもらうとしたら、どれをつかえばハードルが低いんだろう? Rubyだとすでに書きやすいけどなぁ。

そんなことを考える今日このごろ。