본문 바로가기
Web.IT.Mobile/QA 자동화

pytest 입문 로드맵

by sshongs 2025. 7. 20.

로드맵 표

단계 주제 예시/설명
1 파이썬 기초 변수, 함수, 조건문 등
2 pytest 설치/기본테스트 pip install, 첫 테스트 실행
3 다양한 테스트 케이스 작성 assert, test_ 네이밍
4 파라미터화 @pytest.mark.parametrize
5 setup/teardown(피처) @pytest.fixture
6 예외상황 테스트 pytest.raises
7 Selenium 등 자동화 연동 웹 테스트 실습
8 리포트, 병렬 실행 등 플러그인 pytest-html, xdist
9 실전 프로젝트/실무적용 시나리오 작성, Git 연동

 

1단계. 파이썬 기초 익히기

  • 변수, 자료형, if/for/while, 함수, 클래스 기본 익힘
  • 추천 검색어: 파이썬 기초, 파이썬 예제

2단계. pytest 설치 & 첫 테스트 실행

  1. 설치
    1. pip install pytest
  2. 간단한 테스트 코드 작성
  3.  
    def test_add(): assert 1 + 1 == 2
  4. 실행
    1.  
      pytest {코드작성한 테스트파일}.py 
  5. 출력 결과 확인 (PASS/FAIL 메시지 이해)

3단계. 다양한 테스트 케이스 작성법 익히기

  • assert 문: 조건이 맞으면 통과, 틀리면 실패
  • 여러 함수로 테스트 쪼개기
  • pytest 네이밍 규칙: 파일명/함수명에 test_ 붙이기

4단계. 파라미터화(반복 테스트) 활용

  • 여러 데이터로 반복 테스트
import pytest

@pytest.mark.parametrize("a,b,result", [(1,2,3), (2,3,5)])
def test_add(a, b, result):
    assert a + b == result

5단계. setup/teardown(준비/정리 코드) 익히기

  • 테스트 실행 전/후에 반복되는 코드 관리
import pytest

@pytest.fixture
def sample():
    # 사전 세팅
    yield "테스트데이터"
    # 테스트 끝난 뒤 정리작업

6단계. 예외/오류 테스트

  • 실패하거나 에러가 나는 상황 테스트
import pytest

def divide(a, b):
    return a / b

def test_divide_zero():
    with pytest.raises(ZeroDivisionError):
        divide(1, 0)

7단계. pytest + Selenium 등 자동화 도구 연동 실습

  • 웹 자동화 기본 예제 돌려보기
import pytest
from selenium import webdriver

@pytest.fixture
def driver():
    driver = webdriver.Chrome()
    yield driver
    driver.quit()

def test_google_title(driver):
    driver.get("https://www.google.com")
    assert "Google" in driver.title

8단계. 리포트, 병렬 실행 등 플러그인 활용

  • 리포트: pip install pytest-html
    → pytest --html=report.html
  • 병렬실행: pip install pytest-xdist
    → pytest -n 4

9단계. 실전 프로젝트/실무 코드 작성 연습

  • 실제 테스트 시나리오/업무 시나리오를 코드로 작성
  • 구조 분리(테스트 코드/비즈니스 코드)
  • 협업/버전관리(Git 등) 적용

 

 

  • 절대 C:\Users\{사용자 폴더 전체} 에서 pytest 실행하지 마라!
  • 항상 프로젝트 폴더, 테스트 코드만 있는 폴더에서 실행
    → 권장 폴더 구조:
C:\Users\{사용자}\Desktop\pytest_test
    ├── pytest_test.py
    └── (여기서 pytest 실행)

 

반응형

댓글