Watir-quick-guide
Watir-概要
「Water」と発音されるWatir(RubyでのWebアプリケーションテスト)は、Rubyを使用して開発されたオープンソースツールであり、あらゆるプログラミング言語で開発されたアプリケーションに適したWebアプリケーションの自動化に役立ちます。 Watirのインストールをサポートするブラウザーは、Internet Explorer、Firefox、Chrome、Safari、およびEdgeです。 Watirは、インストール用のRubygemsとして入手できます。
Watirは指定されたブラウザに接続し、URLを開く、ボタンをクリックする、実際の人が行うようにテキストボックス内にデータを入力するという指示に従います。 Watirは、RSpec、Cucumberなどのテストフレームワークでのブラウザサポートに最もよく使用されます。
Watirの機能
Watirは、以下で説明するように、機能が豊富です-
ウェブ要素の場所-ブラウザ内にレンダリングされたウェブ要素を見つける方法はいくつかあります。 主に使用されるのは、id、クラス、タグ名、カスタム属性、ラベルなどです。
スクリーンショットを撮る-Watirでは、必要に応じて行われたテストのスクリーンショットを撮ることができます。 これは、中間テストを追跡するのに役立ちます。
ページのパフォーマンス-_performance.navigation、performance.timing、performance.memory、およびperformance.timeOrigin_などのプロパティを持つパフォーマンスオブジェクトを使用して、ページのパフォーマンスを簡単に測定できます。 これらの詳細は、ブラウザに接続したときに取得されます。
ページオブジェクト-Watirのページオブジェクトは、クラスの形でコードを再利用するのに役立ちます。 この機能を使用すると、コードを複製せずに管理しやすくすることなく、アプリを自動化できます。
ダウンロード-Watirを使用すると、UIまたはWebサイトのファイルダウンロードを簡単にテストできます。
アラート-Watirは、UIまたはWebサイトでアラートポップアップをテストするための使いやすいAPIを提供します。
ヘッドレステスト-ヘッドレステストを使用すると、ブラウザーを開かずにコマンドラインで詳細を取得できます。 これは、コマンドラインでUIテストケースを実行するのに役立ちます。
Watirを使用する利点
Watirは次の利点を提供します-
- Watirはオープンソースのツールであり、非常に使いやすいツールです。
- WatirはRubyで開発されており、ブラウザーで動作するWebアプリケーションはすべて、watirを使用して簡単に自動化できます。
- Watirではすべての最新ブラウザーがサポートされているため、テストが簡単です。
- Watirには、ページパフォーマンス、アラート、iframeテスト、ブラウザーウィンドウのテスト、スクリーンショットの撮影などを行うためのライブラリが組み込まれています。
Watirの欠点
他のソフトウェアと同様に、Watirにも制限があります
- WatirはRubyテストフレームワークでのみサポートされており、他のテストフレームワークでは使用できません。
- Watirを使用したモバイルテストは強化されておらず、デスクトップブラウザーは、リアルタイムデバイスとして動作するのではなく、モバイルブラウザーのように動作するように模倣されています。
Watir-はじめに
- Watir(RubyでのWebアプリケーションテスト)*は「Water」と発音され、Rubyを使用して開発されたオープンソースツールであり、アプリケーションの記述言語に関係なくWebアプリケーションの自動化に役立ちます。 Watirには、ブラウザとの対話、ページ要素の検索、スクリーンショットの取得、アラートの操作、ファイルのダウンロード、_window.open_ポップアップウィンドウ、ヘッドレステストなどに役立つAPIの豊富なセットが付属しています。
サポートされているブラウザは-
- インターネットエクスプローラ
- Firefox
- クロム
- サファリ
- Edge
注-Watirは、インストール用のRubygems gemとして利用できます。
Watir Webdriverを使用して、WebサイトとUIアプリケーションをテストできます。 Watirはブラウザ関連のものに完全に焦点を合わせているため、次のような他のテストフレームワークとともにWatirを使用できます
- RSpec
- きゅうり
メインのテストコードはテストフレームワークを使用して記述され、ブラウザーとの対話はWatirの支援を受けて行われます。
Watirと共にテストフレームワークのフローは以下のとおりです-
RSpecまたはCucumberは、テストランナーとテストコードに関係しています。 WebサイトまたはUIのテストに関する詳細は、Watirを参照するページオブジェクトに分割できます。このオブジェクトでは、テストに使用するページロケーターを取得します。 Watirは、そのWebドライバーとともに、ブラウザーへの接続とテスト自動化の実行に役立ちます。
Watir-環境のセットアップ
Watirを使用するには、次をインストールする必要があります-
- Rubyをインストールする
- Watirをインストールする
- ルビー鉱山(IDE)
WatirはRubyを使用してビルドされるため、Rubyとgem(Rubyのパッケージマネージャー)をインストールする必要があります。
WindowsでのRubyのインストール
WindowsにRubyをインストールするには、-https://rubyinstaller.org/downloads/にアクセスします
32ビットまたは64ビットのオペレーティングシステムに基づいてルビーバージョンをインストールします。 ここで、スクリーンショットに示すように、強調表示されたものをインストールしました。 ダウンロードしたら、指示に従って手順に従ってインストールします。
インストールが完了したら、以下に示すようにコマンドラインでバージョンを確認して、rubyがインストールされているかどうかを確認します-
Rubyが正常にインストールされている場合、以下に示すように出力を見ることができます-
インストールされているバージョンは2.6.3です。 システムにRubyを正常にインストールしました。 Rubyインストールgemと一緒に、つまり rubyパッケージマネージャーもインストールされます。 次のようにインストールされたgemのバージョンを確認できます-
WindowsにRubyとGemをインストールしました。
LinuxでのRubyインストール
LinuxにRubyをインストールするには、Linuxターミナルで次のコマンドを実行します-
Mac用のRubyインストール
LinuxにRubyをインストールするには、Mac端末で以下のコマンドを実行します-
Xcodeをインストールする
HomeBrewをインストールする
rbenvをインストールする
Watirのインストール
watirをインストールするコマンドは次のとおりです-
gemインストールwatir
次に、以下に示すように出力画面を観察することができます-
RubyMine IDE
RubyMine IDEを使用して、テストケースを作成および実行します。 RubyMine IDEの公式Webサイトはhttps://www.jetbrains.com/ruby/[www.jetbrains.com/ruby]です。
RubyMineは、30日間の無料試用が可能な有料IDEです。 無料試用ボタンをクリックしてダウンロードします。 また、選択した他のIDEを使用してテストケースを作成することもできます。
無料試用ボタンをクリックすると、ダウンロードが開始されます。 ダウンロードが完了したら、システムにインストールします。
[次へ]をクリックして、インストールを続行します。 インストールが完了したら、IDEを開くと、以下に示すようにプロジェクトを作成するように求められます-
[新規プロジェクトの作成]をクリックし、プロジェクトの名前をWatirとして入力しました。これがIDEの表示です-
テストケースをwatir/フォルダーに書き込み、実行します。
Watir-ブラウザー用ドライバーのインストール
この章では、Watirを使用してプロジェクトをテストするために必要なブラウザードライバーをインストールします。 Watir 6より前は、ブラウザードライバーを使用するには_watir-webdriver_を含める必要がありました。 Watir 6のリリースでは、_watir-webdriver_はWatirパッケージの一部として利用でき、ユーザーは_watir-webdriver_を個別に追加する必要はありません。
Chrome、Firefox、Safariなどのブラウザーはデフォルトで使用可能であり、外部で追加する必要はありません。 テスト中にブラウザーのドライバーが使用できないという問題が発生した場合は、以下の指示に従っていつでもダウンロードできます。
次のブラウザのドライバをインストールします-
- ブラウザ用ドライバー-Chrome
- ブラウザ用ドライバー-Firefox
- ブラウザ用ドライバー-Edge
- ブラウザ用ドライバー-Internet Explorer
- ブラウザ用ドライバー-Safari
ブラウザ用ドライバー-Chrome
Chromeブラウザのドライバーを取得するには、-https://sites.google.com/a/chromium.org/chromedriver/downloadsにアクセスします。
ブラウザのバージョンを確認し、それに応じてChromeドライバーをダウンロードします。 クロムブラウザのバージョンを確認するには、次のようにします-
[Google Chromeについて]をクリックすると、以下に示すようにChromeバージョンが表示されます-
したがって、バージョンは74です。 したがって、クロムドライバーバージョン74をダウンロードしてください。
次に、オペレーティングシステムに応じてchromeドライバーをダウンロードします。 chromedriver_win32.zipをダウンロードします。これは、32ビットと64ビットの両方のマシンを対象としています。 ダウンロードしたドライバーを使用する場合は、PATH変数のどこかに場所を追加します。
ブラウザ用ドライバー-Firefox
Firefoxドライバーの場合、次のスクリーンショットに示すように、https://github.com/mozilla/geckodriver/releasesにアクセスしてください-
オペレーティングシステムごとに、上記のようにドライバーをダウンロードします。 ダウンロードしたドライバーを使用する場合は、PATH変数のどこかに場所を追加します。
ブラウザー用ドライバー-Edge
Firefoxドライバーの場合、次のスクリーンショットに示すように、https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/にアクセスしてください-
あなたが持っているMicrosoft Edgeのバージョンをクリックしてください-
[リリース]リンクをクリックすると、リダイレクトされます-
ここでは、Windows用のダウンロードバージョンを見つけることができます。 ダウンロードしたドライバーを使用する場合は、PATH変数のどこかに場所を追加します。
ブラウザ用ドライバー-Internet Explorer
Internet Explorer用のドライバーをインストールするには、以下に示すように-https://docs.seleniumhq.org/download/にアクセスします-
IEのダウンロードセクションの詳細はここに示されています-
OSごとに、32ビットまたは64ビットのWindows IEをダウンロードします。 また、場所をPATH変数に追加して、ドライバーを使用します。
ブラウザ用ドライバー-Safari
safariバージョン10以降では、safariのドライバーを外部からダウンロードする必要はありません。 Watirのインストール時に、gemパッケージとともにダウンロードされます。
Watirをインストールすると、Chrome、Firefox、Internet Explorerのドライバーも利用できることに注意してください。 ただし、問題に直面し、特定のバージョンをテストする必要がある場合は、ブラウザごとにそれらをダウンロードし、PATHの場所を更新して、アプリケーションのテストに使用できます。
Watir-ブラウザーの操作
デフォルトでは、ブラウザー名が指定されていない場合、Watirはchromeブラウザーを開きます。 Watirのインストールとともに、必要なブラウザードライバーがインストールされます。 ブラウザーでの作業で問題が発生した場合は、ブラウザードライバーの章に示されているとおりにドライバーをインストールし、PATH変数の場所を更新します。
この章では、Watirを使用してブラウザーを開く方法を理解します。
Watirを使用してブラウザーを開く手順
IDE RubyMineを開き、新しいファイルtest1.rbを作成します
[OK]を選択し、以下に示すようにファイルパターンをrubyとしてクリックします-
[OK]をクリックしてファイルを作成します。
次に、以下に示すようにブラウザを開く簡単なコードを記述します-
test1.rb
上記のように、IDEで強調表示されている[実行]ボタンをクリックします。 実行をクリックすると、以下に示すようにブラウザが開きます-
ブラウザは自動的に開閉します。 test1.rbにさらにコードを追加しましょう。
以下に示すように、ブラウザの名前を指定できます-
Chromeの例
次に、テストケースでpage-urlを開きます。
例
実行をクリックして、以下に示すように出力を確認します-
同様に、Firefox、Safari、Internet Explorerブラウザを開くことができます。
Firefoxの例
Internet Explorerの例
ワティールコード
エラーを表示する次のコードを実行すると表示されます-
これは、watirパッケージにInternetExplorerドライバーがないことを意味します。 ここから同じものをダウンロードしました-https://docs.seleniumhq.org/download/とPATH変数を更新しました。
次に、もう一度実行して、Internet Explorerブラウザが次のように開くのを確認します-
Safariブラウザーを開くWatirコード
Microsoft EdgeブラウザーへのWatirコード
Watir-Web要素
この章では、Watirでフォローする方法を説明します-
- テキストボックスの使用
- コンボの使用
- ラジオボタンの使用
- チェックボックスの使用
- ボタンの使用
- リンクの使用
- Divでの作業
テキストボックスの使用
構文
ここでは、UIでテキストボックスを操作する方法を理解しようとします。
以下に示すように、Textboxlページを検討します-
対応する出力は以下のとおりです-
テキストボックスがあります。名前を入力すると、onchangeイベントが発生し、名前が下に表示されます。
ここで、テキストボックスを見つけて名前を入力し、onchangeイベントを発生させるコードを記述しましょう。
ワティアコード
私たちはChromeブラウザーを使用しており、pageurlを http://localhost/uitesting/textboxl として指定しています。
goto apiブラウザーを使用すると、pageurlが開き、id:firstnameのtext_fieldが見つかります。 それが存在する場合、値をRiya Kapoorとして設定し、fire_event apiを使用してonchangeイベントを起動します。
さて、次のように出力を表示するコードを実行しましょう-
コンボの使用
構文
ここでテストするテストページを次に示します-
出力
ドロップダウンから月を選択すると、同じものが下に表示されます。
Watirを使用して同じことをテストしましょう。
コンボ選択用のWatirコード
コンボを使用するには、b.select_list apiの後にドロップダウンのIDを使用してselect要素を見つける必要があります。 ドロップダウンから値を選択するには、t.selectと必要な値を使用する必要があります。
実行時の出力は次のとおりです-
ラジオボタンの使用
構文
ラジオボタンを操作するために使用するテストページを次に示します-
Watirコードに示すように、値がFemaleのラジオボタンを選択します-
ラジオボタンを使用するには、ブラウザに選択している値を伝える必要があります。 b.radio value:” female”
また、スクリーンショットを撮って、radiobutton.pngとして保存します。同じものが下に表示されます-
チェックボックスの使用
構文
ここにチェックボックスのテストページがあります-
次に、以下に示すように、ブラウザでチェックボックスを見つけるためにWatirを使用します-
ブラウザーでチェックボックスを見つけるには、_b.checkbox_を選択する値と共に使用します。
ボタンの使用
構文
ここにボタンのテストページがあります-
これは、指定されたページ上のボタンを見つけるためのコードです-
これがスクリーンショットbutton.pngです
リンクの使用
構文
次のテストページを使用してリンクをテストします-
リンクのテストに必要なWatirの詳細は以下のとおりです-
出力
Divでの作業
構文
divをテストできるテストページ。
出力
divをテストするためのWatirコードはここに示されています-
出力
Watir-Web要素の特定
テスト用のWatirでは、要素を見つける必要があります。要素のID、クラス、またはテキストを使用して、さまざまな方法で要素を見つけることができます。
この章では、要素を見つけるさまざまな方法を示すいくつかの例を見ていきます。
要素のIDを使用する
テストページ
例
この例では、textbox要素のidを使用して、それを見つけて値を設定しています。
出力
あなたがdiv、スパンまたは他のhtmlタグを見つける必要がある場合は、次のようにidを使用して同じことを行うことができます
div
スパン用
要素のNAMEを使用する
テストページ
例
出力
タグ名を使用する
以下に示すように、htmlタグを直接使用して、必要なhtml要素を見つけることができます。
div
スパン用
pタグの場合
ボタン用
クラス名を使用する
クラス名を使用して要素を見つけることができます。 以下に示すように行うことができます-
div
スパン用
pタグの場合
ボタン用
テキストボックス用
以下に示すように、複数のクラスを渡すこともできます-
div
テキストを使用する
これは、テキスト付きの要素を使用して要素を見つけるもう1つの方法です。 たとえば-
ラベルを使用する
以下に示すように、要素のラベルを使用してそれを見つけることができます-
データ属性の使用
htmlタグにデータ属性がある場合、以下に示すようにそれを使用して要素を見つけることができます-
たとえば、次のようにタグを見つけることができます-
次のようにdivを見つけることができます-
カスタム属性を使用する
以下に示すように、カスタム属性を使用して要素を見つけることもできます-
html要素の例
次のようにdivを見つけることができます-
可視属性を使用する
可視属性を使用する要素は、以下に示すように配置することができます-
Watir-iframeの使用
Watirは、iframeを操作するための使いやすい構文を提供します。
構文
iframeの処理方法を理解し、iframe内の要素を見つけるために、この章では例に取り組みます。
例
メイン
テスト1
出力
上記の例では、エントリフォームはiframe内で定義されています。 私たちがそれを見つけてフォームをテストするのに役立つWatirコードを以下に示します-
ワティアコード
ここで指定されたURLでiframeを見つけるためのワティアコード-
上記のように、iframeのタグ名とiframeのIDを使用しました。
上記のコードのスクリーンショットを以下に示します-
iframetestbefore.png
iframetestafter.png
Watir-自動待機
この章では、待機を詳細に理解しましょう。 自動待機を理解するために、簡単なテストページを作成しました。 ユーザーがtextbox onchangeイベントにテキストを入力すると、3秒後にボタンが有効になります。
Watirには、特定のイベントまたはプロパティを待機する_wait_unit_ api呼び出しがあります。 以下に示すように、テストページについても同じテストを行います-
構文
testwaitl
出力
テキストボックスにテキストを入力すると、ボタンが有効になるまで3秒間待つ必要があります。
[送信]ボタンをクリックすると、次のテキストが表示されます-
ボタンを有効にするための遅延が追加されたため、自動化がこのようなケースを処理することは困難です。 何らかの遅延がある場合、または特定のイベントやプロパティのプロパティで待機する必要がある場合は、以下に示すようにwait_untilを使用できます-
wait_untilを使用したWatirコード
次に、次のコマンドを使用します
Watirは、ボタンが有効になるのを待ち、後でクリックイベントが発生するのを待ちます。 キャプチャされたスクリーンショットは以下に示されています-
Waittestbefore.png
waittestafter.png
Watir-ヘッドレステスト
この章では、Watir Webdriverのヘッドレスオプションを使用してページURLをテストする方法を学習します。
構文
私たちがテストしようとしているテストページはここに示されています-
出力
Watirコード
Watir chromeブラウザにオプション_headless_:trueを追加しました。 あなたがRubyプログラムを実行するとき、それはブラウザを開かず、すべてがコマンドラインで実行されます-
console.logメッセージを追加し、コマンドラインに同じメッセージを出力しました。
headless.pngのスクリーンショットを以下に示します-
Firefoxでは
Firefoxのwatirコードはここに示されています-
headlessfirefox.pngのスクリーンショットを次に示します-
Watir-モバイルテスト
モバイルテストでは、テスト用のデバイスブラウザーとして機能するデスクトップブラウザーを使用します。 この章でその手順を理解しましょう。
モバイルブラウザでアプリをテストするには、webdriver-user-agentをインストールする必要があります。
webdriver-user-agentのインストール
さて、以下の例に示すように、Webdriver useragentを使用します-
例
facebook.comのURLを指定しました。 あなたがそれを実行すると、以下に示すように、ユーザーエージェントに基づいて、モバイルモードで開きます-
次に、ポートレートモードで試してみましょう。 この目的のために次のコードを使用します-
ポートレートモードでの出力は以下のとおりです-
Watir-スクリーンショットのキャプチャ
スクリーンショットをキャプチャする機能は、Watirで利用できる興味深い機能の1つです。 テストの自動化中に、スクリーンショットを取得して画面を保存できます。 ケースでは、エラーが発生した場合、スクリーンショットの助けを借りて同じことが文書化できます。
スクリーンショットを撮ったテストページと一緒の簡単な例を以下に説明します-
構文
テストページ
例
Watirを使用して撮影したスクリーンショットを次に示します-
textboxbefore.png
textboxafter.png
Watir-ページオブジェクト
Watirのページオブジェクトは、クラスの形式でコードを再利用するのに役立ちます。 ページオブジェクト機能を使用すると、コードを複製することなくアプリを自動化でき、コードを管理しやすくすることもできます。
テスト時には、テストするページごとにページオブジェクトを作成できます。 次に、ページオブジェクトを使用してメソッドとプロパティにアクセスします。
ページオブジェクトを使用する背後にある理由-
- 変更の変更時にページに変更が加えられた場合、コードを書き直す必要はありません。
- コードの冗長性を回避するため。
Watirでページオブジェクトを使用するには、RSpecを使用します。 RSpecに慣れていない場合のために、link:/rspec/index [RSpec]で利用できる完全なチュートリアルを以下に示します。
私たちがテストを実行しようとしているページはここに与えられています-
テキストボックス
出力
以下に示すように、上記のページのページオブジェクトを作成します-
pageobjecttest.rb
定義された3つのクラスがあります-InitializeBrowser、TestPageおよびTestTextbox-
- InitializeBrowser -これは開かれたブラウザを初期化し、ブラウザオブジェクトをTestPageおよびTestTextboxクラスと共有します。
- TestPage -このクラスにはTestTextboxへのオブジェクト参照があり、スクリーンショットをキャプチャしてブラウザを閉じるメソッドが含まれています。
- TestTextbox -このクラスには、ページのURLを開き、テキストフィールドへの参照を与え、データを設定し、onchangeイベントを発生させるメソッドがあります。
上記のコードを実行すると、次のように出力を確認できます-
Watir-ページパフォーマンス
Watir Pageのパフォーマンス機能を使用すると、応答時間のメトリックを追跡でき、Chrome、Firefox、IE9以降で正常に機能します。 現在、Safariブラウザはサポートされていません。
この機能の使用方法を詳しく見てみましょう。 それを利用するには、下に示すようにgemを使用してwatir-performanceをインストールする必要があります-
コマンド
watir-performanceのインストールが完了しました。 サポートされているメトリックは次のとおりです-
- 概要
- ナビゲーション
- 記憶
- タイミング
watir-performanceを使用した実際の例をここで説明します。 ここでは、サイトの応答時間を確認します-以下に示すようにlink:/index [www.finddevguides.com]-
出力
performance.timingを使用する
出力
出力
performance.memoryを使用する
出力
Watir-クッキー
この章では、Watirを使用してCookieを操作する方法を学習します。
ここでは、指定されたURLのCookieを取得する簡単な例を説明します。
クッキーを取得する構文
例
出力
次に、以下に示すようにクッキーを追加しましょう-
クッキーを追加する構文
例
クッキーを追加する前の出力
Cookieを追加した後の出力
最後のものは、watirを使用して追加したものです。
クッキーを消す
構文
例
出力
特定のCookieを削除する
構文
例
出力
Watir-プロキシ
Watirでは、ブラウザで使用する必要があるプロキシオブジェクトの助けを借りてプロキシを使用できます。
構文
Chromeブラウザでプロキシを使用する方法の例を以下に示します-
例
以下に示すようにプロキシオブジェクトを使用しました-
プロキシアドレスの詳細は、httpとsslの両方に使用されます。 以下に示すように、Chromeブラウザでプロキシを使用できます-
出力proxy.pngは以下に示されています-
Firefoxブラウザでプロキシを使用する方法の例については、以下で説明します-
例
以下に示すように、プロキシの詳細を追加できます-
出力proxyfirefox.pngはここに示されています-
Watir-アラート
この章では、Watirを使用してアラートを処理する方法を理解します。
構文
テストページ
ワティアコード
出力alerttest.pngはここに示されています-
Watir-ダウンロード
UIまたはWebサイトには、pdfまたはドキュメントをダウンロードするボタンまたはリンクがあります。 ブラウザにいくつかの設定を与えることで、Watirで使用するためにそれをテストできます。
ダウンロードの構文-
prefsのダウンロードでは、ダウンロード後にファイルを保存するパスを指定する必要があり、上記の構文に示すオプションを使用してブラウザに同じパスを指定する必要があります。
実行例をここに示します。 ここでは、ボタンを含むテストページを作成しました。クリックすると、以下に示すようにfile.txtというファイルがダウンロードされます-
file.txt
出力
ダウンロードボタンをクリックすると、ファイルがダウンロードされます。
次に、Watirを使用して同じことをテストしましょう-
ダウンロードしたファイルを保存するために指定したパスは「C:/download」です。 上記のコードを実行すると、次のようにダウンロードパスにファイルがダウンロードされます-
出力testdownload.pngは次のようになります-
Watir-ブラウザウィンドウ
ポップアップウィンドウを使用するか、新しいブラウザウィンドウを開く必要がある場合があります。 この章では、Watirを使用してこのようなケースをテストする方法について説明します。
構文
私たちがテストしようとしている実際の例はここに与えられています-
出力
[ウィンドウを開く]ボタンをクリックすると、ポップアップウィンドウが開きます。 ここで、指定したURLはhttps://www.google.com/[www.google.com]です。 次に、Watir/
例
私たちが撮ったスクリーンショットは以下のとおりです-