พอดีช่วงนี้ต้องมาทำ script ดึงข้อมูลจาก Excel ด้วย Robot Framework เลยทำให้ต้องเขียนตัวแปลง format ข้อมูลอยู่บ่อยๆ ปัญหาที่มักจะเจอเลยคือ ค่า None จากที่ลองเช็คตาม internet ดู มีหลากหลายวิธิในการจัดการกับเจ้า None ว่าแล้วก็มาดูกันเลยครับ

เช็ค None ตรงๆเลย


${text} =    Set Variable If    ${text} == ${None}    ${EMPTY}    ${text}
Should Be Equal    ${text}    ${None}

วิธีนี้ สำหรับใครที่เขียนโปรแกรมมาก่อนอาจจะเป็นตัวเลือกแรกๆที่นำมาลองใช้ แต่ก็ต้องผิดหวังกลับไปถ้า text ของเราไม่ใช่ค่า None ก็จะเกิด error ขึ้นครับ วิธีนี้ไม่ผ่านครับ

เช็คโดยการเทียบแบบ String


${text} =    Set Variable If    "${text}" == "${None}"    ${EMPTY}    ${text}
Should Be Equal    ${text}    ${None}

วิธีนี้จะถูกแนะนำบ่อยมาก รวมถึงเวลาหาใน Stack overflow แต่วิธีนี้ก็มีปัญหาเช่นกัน กรณีที่ ${text} เป็น string ที่มีอักษรพิเศษ ” เช่น “John” Smith ก็จะทำให้เกิด error ขึ้นจากการไปใส่ double quote ครอบ

เช็คโดยใช้ Robot keyword มาช่วย


${isNotNone} =    Run Keyword And Return Status    Should Not Be Equal    ${text}    ${None}

วิธีนี้จะไม่ error แต่ก็เป็นการ work around โดยการใช้การรัน keyword และ validation keyword มาช่วยนั่นเอง

ใช้ Python function มาช่วย


${text} =    Set Variable If    $text is None    ${EMPTY}    ${text}

จะเห็นว่าใน condition เราสามารถเรียกใช้งานตัวแปล $text แบบไม่มี {} ครอบ และใช้ is None แบบที่เรียกใน python เลย วิธีการนี้จะช่วยให้เราตรวจสอบตัวแปลแบบตรงไปตรงมาที่สุด

ที่ทำแบบนี้ได้เพราะ Set Variable If ในส่วนของ condition robot framework จะใช้ python eval มาทำการรัน condition ที่เรากำหนดไว้ นอกจาก Keyword Set Variable If แล้วก็ยังมี Keyword  Run Keyword If และ Should Be True ที่รองรับครับ

Previous articleการใช้งาน Asynchronous กับการเทส Web Application
Next articleมา build Java Maven Project บน Jenkins กัน