Robot framework email testing with ethereal.email

จะขอมาแชร์การใช้งาน 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

Previous articleจัดการ Version Robot Framework Library ด้วย Pip
Next articleอ่านข้อมูลใน Excel ด้วย Robot Framework