การทดสอบหน้าเข้าสู่ระบบโดยใช้ Robot Framework
ด้วย Robot Framework เราได้เรียนรู้สิ่งต่อไปนี้ -
- นำเข้าไลบรารี
- การทำงานกับตัวแปร
- สร้างคำหลักที่กำหนดเอง
- วิธีการเขียนกรณีทดสอบ
- วิธีสร้างการตั้งค่าและการฉีกขาด
- วิธีดำเนินการกรณีทดสอบ
- วิธีทำงานกับกรณีทดสอบที่ขับเคลื่อนด้วยข้อมูล
เราจะใช้คุณสมบัติข้างต้นทั้งหมดและใช้เพื่อทดสอบหน้าล็อกอินในบทนี้ เรามีหน้าเข้าสู่ระบบซึ่งใช้รหัสอีเมลและรหัสผ่าน เมื่อคุณป้อนรหัสอีเมลและรหัสผ่านที่ถูกต้องคุณจะถูกนำไปที่หน้ายินดีต้อนรับ หากผู้ใช้ป้อนรหัสอีเมลหรือรหัสผ่านที่ไม่ถูกต้องหน้าจะถูกเปลี่ยนเส้นทางไปยังหน้าข้อผิดพลาด
ภาพหน้าจอต่อไปนี้แสดงหน้าเข้าสู่ระบบ -
รหัส 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/success.html";
} else {
location.href = "http://localhost/robotframework/loginfailed.html";
}
}
</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>
หน้าจอต่อไปนี้จะปรากฏขึ้นเมื่อรหัสอีเมลหรือรหัสผ่านไม่ถูกต้อง -
รหัส 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
คลิกตกลงเพื่อบันทึกโครงการ
ตอนนี้เราจะสร้างชุดทดสอบภายในโครงการ
คลิก New Suite และจะแสดงหน้าจอดังที่แสดงด้านล่าง -
คลิกตกลงเพื่อบันทึกชุดทดสอบ เราจำเป็นต้องนำเข้า Selenium Library เนื่องจากเราจะทำงานกับเบราว์เซอร์
นำเข้าไลบรารีในโครงการหลักและไปยังชุดทดสอบที่สร้างขึ้น
คลิก Library ตามภาพหน้าจอด้านบน เมื่อคลิกที่ Library หน้าจอต่อไปนี้จะปรากฏขึ้น
คลิกตกลงเพื่อบันทึกไลบรารีสำหรับโครงการ
เมื่อไลบรารีถูกบันทึกสำหรับโครงการแล้วไลบรารีจะแสดงในการตั้งค่า -
ทำซ้ำขั้นตอนเดียวกันสำหรับชุดทดสอบที่สร้างขึ้น
นี่คือไลบรารีที่เพิ่มเข้ามาสำหรับชุดทดสอบ -
ตอนนี้ในโครงการหลักเราจะสร้างการตั้งค่าและการแยกย่อย เราต้องการเปิดหน้าเข้าสู่ระบบในเบราว์เซอร์ Chrome และขยายหน้าต่างให้ใหญ่ที่สุด ในการฉีกขาดเราจะปิดเบราว์เซอร์
สำหรับการตั้งค่าเราจะสร้างคำหลักที่กำหนดโดยผู้ใช้ที่เรียกว่า Open Login Page. คีย์เวิร์ดนี้จะรับ 2 อาร์กิวเมนต์ URL ของหน้าล็อกอินและชื่อเบราว์เซอร์
ตอนนี้เราต้องการตัวแปรสเกลาร์ 2 ตัวที่จะช่วยเราเก็บค่า - url และชื่อเบราว์เซอร์
ในการขับขี่สร้างตัวแปร 2 ตัว ${loginpage} และ ${browser} ดังต่อไปนี้ -
${loginpage}
${browser}
บันทึกตัวแปรทั้งสอง
ตัวแปรจะแสดงภายใต้โครงการของคุณดังนี้ -
ตอนนี้เราจะเพิ่มการตั้งค่าและการแยกสำหรับโครงการหลัก
คลิกที่โครงการทางด้านซ้าย ในการตั้งค่าคลิก Suite Setup
เราได้สร้างการตั้งค่าที่ใช้คำสำคัญของผู้ใช้ Open Login Page มีข้อโต้แย้ง ${loginpage} และ ${browser}.
คลิกตกลงเพื่อบันทึกการตั้งค่า
ตอนนี้เราต้องสร้างคำหลักที่ผู้ใช้กำหนด Open Login Pageซึ่งทำได้ดังนี้ -
คลิกขวาที่โครงการแล้วคลิก New User Keyword -
เมื่อคลิก New User Keywordหน้าจอต่อไปนี้จะปรากฏขึ้น -
ที่นี่คำหลักจะได้รับ 2 อาร์กิวเมนต์ - ${loginpage} และ ${browser}. คลิกตกลงเพื่อบันทึกคำสำคัญของผู้ใช้
ตอนนี้เราต้องป้อนคำหลักไลบรารีซึ่งจะเปิด URL
Open Login Page คำสำคัญที่ผู้ใช้กำหนดมีรายละเอียดดังต่อไปนี้ -
*** Keywords ***
Open Login Page
[Arguments] ${loginpage} ${browser}
Open Browser ${loginpage} ${browser}
Maximize Browser Window
Title Should Be Login Page
ตอนนี้เราจะสร้าง Suite Teardown สำหรับห้องชุด
คลิกแก้ไขสำหรับ Suite Teardown และป้อนรายละเอียด -
สำหรับ Suite teardown เราใช้คำสำคัญไลบรารีโดยตรงซึ่งจะปิดเบราว์เซอร์ คลิกตกลงเพื่อบันทึกชุดการฉีกขาด
ตอนนี้คลิก Testlogin Suite ที่เราสร้างขึ้น
ให้เราสร้างการตั้งค่าสำหรับชุดทดสอบ - Test Setup การตั้งค่านี้จำเป็นต้องดำเนินการก่อน
คลิกแก้ไขเพื่อทดสอบการตั้งค่าและป้อนรายละเอียด
สำหรับการตั้งค่าการทดสอบเราได้สร้างคำหลักที่กำหนดโดยผู้ใช้ที่เรียกว่า Login Page Displayซึ่งจะใช้อาร์กิวเมนต์เป็น ${loginpage} ดังภาพหน้าจอด้านบน
คลิกตกลงเพื่อบันทึกการตั้งค่าการทดสอบ
ตอนนี้เราจำเป็นต้องสร้างคำหลักของผู้ใช้ Login Page Display.
คลิกขวาที่ชุดทดสอบแล้วคลิก New User Keyword ดังแสดงด้านล่าง -
New User Keyword จะแสดงหน้าจอดังภาพด้านล่าง -
คลิกตกลงเพื่อบันทึกคำสำคัญ
ให้เราป้อนคำหลักที่เราต้องการสำหรับคำหลักของผู้ใช้ Login Page Display.
ที่นี่เราต้องการไปที่ไฟล์ loginpage และตรวจสอบว่าชื่อของเพจตรงกับค่าที่กำหนดหรือไม่
ตอนนี้เราจะเพิ่มเทมเพลตลงในชุดทดสอบและสร้างกรณีทดสอบที่ขับเคลื่อนด้วยข้อมูล
ในการสร้างเทมเพลตให้คลิกที่ชุดและทางด้านขวาคลิกแก้ไขสำหรับเทมเพลตทดสอบ
คุณจะถูกนำไปที่หน้าจอต่อไปนี้ -
Test Login เป็นอีกครั้งที่ผู้ใช้กำหนดคีย์เวิร์ด คลิกตกลงเพื่อบันทึกเทมเพลต
ก่อนที่เราจะสร้างคีย์เวิร์ด Test Login เราจำเป็นต้องมีตัวแปรสเกลาร์ ตัวแปรสเกลาร์จะมีรายละเอียดของ email-id, password, successpage, failurepage เป็นต้น
เราจะสร้างตัวแปรสเกลาร์สำหรับชุดทดสอบดังนี้ -
เราได้สร้างตัวแปรสเกลาร์อีเมลรหัสผ่านหน้าความสำเร็จและหน้าความล้มเหลวดังที่แสดงในภาพหน้าจอด้านบน
ตอนนี้เราจะสร้าง Test Loginคำหลักที่ผู้ใช้กำหนด คลิกขวาที่ชุดทดสอบและคลิกที่คำหลักของผู้ใช้ใหม่
คลิกตกลงเพื่อบันทึกคำสำคัญ
ภาพหน้าจอต่อไปนี้แสดงคำสำคัญที่ป้อนสำหรับการเข้าสู่ระบบทดสอบ -
Enter Email, Enter Password, Submit Details และ Login Should Fail คือคำหลักที่กำหนดโดยผู้ใช้ซึ่งกำหนดไว้ดังนี้ -
กรอกอีเมล
ใส่รหัสผ่าน
ส่งรายละเอียด
การเข้าสู่ระบบควรล้มเหลว
ตอนนี้เราจะเขียนกรณีทดสอบซึ่งจะใช้รายละเอียดรหัสอีเมลและรหัสผ่านที่แตกต่างกันไปในเทมเพลตที่สร้างขึ้น
ต่อไปนี้เป็นรายการกรณีทดสอบ -
กรณีทดสอบรหัสอีเมลไม่ถูกต้อง
อีเมลถูกส่งด้วยค่า [email protected] และ $ {password} คือรหัสผ่านที่เก็บไว้ในตัวแปร
รหัสผ่านไม่ถูกต้อง
รหัสอีเมลและรหัสผ่านไม่ถูกต้อง
รหัสอีเมลว่างเปล่า
รหัสผ่านว่างเปล่า
อีเมลและรหัสผ่านว่างเปล่า
ตอนนี้เราทำกรณีทดสอบเสร็จแล้วและสามารถรันได้เหมือนเดิม
ไปที่แท็บเรียกใช้แล้วคลิกเริ่มเพื่อดำเนินการกรณีทดสอบ
นี่คือข้อความบันทึกสำหรับกรณีทดสอบ -
20181027 18:11:40.353 : INFO : Opening browser 'chrome' to base url '
http://localhost/robotframework/login.html'.
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/login.html'
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/loginfailed.html'.
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/login.html'
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/loginfailed.html'.
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/login.html'
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/loginfailed.html'.
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/login.html'
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/loginfailed.html'.
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/login.html'
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/loginfailed.html'.
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/login.html'
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/loginfailed.html'.
20181027 18:11:52.432 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Email And Password
สรุป
เราได้เห็นวิธีทดสอบหน้าเข้าสู่ระบบด้วยอินพุตที่แตกต่างกันซึ่งจะตรวจสอบว่าการเข้าสู่ระบบทำงานได้ดีหรือไม่ รายละเอียดวิธีการดำเนินการจะได้รับในส่วนบันทึก