TIL/용어

Robot Framework 개념과 사용 예시, 비교

아람2 2025. 8. 4. 17:14
반응형

요즘 Robot Framework 를 사용하고 있지만 개념에 대해서는 정리를 안 한 것 같아 한 번 정리해본다 

로봇 프레임워크 Robot Framework 

자동화 테스트와 RPA, Robotic Process Automation 작업에 사용되는 오픈 소스 테스트 프레임워크 

주요 특징

항목 설명
Keyword 기반 테스트 사람이 읽기 쉬운 형식으로 테스트를 작성 ex) Login With Valid User
데이터 중심, Data-driven 테스트 케이스에 다양한 입력값을 적용하여 반복 테스트 가능
확장성 Python, Java 등으로 사용자 정의 키워드를 개발 가능
플러그인 생태계 SeleniumLibrary, AppiumLibrary, RequestsLibrary 등 풍부한 라이브러리 지원
테스트 레포트 자동 생성 테스트 결과를 HTML 로 레포트 및 로그로 출력
BDD 유사 문법 Given/ When/ Then 형태는 아니지만 자연어에 가까운 스타일로 작성 가능

 

.robot 파일 기본 문법 구조 

*** Settings ***
# 설정 (Library Import 등)
Library    SeleniumLibrary

*** Variables ***
# 변수 정의
${URL}     https://example.com

*** Test Cases ***
# 실제 테스트 시나리오
Open Web And Check Title
    Open Browser    ${URL}    chrome
    Title Should Be    Example Domain
    Close Browser

*** Keywords ***
# 내가 만든 재사용 키워드 (함수처럼 쓰는 영역)
Login
    Input Text    id=username    myuser
    Input Text    id=password    mypass
    Click Button    id=login

Settings: 테스트 환경 설정

*** Settings ***
Library    SeleniumLibrary            # Selenium 기능 사용
Resource   ../keywords/common.robot   # 공통 키워드 불러오기
Suite Setup    Open Browser To Login Page
Suite Teardown    Close Browser
키워드 설명
Library 외부 라이브러리 불러오기 (Selenium, Appium 등)
Resource 키워드 정의한 .robot 파일 불러오기
Suite Setup/ Teardown 전체 테스트 전/ 후에 실행할 명령 지정
Test Setup/ Teardown 각 테스트 케이스마다 전/ 후 처리 지정

Variables: 변수 선언

*** Variables ***
${URL}       https://example.com
${BROWSER}   chrome
${USERNAME}  abcuser
${PASSWORD}  1234

 

${} 안에 변수 이름을 정의하고 값 할당하면 된다, 나중에 재사용하기 편리함!

 

Test Cases: 실제 테스트 시나리오 작성

*** Test Cases ***
로그인 성공 시 환영 메시지 확인
    Open Browser    ${URL}    ${BROWSER}
    Input Text      id=username    ${USERNAME}
    Input Text      id=password    ${PASSWORD}
    Click Button    id=login
    Page Should Contain    Welcome
    Close Browser

키워드와 인자 argument 는 공백으로 구분하고, 들여쓰기 대신에 Tab or 2칸 이상 공백을 사용하면 된다 

Keywords: 재사용 가능한 사용자 정의 함수

*** Keywords ***
Login With Valid User
    Input Text      id=username    ${USERNAME}
    Input Text      id=password    ${PASSWORD}
    Click Button    id=login

 

SeleniumLibrary 기준 자주 쓰는 키워드 

키워드 설명
Open Browser 웹 브라우저 열기
Go To 특정 URL로 이동
Input Text 입력창에 텍스트 입력
Click Button 버튼 클릭
Page Should Contain 페이지에 특정 텍스트가 있어야 함
Element Should Be Visible 요소가 보여야 함
Wait Until Element Is Visible 요소가 보일 때까지 대기
Capture Page Screenshot 현재 페이지 스크린샷 저장

 

Robot Framework vs. 다른 도구들 비교

항목 Robot Framework Selenium  Playwright Cypress
테스트 방식 키워드 기반
(Keyword-Driven)
코드 기반
(Java, Python 등)
코드 기반
(TS/JS, Python 등)
코드 기반
(JS/TS 전용)
주요 언어 .robot + Python Java, Python 등 TypeScript, Python JavaScript, TypeScript
비개발자 접근성 매우 높음 (사람이 읽기 쉬움) 낮음 낮음 낮음
웹 자동화 지원 O (SeleniumLibrary) O O (빠름) O (빠름)
모바일 테스트 O (Appium 연동) O (Appium 사용) 제한적 제한적
API 테스트 O (RequestsLibrary) 제한적 O O
테스트 리포트 자동 생성 (HTML) 직접 구성 필요 직접 구성 필요 기본 제공 (Dashboard)
확장성 높음 (사용자 키워드,
커스텀 라이브러리)
높음 높음 낮음
학습 곡선 낮음  중간~높음 중간 낮음
CI/CD 연동 용이 용이 용이 용이
 

 

Robot Framework 는 사람이 읽기 쉬운 문법으로 작성할 수 있어 비개발자들도 Test Case 를 쉽게 이해할 수 있고 

키워드 기반 구조로 구성할 수 있어 재사용성과 유지보수성이 매우 좋다 

Selenium, Appium, Requests 등 다양한 라이브러리와의 호환성을 통해 

Web, Mobile, API 테스트 등 다양한 환경에서 활용 가능하다 
자동으로 Test Report 와 로그가 HTML 형태로 생성되기 때문에 테스트 결과를 명확하게 확인할 수 있고,
Jenkins, GitHub Actions 같은 CI/CD 파이프라인과의 연동도 간단해서 지속적인 테스트 환경 구성에도 적합하다 

반응형