개념
코드로만 자동화해야 하는 건 아니다
모듈 20(레슨 1)의 Selenium도, 모듈 13의 Playwright도 출발점이 같다. 빈 파일을 열고 코드를 직접 쓰는 것이다. 그런데 현실의 QA 조직에는 "자동화는 해야 하는데 코드를 쓸 줄 아는 사람이 없다"는 상태가 흔하다.
Katalon 은 그 간극을 겨냥한 로우코드(low-code) 테스트 자동화 플랫폼이다. 내부적으로는 Selenium과 Appium을 감싸고 있지만, 사용자에게는 코드를 요구하지 않는 화면을 먼저 내민다.
핵심은 레코드&플레이 + 스크립트 모드의 하이브리드
Katalon을 다른 도구와 구분 짓는 특징은 두 가지 모드를 같은 테스트에 대해 동시에 제공한다는 점이다.
| 레코드&플레이 모드 | 스크립트 모드 | |
|---|---|---|
| 하는 일 | 브라우저 조작을 녹화해 단계를 자동 생성 | 생성된 단계를 Groovy 코드로 열어 수정 |
| 필요한 역량 | 없음 — 마우스로 클릭하면 된다 | 기본적인 프로그래밍 이해 |
| 잘 맞는 것 | 단순한 화면 흐름, 빠른 초안 만들기 | 조건 분기, 반복, 데이터 가공, 예외 처리 |
로그인 화면을 녹화하면 "이메일 입력 → 비밀번호 입력 → 버튼 클릭"이라는 단계 목록이 만들어지고, 같은 테스트를 스크립트 탭으로 전환하면 이런 Groovy 코드가 보인다.
WebUI.openBrowser('https://example.com/login')
WebUI.setText(findTestObject('Page_Login/input_email'), 'user@example.com')
WebUI.setText(findTestObject('Page_Login/input_password'), 'password123')
WebUI.click(findTestObject('Page_Login/button_submit'))
WebUI.verifyElementPresent(findTestObject('Page_Dashboard/text_welcome'), 10)findTestObject(...)가 가리키는 것은 Object Repository 에 저장된
로케이터다. 화면 요소를 한 곳에서 이름으로 관리하는 이 구조는, 모듈
13(레슨 4)의 페이지 오브젝트 모델을 도구가 대신 강제해주는 것에 가깝다.
버튼의 id가 바뀌면 저장소의 항목 하나만 고치면 그 요소를 쓰는 모든
테스트가 함께 고쳐진다.
이 하이브리드가 주는 실질적 이점은 성장 경로가 끊기지 않는다는 것 이다. 녹화로 시작한 사람이 어느 날 "이 테스트는 데이터 10건을 돌려야 하는데"라는 벽을 만났을 때, 도구를 갈아엎지 않고 스크립트 탭을 열면 된다.
웹·API·모바일을 한 프로젝트에서
또 하나의 축은 범위다. 보통은 웹은 Playwright, API는 Postman, 모바일은 Appium처럼 도구를 따로 배우고 결과를 따로 모아야 한다. Katalon은 세 가지 테스트 타입을 하나의 프로젝트, 하나의 실행 리포트로 묶는다.
API 테스트 쪽은 모듈 12에서 배운 개념이 그대로 옮겨온다 — 요청 메서드와 헤더, 바디를 지정하고 상태 코드와 응답 본문을 검증한다. 달라지는 건 웹 테스트와 API 테스트를 한 시나리오 안에서 섞을 수 있다 는 점이다. 예를 들어 UI로 주문을 넣고, 곧바로 API를 호출해 주문 데이터가 서버에 제대로 저장됐는지 확인하는 흐름을 한 테스트로 쓸 수 있다.
자동화 피라미드는 그대로다
여기서 반드시 짚어야 할 것이 있다. 모듈 11(레슨 1)에서 배운 자동화 피라미드 — 단위 테스트가 가장 많고 E2E가 가장 적어야 한다는 원칙 — 는 도구가 쉬워졌다고 해서 달라지지 않는다.
오히려 로우코드 도구는 아이스크림 콘 안티패턴을 만들기 더 쉽다. 녹화가 쉬우니 E2E 테스트가 빠르게 불어나고, 몇 달 뒤에는 30분씩 걸리면서 간헐적으로 깨지는 스위트가 남는다. 테스트를 만드는 비용이 싸진 것이지, 유지하는 비용이 싸진 것은 아니다. 녹화한 E2E 테스트도 여전히 느리고, 화면이 바뀌면 여전히 깨진다.
어떤 팀에 맞는가
| 상황 | Katalon 같은 로우코드 | Playwright 같은 코드 기반 |
|---|---|---|
| QA에 개발 배경이 없다 | 유리 — 당장 시작할 수 있다 | 학습에 몇 달이 든다 |
| 자동화를 빨리 도입해야 한다 | 유리 — 첫 성과가 빠르다 | 초기 세팅이 길다 |
| 세밀한 커스터마이징이 많다 | 도구의 틀 밖으로 나가기 어렵다 | 유리 — 제약이 없다 |
| 대규모 CI 통합·병렬 실행 | 가능하나 라이선스·설정 제약 | 유리 — 생태계가 성숙 |
| 코드 리뷰·버전 관리 | 프로젝트 파일이 무거워 diff가 불친절 | 유리 — 일반 코드와 동일 |
균형 있게 보면 이렇다. 로우코드는 시작 비용 을 극적으로 낮추고, 코드 기반은 규모가 커졌을 때의 통제력 에서 앞선다. 팀이 지금 어느 문제를 겪고 있는지가 선택을 결정한다.
실무에서 왜 필요한가
채용 공고의 "테스트 자동화 도구 경험"이 항상 코드 기반 도구를 뜻하지는 않는다. 특히 SI·금융·제조 같은 도메인에서는 Katalon처럼 GUI를 갖춘 상용 도구를 쓰는 조직이 많고, 그런 팀에 들어가면 첫날부터 이 화면을 쓰게 된다.
더 중요한 건 판단력이다. "우리도 자동화 하자"는 말이 나왔을 때, 팀의 코딩 역량과 도입 시급성을 근거로 도구를 제안할 수 있어야 한다. 개발 배경이 없는 QA 두 명뿐인 팀에 Playwright를 권했다가 6개월간 아무것도 못 만드는 상황은 실제로 자주 벌어진다. 반대로 이미 개발자가 테스트를 쓰고 있는 팀에 로우코드 도구를 얹으면 버전 관리와 코드 리뷰만 복잡해진다.