반응형
요즘 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 파이프라인과의 연동도 간단해서 지속적인 테스트 환경 구성에도 적합하다
반응형
'TIL > 용어' 카테고리의 다른 글
| [TIL] 알아두면 좋은 Linux 명령어 (1) | 2025.07.08 |
|---|---|
| [TIL] Cloud 기초 개념 #3 - L4/ L7 Load Balancer, Auto Scaling (2) | 2025.07.07 |
| [TIL] Cloud 기초 개념 #2 - Instance, Hypervisor, Security Group (0) | 2025.07.03 |
| [TIL] Cloud 기초 개념 #1 - VPC, NAT, Routing Table, Server (1) | 2025.07.03 |
| [TIL] Auto Scaling 개념과 SLA 간단 정리 (4) | 2025.07.02 |