Skip to content

Fixzbug/RobotFramework

Repository files navigation

Robot Framework on Jenkins

แก้ปัญหา Error เมื่อรัน Jenkins

Error:

'robot' is not recognized as an internal or external command,
operable program or batch file.
ERROR: Input redirection is not supported, exiting the process immediately.

วิธีแก้ไข:

ให้ตั้งค่า Environment Variables ตามตำแหน่งที่ติดตั้ง Python และ Robot Framework:

C:\Users\Makerz\AppData\Local\Programs\Python\Python311\
C:\Users\Makerz\AppData\Local\Programs\Python\Python311\Scripts\
C:\Users\Makerz\AppData\Local\Programs\Python\Python311\Scripts\robot.exe

การเริ่มต้นและรีสตาร์ท Jenkins

คำสั่ง:

C:\Program Files\Jenkins\Jenkins.exe restart
C:\Program Files\Jenkins\Jenkins.exe start
C:\Program Files\Jenkins\Jenkins.exe stop

Robot Framework

ติดตั้ง Python 3.8.9 (64-bit)

ติดตั้งไปที่ C:\python38\ หรือโฟลเดอร์ที่คุณต้องการ

ตัวอย่างการตรวจสอบตำแหน่ง Python

ตัวอย่างที่ 1: ติดตั้งแบบ Custom

C:\Users\Makerz>where python
C:\Program Files\Python38\python.exe 
# คลิก install custom และเลือก install for all users
C:\Users\Makerz\AppData\Local\Microsoft\WindowsApps\python.exe

ตัวอย่างที่ 2: ติดตั้งแบบ Auto

C:\Users\Makerz>where python
C:\Users\Makerz\AppData\Local\Programs\Python\Python38\python.exe  
# ไม่เลือก install for all users
C:\Users\Makerz\AppData\Local\Microsoft\WindowsApps\python.exe

คำสั่งที่ใช้ใน Command Prompt

where python
python --version
pip list

where robot
robot --version

where chrome
chromedriver --version

อัปเดต pip

py -m pip install --upgrade pip

ติดตั้ง Robot Framework และไลบรารีที่จำเป็น

pip install robotframework
pip install robotframework-seleniumLibrary
pip install pytest

การสร้างและใช้งาน Virtual Environment สำหรับแต่ละโปรเจกต์

ขั้นตอนที่ 1: สร้าง Virtual Environment

py -m venv .venv

ขั้นตอนที่ 2: เปิดใช้งาน Virtual Environment

.venv\Scripts\activate

รัน Pytest

python -m pytest

การจัดการโค้ดให้อ่านง่าย (Auto Format)

ติดตั้ง Extensions:

  • isort
  • autopep8

ติดตั้ง Library:

pip install robotframework-tidy==4.13.0

หมายเหตุ: ตรวจสอบตำแหน่งการติดตั้ง Python และโฟลเดอร์ที่ใช้รันโค้ด หากมีการแจ้งเตือนเกี่ยวกับการตั้งค่า path ใน VSCode ให้เลือก path ที่ถูกต้อง เช่น:

  • C:\Program Files\Python38\python.exe
  • C:\Users\Makerz\AppData\Local\Microsoft\WindowsApps\python.exe

ตัวอย่าง XPath

ตัวอย่างคำสั่ง XPath:

  • Xpart=//tagname[@Attribute='value']
  • //div[contains(.,"hi_username")]
  • //div[h3[@hello="hi_username"]]//input
  • //div[h3[@hello="hi_username"]]/ancestor::div/input
  • //div[h3[@hello="hi_username"]]/following-sibling::input
  • //input/preceding-sibling::h3[@hello="hi_username"]
  • //input[@t=yes and @p="yes"]
  • //h3[@class="s-item_title"]//span[contains(@class,'BOLD')]
  • //*[contains(@title,'*Please select assignee')]

หมายเหตุ: Parent::div คือการกระโดดไปยังโหนดก่อนหน้า

การติดตั้ง ChromeDriver

ดาวน์โหลด ChromeDriver:

  • เข้าไปที่หน้า Google Chrome Labs
  • เลือกเวอร์ชันที่ตรงกับเบราว์เซอร์ของคุณ
  • ดาวน์โหลดไฟล์ ZIP ที่เหมาะสมกับระบบปฏิบัติการ
  • แตกไฟล์ ZIP และเก็บไฟล์ chromedriver.exe ในโฟลเดอร์ที่คุณต้องการ

ตัวอย่างการใช้งาน ChromeDriver ใน Robot Framework

*** Settings ***
Library  SeleniumLibrary

*** Variables ***
${DRIVER_PATH}  C:/path/to/chromedriver.exe

*** Test Cases ***
Open Chrome Browser
    Open Browser  https://www.example.com  browser=chrome  executable_path=${DRIVER_PATH}
    Maximize Browser Window
    Sleep  5 seconds
    Close Browser

ในตัวอย่างนี้:

  • แทนที่ ${DRIVER_PATH} ด้วยตำแหน่งที่คุณเก็บไฟล์ chromedriver.exe
  • ทดสอบการเปิดเบราว์เซอร์ Chrome, ขยายหน้าต่าง, รอ 5 วินาที, และปิดเบราว์เซอร์

