Robot-framework-testing-login-page

提供:Dev Guides
移動先:案内検索

Robot Frameworkを使用したログインページのテスト

Robot Frameworkを使用して、これまでに次のことを学びました-

  • ライブラリのインポート
  • 変数を操作する
  • カスタムキーワードを作成する
  • テストケースの書き方
  • セットアップと分解の作成方法
  • テストケースを実行する方法
  • データ駆動型テストケースの使用方法

上記のすべての機能を使用して、この章のログインページのテストに使用します。 電子メールIDとパスワードを入力するログインページがあります。 正しいメールIDとパスワードを入力すると、ようこそページにリダイレクトされます。 ユーザーが無効なメールIDまたはパスワードを入力すると、ページはエラーページにリダイレクトされます。

次のスクリーンショットは、ログインページを示しています-

ログインページ

HTMLコード

<html>
   <head>
      <title>Login Page</title>
   </head>
   <body>
      <script type="text/javascript">
         function wsSubmit() {
            if (document.getElementById("email").value == "[email protected]" && document.getElementById("passwd").value == "admin") {
               location.href = "http://localhost/robotframework/successl";
            } else {
               location.href = "http://localhost/robotframework/loginfailedl";
            }
         }
      </script>
      <div id="formdet">
         Email : <input type="text" id="email" value="" id="email"/><br/><br/>
         Password : <input type="password" id="passwd" value=""/><br/><br/>
         <input type="submit" id="btnsubmit" value="Submit" onClick="wsSubmit();"/>
      </div>
   </body>
</html>

電子メールIDまたはパスワードが無効な場合、次の画面が表示されます-

ログインパスワードページ

HTMLコード

<html>
   <head>
      <title>Login Failed</title>
   </head>
   <body>
      <div id="loginfailed">
         <h1>Login Failed</h1>
      </div>
   </body>
</html>

電子メールIDとパスワードの両方が有効な場合、次の画面が表示されます-

メールパスワードページ

HTMLコード

<html>
   <head>
      <title>Login Successful</title>
   </head>
   <body>
      <div id="loginfailed">
         <h1>Login Successful</h1>
      </div>
   </body>
</html>

次に、上記のテストページのテストケースを作成します。 まず、コマンドを実行してRideを開きます。

コマンド

ride.py

完了したら、以下に示すようにプロジェクトのセットアップを開始します-

プロジェクト設定

[新しいプロジェクト]をクリックして、プロジェクトの名前を入力します。

プロジェクト名の設定

プロジェクトのタイプをディレクトリとして保存します。 プロジェクトに付けられた名前はtestloginです。

[OK]をクリックしてプロジェクトを保存します。

次に、プロジェクト内にテストスイートを作成します。

テストスイート

[新しいスイート]をクリックすると、次のような画面が表示されます-

ディスプレイスイート

[OK]をクリックして、テストスイートを保存します。 ブラウザで作業するため、Selenium Libraryをインポートする必要があります。

メインプロジェクトおよび作成されたテストスイートにライブラリをインポートします。

作成されたスイート

上記のスクリーンショットのように[ライブラリ]をクリックします。 [ライブラリ]をクリックすると、次の画面が表示されます。

スクリーンスイート

[OK]をクリックして、プロジェクトのライブラリを保存します。

ライブラリがプロジェクト用に保存されると、設定にライブラリが表示されます-

設定スイート

作成されたテストスイートに対して同じ手順を繰り返します。

ここにテストスイートに追加されたライブラリがあります-

ライブラリスイート

次に、メインプロジェクトで、セットアップと分解を作成します。 Chromeブラウザでログインページを開き、ウィンドウを最大化します。 分解では、ブラウザを閉じます。

セットアップのために、 Open Login Page というユーザー定義のキーワードを作成します。 このキーワードは、ログインページURLとブラウザ名の2つの引数を取ります。

ここで、値を保存するのに役立つ2つのスカラー変数(urlとブラウザー名)が必要です。

ライドでは、次のように2つの変数 $ \ {loginpage} および $ \ {browser} を作成します-

*$ \ {loginpage}*

loginpage

*$ \ {browser}*

browser

両方の変数を保存します。

変数は次のようにプロジェクトの下に表示されます-

表示される変数

次に、メインプロジェクトのセットアップと分解を追加します。

左側のプロジェクトをクリックします。 設定で、[スイートのセットアップ]をクリックします。

スイートのセットアップ

スイートセットアップ設定

引数 $ \ {loginpage} および $ \ {browser} でユーザーキーワード Open Login Page を使用するセットアップを作成しました。

[OK]をクリックして、セットアップを保存します。

ここで、次のように行われるユーザー定義キーワード Open Login Page を作成する必要があります-

プロジェクトを右クリックし、[新しいユーザーキーワード]をクリックします-

新しいユーザーキーワードプロジェクト

  • 新しいユーザーキーワード*をクリックすると、次の画面が表示されます-

新しいユーザーキーワードが表示されます

ここで、キーワードには2つの引数が与えられます- $ \ {loginpage} および $ \ {browser} 。 [OK]をクリックして、ユーザーキーワードを保存します。

新しいユーザーキーワード引数

ここで、URLを開くライブラリキーワードを入力する必要があります。

新しいユーザーキーワードライブラリ

  • ログインページを開く*ユーザー定義キーワードには次の詳細があります-
** *Keywords* **
Open Login Page
   [Arguments] ${loginpage} ${browser}
   Open Browser ${loginpage} ${browser}
   Maximize Browser Window
   Title Should Be Login Page

次に、スイートの Suite Teardown を作成します。

スイートティアダウン

Suite Teardownの編集をクリックし、詳細を入力します-

スイート分解詳細

