Blur ใน Robot Framework

มีโจทย์ว่า input text ในเว็บแอพ เวลา on blur ให้มันไปทำการ validate ข้อมูลใน input นั้น ถ้าไม่ถูกต้องก็แสดง error message ด้วยความที่ไม่รู้ ตอนที่อยากทำให้เกิด event on blur ก็ใช้วิธีเอาสีข้างแถ ๆ ไป

อ่านต่อ »

ปัญหาจากการใช้ Browser IE ใน Robot Framework

โพสต์ก่อนหน้าเพิ่งเขียนวิธีใช้ Internet Explorer ใน Robot Framework พอเอาไปใช้จริง ก็เจอปัญหาอื่น ๆ อีก เช่น ช้าโคตร หรือ เปิดขึ้นแล้วเจอปัญหาที่บอกว่า ไม่สามารถเรียกใช้ browser ที่เปิดแล้วได้ ทำให้มันพยายามเปิด browser ใหม่รัว ๆ หรือบอกว่า invalid argument อะไรสักอย่างที่ชื่อ sessionId เรียกว่า ปัญหาเยอะชิบหาย เมื่อเทียบกับใช้ chrome หรือ firefox แทน

โพสต์นี้เลยรวมเอาปัญหาที่เจอ กับวิธีแก้ปัญหามาไว้ด้วยกัน เผื่อเจออีก

อ่านต่อ »

เปิด Internet Explorer ด้วย Robot Framework

หลังจากที่เปลี่ยน OS มาเป็น mac OSX ได้หลายปี รวมถึงใช้ google chrome เป็นหลัก ก็ไม่ได้กลับไปยุ่งกับ internet explorer อีกเลย จนวันนี้ลูกค้าบอกว่า ผู้ใช้ส่วนใหญ่ที่เข้ามาใช้ระบบของเขา ใช้ internet explorer เวอร์ชั่น 11 รองลงมาเป็น google chrome เขาอยากจะให้ความสำคัญกับ browser ทั้งสองตัวนี้ การ test ที่เป็น robot framework ก็อยากให้เทสบน browser ทั้งสองตัวนี้ด้วย

วิธีการ test ด้วย google chrome ไม่ได้ยากอะไร ใช้วิธีปกติได้เลย ส่วนการ test ด้วย internet explorer ล่ะ ต้องทำยังไงวะ ไม่เคยลองจริง ๆ เลยสักที ใน document มันบอกแค่ว่ากำหนด browser เป็น ie ก็จบ ใช้ได้เลย อ่านต่อ »

Headless Robot Framework

แต่ก่อนตอนรัน robot framework ทดสอบเว็บทีไร หน้าจอ browser ก็จะเปิดกันพรึ่บพรั่บ จนไปได้เทคนิคจากดิวมา 2 ท่าคือ โยนไปรันใน docker hub กับ รันใน xvfb (X virtual framebuffer) ไม่งั้นก็ต้องหนีไปใช้ phantomjs ที่เป็น headless browser โดยกำเนิด แต่ปัญหาคือ target user ไม่ได้ใช้ phantomjs เลยต้องกลับไป focus ที่ browser หลัก ๆ อย่าง chrome หรือ firefox

จนมาหลัง ๆ ก็เห็นว่า chrome ตั้งแต่ version 59 มีความสามารถ headless ออกมาให้ใช้ ก็ไปได้สูตรในการเรียกใช้ chrome แบบ headless มา เอาไปลอง run บน server แล้ว โอเคเลยทีเดียว

อ่านต่อ »

DIY Robot Framework Library

ปกติเวลาจะจัด Format string ใน Robot Framework ก็จะใช้วิธีเอามาต่อกันเฉย ๆ หรือจะใช้ Keyword Catenate เพื่อต่อ String เช่น ${text}= | Catenate | A | B ก็จะได้ ${text} มีค่าเป็น AB ทีนี้พอค่าที่จะเอามา Catenate กันดันเป็นทศนิยม แล้วอยากจะจัด precision ก่อน ก็เริ่มลำบาก

อ่านต่อ »

Recursive in Robot framework

การวนลูปใน Robot framework โดยปกติเราสามารถทำได้ด้วยการใช้ : FOR syntax และใช้ Keyword ในการควบคุม Loop ว่าจะให้ออกจากลูป หรือจะให้ทำในลูปต่อ

Keyword ที่ใช้เป็น Condition ในการใช้ควบคุมลูป จะประกอบด้วย Continue For Loop, Continue For Loop If, Exit For Loop และ Exit For Loop If นอกจากนี้เรายังสามารถทำ Loop อีกแบบหนึ่งได้ด้วยการใช้ Recursive Keyword นั่นก็คือ Keyword ที่เรียกตัวเองนั่นเอง

อ่านต่อ »