Robot-framework-testing-login-page
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}*
*$ \ {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をクリックします。
ここで、テストスイートのセットアップを作成しましょう–テストセットアップ。 このセットアップは最初に実行する必要があります。
[テストセットアップの編集]をクリックして、詳細を入力します。
テストセットアップ用に、 Login Page Display というユーザー定義のキーワードを作成しました。これは、上記のスクリーンショットのように引数を $ \ {loginpage} として受け取ります。
[OK]をクリックして、テストセットアップを保存します。
次に、ユーザーキーワード Login Page Display を作成する必要があります。
テストスイートを右クリックし、以下に示すように[新しいユーザーキーワード]をクリックします-
新しいユーザーキーワードは、次のように画面を表示します-
[OK]をクリックして、キーワードを保存します。
ユーザーキーワード Login Page Display に必要なキーワードを入力しましょう。
ここで、 loginpage に移動して、ページのタイトルが指定された値と一致するかどうかを確認します。
次に、テストスイートにテンプレートを追加し、データ駆動型テストケースを作成します。
テンプレートを作成するには、スイートをクリックし、右側で[テストテンプレートの編集]をクリックします。
次の画面に移動します-
テストログインは、再びユーザー定義のキーワードです。 [OK]をクリックして、テンプレートを保存します。
Test Loginキーワードを作成する前に、いくつかのスカラー変数が必要です。 スカラー変数には、email-id、パスワード、成功ページ、失敗ページなどの詳細が含まれます。
次のようにテストスイートのスカラー変数を作成します-
上記のスクリーンショットに示すように、電子メール、パスワード、成功ページ、および失敗ページのスカラー変数を作成しました。
ここで、*テストログイン*ユーザー定義キーワードを作成します。 テストスイートを右クリックし、[新しいユーザーキーワード]をクリックします。
[OK]をクリックして、キーワードを保存します。
次のスクリーンショットは、Test Loginに入力されたキーワードを示しています-
- 電子メールの入力、パスワードの入力、詳細の送信*および*ログインが失敗する*は、次のように定義されるユーザー定義のキーワードです-
メールアドレスを入力して
パスワードを入力する
詳細を送信
ログインに失敗する
次に、作成したテンプレートに異なる電子メールIDとパスワードの詳細を使用するテストケースを作成します。
以下は、テストケースのリストです-
無効なメールIDテストケース
電子メールは値[email protected]で渡され、$ \ {password}は変数に保存されているパスワードです。
無効なパスワード
無効なメール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
結論
ここでは、さまざまな入力でログインページをテストする方法を見てきました。これにより、ログインが正常に機能しているかどうかが検証されます。 実行が行われる方法の詳細は、ログセクションに記載されています。