geb tutorial browser automation testing using geb tool
Geb(「jeb」と発音)は、ブラウザーの自動化の課題に対する答えです。これは、Web上で自動化テストを実行するための非常に効果的なツールです。
Gebは、ブラウザーの自動化(最初はWebテスト用)をより複雑でなく、手間がかからず、より効率的にする必要性から生まれました。これは、プログラミング、Webからのデータの抽出、および手動のWebタスクの自動化に利用できます。さらに、ゲブは クロスブラウザ 自動化テスト用のツール。
Gebは、WebブラウザとWebコンテンツ間のコラボレーションを自動化するための開発者主導のツールとして機能します。 Groovy言語でWebDriverを実行します。
Gebテストツールの優れている点は、Groovyプログラミング言語であるjQueryの最高の機能を組み合わせていることです。 WebDriver 強力で堅牢かつ動的なコンテンツの検査、選択、およびWebインタラクションを提供するページオブジェクトモデリング。
他と比較してGebがユニークな理由 自動化テストツール 市場で入手可能なのはその構文です。これは、HTMLページを簡単にクエリするために通常使用されるjQueryに似ています。次に、ページオブジェクトパターンのサポートが統合されています。
Gebは、広く使用されている一般的なテストプラットフォームとの統合を通じて、機能的なWebテストに大きな助けを提供します。 スポック 、Grails、 JUnit 、 キュウリ-JVM 、TestNGなど。この記事の後半で、GebをGrailsフレームワークと統合する方法を説明します。
学習内容:
実用的な使用
このGebチュートリアルの紹介ですでに説明したように、次のように使用できます。
- Chrome、Firefox、Internet Explorerなどの複数のブラウザーでのテストツールとして(同じ自動化スクリプトを異なるブラウザーで実行して、アプリケーションのWebテストを実行できます)。
- ユーザーの受け入れと機能テストケースを自動化するため。
- 任意のアプリケーションの機能テストまたはWebテスト用に作成されたテストシナリオを自動化するため。
- UI(ユーザーインターフェイス)検証とDB(データベース)検証を含むエンドツーエンドのテストをカバーするため。
- WebブラウザとWebコンテンツ間の相互作用を自動化するための開発者向けツールとして。
利点
- Gebは無料のオープンソースツールです。 ApacheLicenseバージョン2.0でライセンスされています。
- Webテストを自動化するのは簡単で簡単です。
- GebのページオブジェクトとGroovyDSLにより、テストはほとんど平易な英語のように見える程度まで読みやすくなります。
- テストを高速に実行するため、テストの時間とコストを節約できます。
- IE、Firefox、Chrome、HTMLUnitなどのさまざまなブラウザと互換性があります。
- 実際のブラウザでテストを実行します。これは、実際の環境でテストするかのようです。ユーザーに表示される環境です。
- 回帰テストが簡単になります。 Geb自動テストケースを実行して、アプリケーションの修正または変更後に既存の機能が壊れていないかどうかを確認できます。
- 自動化テストにGebを使用しているときに、アプリケーションにUIの変更がある場合は、最小限のテストコードの変更が必要です。そのため、コードの労力と重複が軽減されます。
- これは、単一のスクリプト内で360度(または最大)のテストカバレッジを支援します。
前提条件
始める前に、ソフトウェアをダウンロードしてインストールする必要があります。中央のMavenリポジトリでは、Gebは単一のGebコアjarとして利用できます。 ここをクリック マシンにインストールします。
Gebをマシンで動作させるには、上記のGeb-core jar、Webドライバーの実装、およびselenium-supportjarが必要です。
ツールをインストールして実行するには、Gebの本の以下のインストールと使用法のセクションを参照してください=> Gebのインストールと使用マニュアル 。
入門
すでに説明したように、Gebはさまざまなテストフレームワークと統合できます。
選択したフレームワークに応じて、関連するプラグインをインストールする必要があります。
例えば : Grails( Grails 自動化テストスクリプトを記述し、テストシナリオを自動化するためのWebアプリケーションの非常に有名なフレームワークです。 Grailsの機能テストにGebを使用したい場合は、ここから関連するプラグインをインストールできます。 grails-gebプラグイン 。このプラグインは baseUrl そして reportsDir 構成アイテム。
例で学ぶ
ここで、テストシナリオを自動化するGebスクリプトを作成する方法を示します。
以下のテストシナリオを取ります。
テストシナリオID | Softwaretestinghelp-1 | テストケースID | Softwaretestinghelp -1A |
出口 | |||
テストケースの説明 | 検索エンジンを介してSoftwaretestinghelp.comページを確認する | 自動化スクリプトのステータス | 進行中 |
前提条件 | 1ブラウザ 2.検索エンジン 3.ウェブサイト-Softwaretestinghelp.comが存在する必要があります | 前提条件のスクリプト | NA |
実行手順は次のとおりです。
グーグル検索エンジンを起動します |
検索エンジンが正常に読み込まれたかどうかを確認します |
検索ボックスにsoftwaretestinghelp.comと入力します |
結果が読み込まれるのを待つ |
結果の最初のリンクがsoftwaretestinghelp.comに向けられているかどうかを確認します |
はいの場合、リンクを開きます。 |
ウェブサイトが開くまで待ちます。 |
上記のシナリオのGeb自動化ツールスクリプトは次のとおりです。
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
これで、上記の例を参照して、独自の簡単なGEBスクリプトを作成してみることができます。
Gebスクリプトによるデータベース検証テスト:
Web自動化テストは、次の3つの部分に分かれています。
- UI検証- 自動化テストシナリオの実行前後に、ユーザーインターフェイス(フロントエンド)に反映されたデータを検証します。
- DB検証– 自動化テストシナリオの実行前後に、データベース(バックエンド)に反映されたデータを検証します。
- 実際のテストフロー/スクリプトフロー。
テストシナリオを自動化するために作成されたGebスクリプトには、上記の3つのセクションすべてのコードを含めることができます。
上記のサンプルセクションのGebスクリプトは、テストフローとUI検証を自動化するためのものでした。同様に、データベース検証用のテストスクリプトを作成できます。
DB検証テストでは、コードのアウトラインとして以下のテンプレートをいつでも使用できます。
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Gebのいくつかの便利なメソッド
- テストケースシナリオに複数のタブとウィンドウが含まれる場合: 新しいウィンドウやタブを開くアプリケーションに出くわすたびに、 例えば ターゲット属性が設定されたリンクをクリックすると、 withWindow() そして withNewWindow() 他のウィンドウのコンテキストでコードを実行するメソッド。
- ドライブ方法: ブラウザクラスには静的メソッドが含まれています– ドライブ() 。この方法により、Gebスクリプトがさらに便利になります。すべてのトップレベルのメソッド呼び出しとプロパティアクセスは、ブラウザに対して行われることを意味します。
- リクエストを行う: ブラウザインスタンスは baseUrl すべての相対URLを解決するために使用されるプロパティ。通常は、ベースURLを末尾のスラッシュで定義し、相対URLで先頭のスラッシュを使用しないことが最も望ましいです。
- ページの変更: 便利な助けを借りて ページ() メソッドでは、新しいリクエストを行わずにページインスタンスを変更することが可能です。
- ブラウザを終了する: ブラウザオブジェクトは提供します 終了する() そして 閉じる() メソッド(タスクをベースドライバーにハンドオーバーするだけです)。
このツールの欠点
- 生まれ 実行します WebDriver Groovy言語で。この背後にある全体的なアイデアは、を利用することです WebDriver より簡単でシンプル。したがって、Gebを介してWebdriverを使用する場合、Groovyプログラミング言語のみがサポートされます。ただし、直接使用する場合 WebDriver 、Ruby、C#、Python、Javaなどの多くの言語をサポートしています。
- 小さなプロジェクトにGebを使用することはお勧めしません。これは、巨大なタスクには最適ですが、小さなアクティビティには影響します。 Webアプリケーションに、情報が流れる必要のある複数のページやフォームが含まれていない場合、Gebが実際に余裕を持って追加の時間を費やしていることに気付くかもしれません。
- それはあなたのウェブサイトアプリケーションがどの環境を利用するかについて非常に特別です。 Gebを正常に機能させるには、特定の環境に適切に統合する必要があります。
その他のリソース:
- チェックしてください ゲブの本はこちら 詳細なドキュメントと例については。
- これは、 GebとGrailsの統合 。
結論
Gebは、テストケースシナリオの自動化に非常に役立ちます。 Web、機能、およびユーザーの受け入れテストを自動化すると便利です。複数のブラウザをサポートし、さまざまなフレームワークと統合できます。これは、WebDriverのパワー、jQuery Selectionの優雅さ、ページオブジェクトモデリングの堅牢性、Groovyの表現力を兼ね備えています。
Gebスクリプトは、開発者にとってもユーザーフレンドリーでもあり、テストカバレッジを向上させ、テストを高速化すると同時に、効率を高めます。
著者について: これはPriyaKによるゲスト投稿です。彼女はITサービスで4年以上の経験があり、さまざまなアプリケーションのテストとサポートの専門知識を持っています。
Geb自動化テストのクエリをコメントに投稿してください。
推奨読書
- WAVEアクセシビリティテストツールチュートリアル
- Ranorexチュートリアル:強力なデスクトップ、Web、およびモバイル自動化テストツール
- Sikuli GUI自動化テストツール-ビギナーズガイドパート#2
- Parrot QAチュートリアル:クロスブラウザ機能テストツールのレビュー
- 最高のソフトウェアテストツール2021 (QAテスト自動化ツール)
- 初心者向けの詳細なEclipseチュートリアル
- 自動化テストとは(テスト自動化を開始するための究極のガイド)
- Parasoft SOAtestチュートリアル:スクリプトレスAPIテストツール