Suiteの分解では、ライブラリキーワードを直接使用しています。これにより、ブラウザーが閉じられます。 [OK]をクリックして、スイートの分解を保存します。

次に、作成したTestlogin Suiteをクリックします。

スイートティアダウンログイン

ここで、テストスイートのセットアップを作成しましょう–テストセットアップ。 このセットアップは最初に実行する必要があります。

[テストセットアップの編集]をクリックして、詳細を入力します。

Suite Teardown Setup

テストセットアップ用に、 Login Page Display というユーザー定義のキーワードを作成しました。これは、上記のスクリーンショットのように引数を $ \ {loginpage} として受け取ります。

[OK]をクリックして、テストセットアップを保存します。

Suite Teardown save

次に、ユーザーキーワード Login Page Display を作成する必要があります。

テストスイートを右クリックし、以下に示すように[新しいユーザーキーワード]をクリックします-

スイートティアダウンクリック

新しいユーザーキーワードは、次のように画面を表示します-

スイートティアダウン表示

[OK]をクリックして、キーワードを保存します。

ユーザーキーワード Login Page Display に必要なキーワードを入力しましょう。

ログインページの表示

ここで、 loginpage に移動して、ページのタイトルが指定された値と一致するかどうかを確認します。

次に、テストスイートにテンプレートを追加し、データ駆動型テストケースを作成します。

テンプレートを作成するには、スイートをクリックし、右側で[テストテンプレートの編集]をクリックします。

データ駆動型テストケース

次の画面に移動します-

データ駆動型

テストログインは、再びユーザー定義のキーワードです。 [OK]をクリックして、テンプレートを保存します。

Test Loginキーワードを作成する前に、いくつかのスカラー変数が必要です。 スカラー変数には、email-id、パスワード、成功ページ、失敗ページなどの詳細が含まれます。

次のようにテストスイートのスカラー変数を作成します-

テストスイートのスカラー変数

上記のスクリーンショットに示すように、電子メール、パスワード、成功ページ、および失敗ページのスカラー変数を作成しました。

ここで、*テストログイン*ユーザー定義キーワードを作成します。 テストスイートを右クリックし、[新しいユーザーキーワード]をクリックします。

テストログインの作成

[OK]をクリックして、キーワードを保存します。

次のスクリーンショットは、Test Loginに入力されたキーワードを示しています-

スクリーンショットテストログイン

  • 電子メールの入力、パスワードの入力、詳細の送信*および*ログインが失敗する*は、次のように定義されるユーザー定義のキーワードです-

ログインが失敗する

メールアドレスを入力して

メールアドレスを入力

パスワードを入力する

パスワードを入力

詳細を送信

詳細を送信

ログインに失敗する

ログインは失敗します

次に、作成したテンプレートに異なる電子メールIDとパスワードの詳細を使用するテストケースを作成します。

以下は、テストケースのリストです-

パスワードの詳細

無効なメールIDテストケース

無効なメール

電子メールは値[email protected]で渡され、$ \ {password}は変数に保存されているパスワードです。

無効なパスワード

無効なパスワード

無効なメールIDとパスワード

無効なパスワード

空のメールID

空のメールID

空のパスワード

空のメールID

空のメールとパスワード

空のメールID

これで、テストケースが完了し、同じテストを実行できます。

[実行]タブに移動し、[開始]をクリックしてテストケースを実行します。

実行タブ実行

テストケースのログメッセージは次のとおりです-

20181027 18:11:40.353 : INFO : Opening browser 'chrome' to base url '
http://localhost/robotframework/loginl'.
20181027 18:11:45.960 : INFO : Page title is 'Login Page'.
Starting test: Testlogin.Testlogin Suite.Invalid EmailId
20181027 18:11:45.991 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:46.169 : INFO : Page title is 'Login Page'.
20181027 18:11:46.180 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:46.706 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:47.075 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:47.565 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:47.584 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId

Starting test: Testlogin.Testlogin Suite.Invalid Password
20181027 18:11:47.600 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:47.767 : INFO : Page title is 'Login Page'.
20181027 18:11:47.783 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:48.342 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:48.701 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:49.035 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:49.051 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid Password

Starting test: Testlogin.Testlogin Suite.Invalid EmailId And Password
20181027 18:11:49.054 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:49.213 : INFO : Page title is 'Login Page'.
20181027 18:11:49.221 : INFO : Typing text 'invalid' into text field 'email'.
20181027 18:11:49.555 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:49.883 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.162 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:50.176 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId And Password

Starting test: Testlogin.Testlogin Suite.Empty Emailid
20181027 18:11:50.188 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:50.302 : INFO : Page title is 'Login Page'.
20181027 18:11:50.306 : INFO : Typing text '' into text field 'email'.
20181027 18:11:50.486 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:50.693 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.935 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:50.958 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Emailid

Starting test: Testlogin.Testlogin Suite.Empty Password
20181027 18:11:50.958 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:51.063 : INFO : Page title is 'Login Page'.
20181027 18:11:51.071 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:51.367 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:51.561 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:51.796 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:51.808 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Password

Starting test: Testlogin.Testlogin Suite.Empty Email And Password
20181027 18:11:51.811 : INFO : Opening url 'http://localhost/robotframework/loginl'
20181027 18:11:51.908 : INFO : Page title is 'Login Page'.
20181027 18:11:51.916 : INFO : Typing text '' into text field 'email'.
20181027 18:11:52.049 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:52.193 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:52.419 : INFO : Current location is 'http://localhost/robotframework/loginfailedl'.
20181027 18:11:52.432 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Email And Password

結論

ここでは、さまざまな入力でログインページをテストする方法を見てきました。これにより、ログインが正常に機能しているかどうかが検証されます。 実行が行われる方法の詳細は、ログセクションに記載されています。