지난번 글에서는 pyautogui를 활용하여 스크린샷 이미지를 저장하는 방법을 소개했습니다. 이번에는 openpyxl을 활용하여 더욱 복잡한 작업, 즉 단위 테스트 템플릿 문서를 불러와 매핑 정보와 실행 로그 이미지를 자동으로 저장하는 방법에 대해 이야기해보려 합니다. 프로젝트의 규모가 커질수록 자동화의 중요성은 더욱 커지는데, 이 글을 통해 여러분의 업무 효율성을 높이는 데 도움이 되기를 바랍니다.
자동화, 그 첫걸음: 단위 테스트 정보 테이블화
본격적인 자동화에 앞서, 먼저 단위 테스트 목록 및 정보를 테이블 형태로 정리하는 사전 작업이 필요합니다. 엑셀 시트를 활용하여 각 단위 테스트의 이름, 관련 기능, 테스트 결과, 그리고 실행 로그 이미지 파일명 등의 정보를 깔끔하게 정리해둡니다. 이 테이블은 openpyxl을 통해 읽어 들여, 각 단위 테스트 템플릿 문서에 필요한 정보를 채우는 데 중요한 역할을 합니다.
예를 들어, 엑셀 시트의 각 행은 하나의 단위 테스트를 나타내고, 각 열은 단위 테스트의 속성(이름, 관련 기능, 결과, 이미지 파일명 등)을 나타낼 수 있습니다.
openpyxl, 템플릿 문서에 생기를 불어넣다
이제 openpyxl을 사용하여 엑셀 시트에 정리된 단위 테스트 정보를 템플릿 문서에 매핑하고, 실행 로그 이미지를 삽입하는 과정을 살펴보겠습니다.
-
템플릿 문서 로드: openpyxl을 사용하여 미리 준비된 단위 테스트 템플릿 문서(예:
.xlsx파일)를 로드합니다. -
매핑 정보 삽입: 엑셀 시트에서 읽어온 단위 테스트 정보를 템플릿 문서의 해당 위치에 삽입합니다. 예를 들어, 단위 테스트 이름은 문서 제목에, 관련 기능은 상세 설명 섹션에 삽입하는 식입니다. openpyxl을 사용하면 특정 셀의 값을 읽고, 다른 셀에 값을 쓰는 것이 간단하게 구현됩니다.
from openpyxl import load_workbook # 엑셀 파일 로드 workbook = load_workbook(filename="테스트_정보.xlsx") sheet = workbook.active # 템플릿 파일 로드 template_workbook = load_workbook(filename="단위_테스트_템플릿.xlsx") template_sheet = template_workbook.active # 단위 테스트 정보 읽기 (예: 2행부터 데이터 시작) for row in range(2, sheet.max_row + 1): test_name = sheet.cell(row=row, column=1).value # 테스트 이름 function_name = sheet.cell(row=row, column=2).value # 관련 기능 result = sheet.cell(row=row, column=3).value # 테스트 결과 image_filename = sheet.cell(row=row, column=4).value # 이미지 파일명 # 템플릿 문서에 정보 삽입 template_sheet['B1'].value = test_name # 제목 template_sheet['B3'].value = function_name # 관련 기능 template_sheet['B5'].value = result # 결과 # 이미지 삽입 (아래에서 설명) # 변경된 템플릿 저장 template_workbook.save(f"{test_name}_결과.xlsx") -
실행 로그 이미지 삽입: 스크린샷으로 저장된 실행 로그 이미지를 템플릿 문서에 삽입합니다. openpyxl은 이미지를 직접 삽입하는 기능을 제공하므로, 이미지 파일명을 기준으로 이미지를 찾아 문서 내 특정 위치에 삽입할 수 있습니다.
from openpyxl.drawing.image import Image # 이미지 삽입 img = Image(image_filename) template_sheet.add_image(img, 'D7') # D7 셀 위치에 이미지 삽입 -
저장: 모든 정보가 매핑되고 이미지가 삽입된 문서를 새로운 파일명으로 저장합니다. 파일명은 단위 테스트 이름과 결과 등을 조합하여 관리하기 용이하게 구성할 수 있습니다.
이 과정을 반복문을 사용하여 엑셀 시트에 있는 모든 단위 테스트에 대해 수행하면, 수많은 단위 테스트 문서를 자동으로 생성할 수 있습니다.
자동화, 그 이상의 가치
openpyxl을 활용한 단위 테스트 산출물 자동화는 단순히 시간을 절약하는 것 이상의 가치를 제공합니다. 일관된 형식의 문서 생성, 휴먼 에러 감소, 그리고 무엇보다 개발자가 더욱 중요한 업무에 집중할 수 있도록 해줍니다. 작은 자동화가 큰 변화를 만들어내는 경험을 통해, 여러분의 프로젝트를 더욱 효율적으로 관리할 수 있기를 바랍니다. 앞으로도 다양한 자동화 방법을 통해 프로젝트의 생산성을 높여나가는 여정을 함께해 나갈 수 있기를 기대합니다.