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-tests main repository

質問/コメント/関心事

このプロジェクトははるかに初期の段階なので、あなたのフィールドバックはとても感謝されます:

  • gaia-ui-automation@mozilla.org のMLにメールを送って下さい。
  • あるいは、Mozilla IRC の #fxosqa、#fxos-automation、#moztpeqa といったチャンネルで我々を見つけて下さい。

ドキュメントのタグと貢献者

 このページの貢献者: hamasaki, Uemmra3, aoitan, chrisdavidmills
 最終更新者: hamasaki,