Gaia UI テストの導入
Gaia-ui-tests は、Gaia (Firefox OSのUI) を隅から隅までUIテスト実行するMozillaのテストスイートです。全てのテストはPythonで書かれ、Firefox OSのAPI操作に使う JavaScript もいくらか混じっています。このチュートリアル記事では、テストを書いて実行する環境のセットアップ方法を説明します。
Gaia-ui-tests は Gaiatestという、Marionette あたりを元にしたPythonパッケージを使っています。 Gaiatest はHTML ロケータや、Marionette 呼び出しや、(相互コミュニケーションと機能用の)API呼び出しを一緒にラップすろように設計されています。Marionette は、Selenium WebDriver (ブラウザ自動化のプログラミングインターフェイス) 用に開発されたW3C標準に基いています。WebDriver と page/app オブジェクトを以前使った事がある場合、Marionette と gaiatest を使うのは楽に感じるでしょう。
Gaia UI を開始する
Gaia/Firefox OS の自動テストを開始するのに熱心な人のために、何もない所から自身のテストを書き始めるのを助けるチュートリアル集を用意しています。このチュートリアルをいったん終えてしまうと、Mozillaのテスト貢献者を始めるための、テストや、Firefox OS や、Marionette に対する充分な知識が得られるでしょう。貢献者になりたい場合は、このチュートリアルを完了しておくことを強く推奨します。
- パート 1: Marionette と Firefox OS をはじめよう
- この記事には、テスト実行を開始するためにインストールが必要となるツール、たとえば B2G デスクトップ、Python、Marionette が載っています。
- パート 2: Marionette を使って Firefox OS と基本的なやりとりをする
- Marionette 経由で Firefox OS を操作するために使う基本コマンドをざっと見ます。
- パート 3: コードを再利用可能テストに更新する
- まだまだ行こう、この記事では基本的なコマンドをPythonファイル内のシンプルなテストに組み上げて、単一エントリーから全てを実行できるようにします。
- パート 4: Firefox OS をセットアップする再利用コマンド
- ここではコマンドをPythonメソッドに変えて再利用しやすくするのを見て行きます。
- パート 5: テストランナーを導入する
- テストランナーは優秀なテストスイートの中心的機能で、これにより複数のテストの実行やレポートや結果の集約ができます。この記事ではPythonのユニットテストランナーの基本を探検します。
- パート 6: クラスによって、タプルと Marionette を使う
- ここでは、更にコードの重複を削減する方法を説明します、それにはタプル内の繰り返しのロケーターを保管して Marionetteの
By
クラスの文法でシンプルにします。 - パート 7: 自分自身のテストを書く
- いま基本は備わっています、そして自分自身のテストを書く時です! ここでは作業を簡単にする推奨ツールの予定や、手で書いてみるいくつかのテストをお勧めします。
- パート 8: ベースクラスを使用する
- この状態では、テストファイルは全てのテストランナーコードを含んでいます。当面は問題ないですが、テストファイルの実行を始めるとすぐに、多くの複製ができるでしょう。テストランナーコードを別々のPythonクラスに分けて抽象化する事で、この問題を解決してみます。
- パート 9: アプリオブジェクトの複製を抑える
- コードのメンテナンス性についての最終改良として、この記事では特定のFirefox OSアプリとのインタラクションをPythonアプリオブジェクトに抽象化するという抽象化を探検します。
上級トピック
テストの実行と記述をものにしたら、もっと複雑・先進的な作業に移りたくなるでしょう、例えば gaia-ui-tests 全体のテストスイートを実行したり、テスト結果としてpower drawをログ出力したり。
- gaia-ui-tests を実行する
- Firefox OS の実端末やB2G Desktop に対して、いろいろな設定にて、gaia-ui-tests を一通り実行するガイド。
こちらも見よ
質問/コメント/関心事
このプロジェクトははるかに初期の段階なので、あなたのフィールドバックはとても感謝されます:
- gaia-ui-automation@mozilla.org のMLにメールを送って下さい。
- あるいは、Mozilla IRC の #fxosqa、#fxos-automation、#moztpeqa といったチャンネルで我々を見つけて下さい。