จะขอมาแชร์การใช้งาน Test email ethereal.email ในการค้นหา email ที่เราต้องการร่วมกับ Robot Framework กันดู สามารถนำมาประยุกต์ใช้ในการ อ่าน OTP ทางอีเมล แล้วนำไปกรอกหน้าเว็บด้วย Selenium นั่นเอง
สำหรับใครที่ใช้งาน Test Framework อื่นๆเช่น Playwright, Cypress ก็เอาไปประยุกต์ใช้ได้เหมือนกันครับ
Ethereal email
เป็นผู้ให้บริการ ฟรี Email สำหรับการทดสอบโดยเฉพาะ โดยข้อดีหลักๆคือ
- สามารถสร้าง Test email ได้เพียงแค่คลิกเดียว ระบบจะทำการสุ่มข้อมูลต่างๆให้เราทั้งหมดเลย
- ใช้ SMTP API ในการเข้าถึง Inbox ของผู้ใช้งาน ได้ง่ายๆเลย
เริ่มต้นสร้าง Test Email และ API
ก่อนอื่นให้ไปที่หน้าเว็บ https://ethereal.email/ แล้ว คลิกปุ่ม Create Ethereal Account ระบบก็จะทำการสร้าง Test Account มาให้เรา ก็ให้จด username และ password เก็บไว้
โดยเราสามารถดู Inbox ของ Email ได้ง่ายๆ โดยการไปที่ Tab Messages ด้านบนนั่นเอง
เข้าถึง Inbox ผ่าน SMTP API
ก่อนอื่นให้ติดตั้ง Library rpaframework ก่อนโดยรันคำสั่ง pip install rpaframework หรือ pip3 install rpaframework
สร้าง robot script โดยการอ่าน Email สามารถใช้ Keyword Wait For Message นั่นเอง สามารถนำ Code ด้านล่างไปทดสอบดูได้เลยครับ
*** Settings *** Library RPA.Email.ImapSmtp smtp_server=smtp.ethereal.email smtp_port=587 Test Setup Authorize account=${EMAIL_ACCOUNT} password=${EMAIL_PASSWORD} *** Variables *** ${EMAIL_ACCOUNT} <ethereal email account> ${EMAIL_PASSWORD} <ethereal email password> *** Test Cases *** Read email from ethereal email @{EMAILS} Wait For Message SUBJECT "rpa task" timeout=300 interval=10 FOR ${email} IN @{EMAILS} Log ${email}[Subject] Log ${email}[From] Log ${email}[Date] Log ${email}[Delivered-To] Log ${email}[Received] Log ${email}[Body] END
ให้เราทำการแก้ค่าของ ethereal email account และ password ให้ตรงกับที่เรา note ไว้ครับ ก่อนจะรันเทส ให้เราส่ง Email ที่มี Subject คำว่า rpa task ไว้เพราะตอนหาอีเมล เราจะหาโดยใช้ Subject Criteria นั่นเอง สามารถดู Criteria อื่นๆได้ที่นี่ Criteria List
เมื่อรันเทสแล้วลองดูใน Log จะสามารถดึง ข้อมูลต่างๆในอีเมลได้เช่น Body, Subject, Email From และ Received ตามรูปด้านล่าง
สามารถ Download source code ได้ที่นี่ Github
สนใจเรียนรู้แบบเจาะลึก
Robot Framework Selenium
Web Automated Test ด้วย
Robot Framework และ Selenium 6