สรุปคำสั่ง Robot Framework ออปชัน -i, -L, และ -d พร้อมการใช้งานแบบละเอียด


1. -i หรือ --include

ใช้สำหรับ รันเฉพาะ Test Cases ที่มี Tag ตามที่ระบุ

การใช้งาน:

  • Syntax:
    robot -i <tag> <test_file>
  • คำอธิบาย:
    • <tag>: ชื่อ Tag ของ Test Case ที่ต้องการรัน
    • <test_file>: ไฟล์ Robot Framework ที่มี Test Cases

ตัวอย่าง:

robot -i smoke .\test.robot
  • ผลลัพธ์:
    • รันเฉพาะ Test Case ที่มี Tag ชื่อ smoke

การใช้งานหลาย Tag:

  • ใช้ร่วมกับคำสั่ง AND/OR
    • OR: -i tag1ORtag2
    • AND: -i tag1ANDtag2

ตัวอย่าง:

robot -i loginORsmoke .\test.robot
  • ผลลัพธ์:
    • รัน Test Cases ที่มี Tag login หรือ smoke

2. -L หรือ --loglevel

ใช้สำหรับ กำหนดระดับของ Log ที่ต้องการแสดง

การใช้งาน:

  • Syntax:
    robot -L <loglevel> <test_file>
  • คำอธิบาย:
    • <loglevel>: ระดับความละเอียดของ Log
      • TRACE: รายละเอียดสูงสุด
      • DEBUG: รายละเอียดสำหรับการ Debug
      • INFO: ค่าเริ่มต้น (แสดงเฉพาะข้อมูลสำคัญ)
      • WARN: แสดงเฉพาะคำเตือนและข้อผิดพลาด
      • ERROR: แสดงเฉพาะข้อผิดพลาด

ตัวอย่าง:

robot -L DEBUG .\test.robot
  • ผลลัพธ์:
    • Log จะบันทึกข้อมูลในระดับ DEBUG รวมถึง Debug Message ต่างๆ

3. -d หรือ --outputdir

ใช้สำหรับ ระบุโฟลเดอร์ที่เก็บผลลัพธ์

การใช้งาน:

  • Syntax:
    robot -d <output_directory> <test_file>
  • คำอธิบาย:
    • <output_directory>: ชื่อโฟลเดอร์ที่ต้องการเก็บไฟล์ผลลัพธ์ เช่น output.xml, log.html, และ report.html

ตัวอย่าง:

robot -d results .\test.robot
  • ผลลัพธ์:
    • ไฟล์ผลลัพธ์ (output.xml, log.html, report.html) จะถูกเก็บในโฟลเดอร์ results
    • หากโฟลเดอร์ results ไม่มีอยู่ ระบบจะสร้างขึ้นอัตโนมัติ

การใช้งานออปชันร่วมกัน

ตัวอย่างที่ 1: รัน Test Case ที่มี Tag smoke และเก็บผลลัพธ์ในโฟลเดอร์ results

robot -i smoke -d results .\test.robot

ตัวอย่างที่ 2: รัน Test Case ที่มี Tag regression พร้อมแสดง Log ระดับ WARN

robot -i regression -L WARN .\test.robot

ตัวอย่างที่ 3: รัน Test Case ที่มี Tag login หรือ signup พร้อมทั้งเก็บผลลัพธ์ในโฟลเดอร์ output

robot -i loginORsignup -d output .\test.robot

ตัวอย่างที่ 4: กำหนดระดับ Log เป็น TRACE และเก็บผลลัพธ์ในโฟลเดอร์ logs

robot -L TRACE -d logs .\test.robot

การใช้งานแบบผสม

robot -i smoke -L INFO -d results .\test.robot
  • คำอธิบาย:
    • รันเฉพาะ Test Case ที่มี Tag smoke
    • กำหนดระดับ Log เป็น INFO
    • ผลลัพธ์จะถูกเก็บในโฟลเดอร์ results

หมายเหตุ:

  1. จัดการโฟลเดอร์:
    • หากระบุ -d ต้องมั่นใจว่าโฟลเดอร์ที่ใช้มีสิทธิ์เขียนไฟล์
    • หากไม่มีโฟลเดอร์ ระบบจะสร้างให้โดยอัตโนมัติ
  2. Tag ในไฟล์ Test Case:
    • ต้องตรวจสอบว่า Test Case มีการกำหนด Tag ที่ถูกต้อง เช่น:
      *** Test Cases ***
      Test Login
          [Tags]    smoke
          Log    Login Test Passed

สรุป:

  • -i: ใช้เลือก Test Cases ตาม Tag
  • -L: กำหนดระดับความละเอียดของ Log
  • -d: ระบุโฟลเดอร์สำหรับเก็บไฟล์ผลลัพธ์

robot .\TC_login.robot robot -i TC001 .\TC_login.robot robot -d results .\TC_login.robot robot -L WARN .\TC_login.robot robot -d results -i TC001 -L WARN .\TC_login.robot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published