山椒は小粒でもピリリと辛い

2013/02/07

robotiumで無理矢理にWebViewのテスト

■ WebViewが含まれたアプリのテスト

robotiumを用いて簡単なシナリオテストを作りたい。
しかしWebViewを直接操作、となるとなかなかうまく行かない。
そこで下記の方法を用いて、無理矢理にテストシナリオを書いてみた。

■ 主に使用するmethod

//スクリーン上のfloat x,y 点をタッチする
solo.clickOnScreen(x,y);
//ログ上に指定のStringが出てくるまで待機
solo.waitForLogMessage("");
//指定ミリ秒待機
solo.sleep(int);

■ 開発者向けオプションを使用し、座標を把握

現在のタップデータをオーバーレイ表示するをチェックすると
タッチした座標が表示できる。
テストの時に利用するリンクの位置を予め調査してメモ
Screenshot 2013 02 07 15 38 52 Screenshot 2013 02 07 15 19 00 2

■ 注意点

下記のpermissionを「テストされる側」の AndroidManifest.xmlに付け加えること。
<uses-permission android:name="android.permission.READ_LOGS"/>
あとは、画面上のリンクの座標をクリック。
ページが更新されるまで待つ、
次の動作を行う。

を繰り返すだけ。

■ sample code

String webLoadFinishLogString= "ロード完了時に出力するログ"
private void linkClickAndWaitResult(float x,float y){
 solo.clickOnScreen(x,y);
 solo.waitForLogMessage(webLoadFinishLogString);
}
こんな感じのmethodを用意して、クリックしたら遷移を待つ。みたいな体にすると簡単な遷移テストが可能になります。 このエントリーをはてなブックマークに追加