흔한 QA 엔지니어

Git 기반 테스트 자동화 파이프라인 구축 with Jenkins #1 본문

Engineering/Jenkins

Git 기반 테스트 자동화 파이프라인 구축 with Jenkins #1

블로그 닉네임 입력 제한 수는 몇 자인가요? 2025. 4. 30. 16:54

Git Push 기반 자동화 파이프라인은
테스트 자동화의 시작점을 단순화하고,
코드 변경 → 테스트 → 피드백까지의 흐름을 자동으로 연결함으로써
효율적인 테스트 및 품질 관리 기반을 만들어줍니다.

그래서 Katalon과 CI / CD 도구인 Jenkins를 연동하여
테스트 자동화 파이프라인을 구축해보겠습니다.


1.  CI / CD란
CI(Continuous Integration) 지속적 통합
소스코드를 지속적으로 통합하고 테스트하는 프로세스
→ 버그를 초기에 발견, 통합 작업을 자동화해 개발 속도와 품질을 동시에 확보 

CD(Continuous Delivery or Deployment) 지속적 전달 or 배포
테스트를 통과한 결과물을 배포 가능한 상태로 유지

→  코드가 항상 배포 가능한 상태로 유지 

CI / CD 구축 시 장점
- 개발, 테스트, 배포 과정을 자동화하여 개발 효율성과 소프트웨어 품질 향상 가능 
- CI는 트리거에 따라 자동으로 빌드 및 테스트를 수행해 버그를 조기에 발견 가능 
- CD는 테스트가 완료된 코드를 신속하고 안정적으로 사용자에게 전달 가능 


이를 통해 반복 작업을 줄이고, 협업을 원활하게 하며, 빠른 피드백과 릴리스가 가능합니다!

 

2.  CI / CD 프로세스

Git Push (트리거 조건. 변경 가능)

[CI] Jenkins가 빌드 + 테스트 실행

[CD] 테스트 통과 → 스테이징 배포 or 운영 배포

 

3. Jenkins란
오픈소스(부분 유료) 기반의 자동화 서버로,
소프트웨어 개발에서 코드 빌드, 테스트, 배포 과정을 자동으로 수행할 수 있게 해주는 툴입니다.
기본적으로 CI 도구이지만, CD 도구까지 확장 사용이 가능합니다.

 

4. Jenkins 프로세스

[Git에 코드 Push]

[Jenkins가 트리거 감지하여 실행]

[코드 빌드 또는 스크립트 실행]

[자동 테스트 수행 (예: Katalon)]

[테스트 결과 리포트 생성 및 저장]

[성공/실패 여부 확인 및 Slack/이메일 등 알림] → 여기까지 CI 역할

(선택) [테스트 통과 시 자동 배포] → 여기부터 CD 역할

 

5. 자동화 파이프라인 아키텍처 그리기 
개발 PC와 Jenkins 서버를 서로 다른 PC에 분리하여 구성
Jenkins 서버의 Host OS는 Windows, 컨테이너 내부는 Ubuntu 기반
단, 방법에 따라 네트워크 설정 필요

[Katalon 개발 PC]
  └ 테스트 케이스 작성
  └ Git 저장소에 Push

[Git 저장소 (GitHub / GitLab)]
  └ 코드 저장
  └ Webhook → Jenkins 서버에 Push 이벤트 알림

[Jenkins 서버 (Docker 컨테이너)]
  └ Docker 기반으로 Jenkins 실행 (jenkins/jenkins:lts)
  └ Git 변경 감지 (Webhook or Polling)
  └ 파이프라인 Job 실행
  └ 테스트 실행 Job을 에이전트에 할당

[Katalon 실행 PC (JNLP 에이전트)]
  └ Jenkins에 JNLP 방식으로 연결된 Windows PC
  └ Jenkins의 지시에 따라 Katalon CLI 실행
  └ 테스트 실행 → HTML, JUnit 형식 리포트 생성

[Jenkins 서버 (Docker 컨테이너)]
  └ 테스트 결과 수집 (JUnit 플러그인 등 활용)
  └ 성공/실패 표시
  └ 테스트 리포트 보관 및 공유 (메일, Slack, HTML 등)

 

6. 연동 방식 선택 및 네트워크 확인

SSH 방식
Jenkins 서버가 Katalon PC에 접근이 필요하기 때문에
Katalon PC SSH 포트(22) 개방 필요
단, 인바운드이기 때문에 사내망이라면 보안 정책 확인 필요

JNLP 방식
Katalon PC가 Jenkins 서버로 접속하는 방식
포트 개방이나 방화벽 필요없이 동일한 네트워크 대역에만 존재하다면 가능
일반적으로 아웃바운드인 경우 사내 보안 정책 존재하지 않음

JNLP 방식으로 진행해보겠습니다.

Jenkins 서버 IP로 ping을 보내서 응답 잘 오는지 확인

ping ip

추후 Jenkins 구축 완료되면 Katalon PC에서 해당 포트로 접속이 되는지 확인만 하면 됩니다.

이제 본격적으로 Jenkins 서버를 구축해보겠습니다.