ヒューマンクレスト矢野です。
今回は、Calabash-androidでできること、できなかったこと、
アプリケーションの部品情報の調査について書きたいと思います。
★Calabash-androidでできること
アプリケーションでの各操作
・ボタンをタップする
・入力欄に文字を入力する
・画面をスクロールする
・画面をスワイプする
・選択をする(リスト、ラジオボタン、チェックボックスなど)
・画面ショットを撮る
★Calabash-androidでできなかったこと
・同じ動作を延々と繰り返す
・途中位置までのスワイプ
・スクロール、スワイプが必要な画面での、画面ショット
・同じ箇所に動的に値をセットする
・WebViewでの操作
・他アプリ(カメラアプリなど)に制御が行った時の操作
自動化すると有効なデグレ確認のための回帰テストについては、
結構なメンテナンスが必要だったなぁ。というのが正直な印象です。
最終的な形が決まっているきちんとしたストーリーの受け入れテストに向く感じがします。
★テストを書くために、アプリケーションの画面やボタンを調査する
※Calabashのバージョンは、0.4.0.pre2以降であることが条件です。
cmdを起動して、以下を入力してください。
「calabash-android console apkの場所」
※前回のアプリを例にすると、calabash-android console bin\AppNavHomeActivity.apk
実行すると、コマンド入力となりますので、
「start_test_server_in_background」を入力します。
アプリケーションが起動しますので、調査したい画面で、
queryを記載すると、知りたい情報が表示されます。
ボタンの情報が知りたければ、該当画面まで遷移し、
「query(“button”)」と入力すると以下のような情報が表示されます。
[{“id”=>”login_button”,
“enabled”=>true,
“contentDescription”=>nil,
“text”=>”Login”,
“qualified_class”=>”android.widget.Button”,
“frame”=>{“y”=>322, “height”=>73, “width”=>84, “x”=>135},
“description”=>”android.widget.Button@40584908”,
“class”=>”Button”},
{“id”=>”login_button_slow”,
“enabled”=>true,
“contentDescription”=>nil,
“text”=>”Login (slow)”,
“qualified_class”=>”android.widget.Button”,
“frame”=>{“y”=>322, “height”=>73, “width”=>143, “x”=>234},
“description”=>”android.widget.Button@40585390”,
“class”=>”Button”}]
ここで、ボタンに「ログイン」などと記載されていない場合だと、
idを指定してタップすることができますので、
“login_button”がそれにあたるのだな。ということがわかります。
例はボタンになりますが、そのほかに、入力領域だとか、画面にあるものについては、
情報を知ることができます。
なお、アプリケーションで別のアプリ(カメラ)などを起動したりすると、
queryを入力しても情報は出ませんので、ご注意ください。
ソースコードを提供してもらっているので、設定ファイルをみることで
テストコードを書くこともできますが、
そのような知識がない場合は、この方法をとって作業を進めることもできます。
詳細については、以下を参照してください。
https://github.com/calabash/calabash-android/wiki/05-Query-Syntax
https://github.com/calabash/calabash-android/wiki/06-WebView-Support
以上で、Calabash-androidについての話を終わりにしたいと思います。
導入に関して、何らかの情報提供が出来たとしたなら幸いです。
1件のコメント
ただいまコメントは受け付けていません。