ปกติเวลาที่เราจะรัน Automated test script ที่เราเขียนไว้ เรามักจะต้องให้มีใครสักคนมาเป็นคนคอยมารันและเก็บผลอยู่เสมอ มันดูไม่สะดวกเลย จะดีกว่าไหมถ้าเรามี Tool ที่จะรันเทสแทนเรา เก็บ Test Report และคอยแจ้งปัญหาเวลามี Test Fail เกิดขึ้นครับ ไปดูกันเลย

เครื่องมือที่ผมจะแนะนำวันนี้คือ Jenkins นั่นเอง ซึ่ง Jenkins เองเป็น Open source Tool ที่จะช่วยให้เราสามารถสั่งการรันเทส และเก็บผลทดสอบแทนเราได้ ไม่ว่าเพื่อนๆจะใช้ Test framework อย่าง Robot framework, Cucumber, Specflow และอื่นๆอีกมากมายครับ

Jenkins คือ


Jenkins เป็น Open Source Tools ที่ถูกเขียนด้วยภาษา Java ครับ โดย Jenkins ถูกสร้างขึ้นมาเพื่อตอบสนอง Concept 2 อย่างหลักๆคือ Continuous integration และ Continuous Delivery โดยการรันเทสของเรานั้นจะเป็นการนำไปผูกอยู่กับ Flow ของ Continuous integration นั่นเอง

แล้ว Continuous integration คืออะไร

Continuous integration คือ concept ที่เป็นหลักการ ให้ทีมพัฒนาทำการ integrate code หรือ รวมโค้ดบ่อยๆ และอยู่บนรากฐานของคุณภาพครับ

Continuous integration pipeline

ในการใช้งาน Jenkins เราจะเรียก flow ว่า pipeline ครับ โดย Pipeline พื้นฐานที่เรานิยมใช้กันสำหรับ CI หรือ Continuous integration จะแบ่งหลักๆตามนี้ครับ

โดยเราจะนำ System Test Script ที่เราเขียนไปต่อเชื่อมอยู่ภายใต้ในส่วนของ System Test นั่นเอง

แล้วถ้าในทีมไม่มี Build กับ Unit Test จะใช้แค่ System Test ได้ไหม

ใช้ได้ครับ โดยหาก Development Team ไม่ได้ใช้ CI process ทาง QA ก็สามารถเริ่ม Setup ขึ้นมาก่อน โดยการสร้างเฉพาะส่วนของ System Test บน Jenkins ได้เลยครับ

จะเริ่มต้นยังไงดี

ขั้นตอนแรกให้เพื่อนๆลองศึกษา และติดตั้ง Jenkins ดูกันก่อนนะครับ โดย Jenkins สามารถติดตั้งได้ทั้งบน Window, Linux และ Mac หลังจากนั้นในบทความหน้า มาดูการรัน Robot framework บน Jenkins กันครับ

 

บางครั้ง QA ไม่ต้องรอให้ Developer เป็นคนกำหนด process เราเองก็มีส่วนในการช่วยสร้าง process ของทีมให้มีคุณภาพครับ  ^ ^

 

7 COMMENTS

  1. พอดีที่บริษัทเพึ่งเปลี่ยนมาใช้งาน Jenkins และ Gitlab ใน Ubutu Server จึงอยากจะขอสอบถามหน่อยคร้า
    – ถ้าหาเรามี php project แล้วต้องการให้ jenkins วัดประสิทธิภาพ performance ของ code โดยที่ไม่ต้องแก้ไข code ตามแบบ PHPUnit test สามารถทำได้ไหมคะ (ศึกษาจากหลายๆเว็บส่วนใหญ่แนะนำแบบนี้)
    – ตัวอย่าง code 

    <?php
    function sum($x, $y) {
        $z = $x + $y;
        return $z;
    }

    echo "5 + 10 = " . sum(5, 10) . "”;
    echo “7 + 13 = ” . sum(7, 13) . “”;
    echo “2 + 4 = ” . sum(2, 4);
    ?>

    • ถ้าไม่แก้ไข code ให้ตรง standard ของ unit test library ก็อาจจะใช้วิธี ไปรัน web server ของ php บน jenkins server แล้วให้ jenkins build code แล้วไปวางที่ workspace นั้นดูครับ
      แต่ก็ต้องเพิ่ม code ที่ คุณ Patchara แชร์มาด้านบน เข้าไปด้วยครับ
      ข้อเสียคือ jenkins จะ parse ผลมาบน jenkins dashboard ให้เราไม่ได้ เราต้องเปิดไปดูผล performance เองที่หน้า Page ที่เราวาง
      code ไว้ครับ

        • สำหรับ guideline จะมีเป็นของ setup jenkins บน window กับ การรันเทส robot ด้วย jenkins ครับสำหรับบทความถัดไป
          สำหรับเรื่องเฉพาะเจาะจงอย่างที่ แนะนำไปข้างต้น จะไม่ได้มีให้ครับ