>백엔드 개발 >파이썬 튜토리얼 >FastAPI 및 Postman을 사용한 부하 테스트: 종합 가이드

FastAPI 및 Postman을 사용한 부하 테스트: 종합 가이드

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 05:38:39997검색

스타트업이 주목을 받기 시작하는 시나리오를 상상해 보세요. 갑자기 이용자 수가 늘어나네요! 그리고 이제 사용자는 10명에서 100명으로 지속적으로 증가하고 있으며 꽤 오랫동안 귀하의 애플리케이션을 사용해 왔습니다. 몇 가지 버튼을 클릭하고, 몇 가지 기능을 사용하고, 백엔드 서버에서 요청을 보내는 중...

이런 상황에서 원하지 않는 것은 준비되지 않은 것입니다. 귀하의 애플리케이션이 사용자에게 신뢰할 수 있고 사용 가능한지 확인하고 싶습니다. 이것이 테스트가 이루어지는 곳이며 여기서 우리가 이야기할 것은 이러한 종류의 시나리오를 테스트하는 데 적합한 특정 유형의 테스트인 부하 테스트.

입니다.

이 가이드에서는 FastAPI와 자동화된 OpenAPI 사양 생성을 사용하여 부하 테스트를 위한 Postman 컬렉션 생성 프로세스를 간소화하는 데 중점을 둘 것입니다. 마지막에는 FastAPI의 OpenAPI 사양과 Postman을 활용하여 규모에 맞게 애플리케이션을 테스트하는 방법을 알게 될 것입니다.


? 부하 테스트에 FastAPI와 Postman을 사용하는 이유는 무엇입니까?

FastAPI에는 OpenAPI 지원이 내장되어 있어 API를 쉽게 문서화하고 테스트할 수 있습니다. FastAPI와 Postman을 결합하면 다음을 수행할 수 있습니다.

  • FastAPI API의 OpenAPI 문서에서 Postman 컬렉션을 자동으로 생성하세요.
  • 컬렉션을 Postman으로 직접 가져와 요청 설정을 단순화하세요.
  • 동적 데이터 생성을 위해 Postman의 강력한 테스트 및 스크립팅 기능을 활용하세요.
  • CI/CD 통합을 위해 Postman의 CLI 도구인 Newman을 사용하여 프로그래밍 방식으로 테스트를 확장합니다.

FastAPI와 Postman의 이러한 시너지 효과를 통해 개발자는 실제 트래픽 시나리오를 빠르게 시뮬레이션하고 애플리케이션의 병목 현상을 식별할 수 있습니다.


?️ 1단계: FastAPI 및 Swagger 설정

1.1 FastAPI 애플리케이션 시작

FastAPI 애플리케이션이 로컬 또는 서버에서 실행되고 있는지 확인하세요. 예:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

서버가 시작되면 http://127.0.0.1:8000/openapi.json에서 OpenAPI JSON 엔드포인트를 사용할 수 있습니다.

1.2 OpenAPI JSON 확인

브라우저를 열고 http://127.0.0.1:8000/openapi.json으로 이동하여 OpenAPI JSON에 액세스할 수 있는지 확인하세요.


? 2단계: OpenAPI JSON을 Postman으로 내보내기

2.1 OpenAPI 엔드포인트 복사

브라우저를 사용하거나 컬을 사용하여 OpenAPI JSON 파일을 로컬에 저장할 수 있습니다.

curl -o openapi.json http://127.0.0.1:8000/openapi.json

또는 OpenAPI 엔드포인트 URL인 http://127.0.0.1:8000/openapi.json을 복사하면 됩니다.

2.2 OpenAPI JSON을 Postman으로 가져오기

  1. Postman을 열고 왼쪽 상단에서 가져오기를 클릭하세요.
  2. 다운받은 openapi.json 파일을 선택하세요.
  3. Postman은 OpenAPI 사양에 정의된 모든 엔드포인트가 포함된 컬렉션을 자동으로 생성합니다.

엔드포인트 URL을 방금 복사한 경우 가져오기

를 클릭하면 나타나는 모달 상단의 입력 표시줄에 URL을 붙여넣으면 됩니다.

Load Testing using FastAPI and Postman: Comprehensive Guide

2.3 컬렉션 구성 및 테스트

가져온 컬렉션을 검토하여 모든 엔드포인트가 올바르게 구성되었는지 확인하세요. 인증이나 데이터 관리를 위해 필요에 따라 환경 변수나 스크립트를 추가할 수도 있습니다.


? 3단계: Postman에서 부하 테스트 준비

3.1 요청에 동적 데이터 추가

실제 시나리오를 시뮬레이션하려면 동적 데이터를 포함하도록 요청을 수정하세요. 예를 들어 Postman의 내장 변수나 사전 요청 스크립트를 사용하세요.

사전 요청 스크립트 예:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

페이로드 예시:

curl -o openapi.json http://127.0.0.1:8000/openapi.json

$randomInt와 같은 내장 스크립트를 사용하여 임의의 값을 생성할 수도 있습니다.
내장 스크립트 사용 사례:

pm.variables.set("random_id", Math.floor(Math.random() * 10000));

이 내장 스크립트는 요청이 있을 때마다 0~1000 사이의 임의 값을 반환합니다.

3.2 컬렉션의 변수 구성

Postman의 컬렉션 변수를 사용하여 컬렉션 없이 API 기본 URL, 인증 토큰 또는 동적 매개변수를 관리하세요. 이를 통해 컬렉션 전체의 업데이트 및 테스트가 단순화됩니다.

Load Testing using FastAPI and Postman: Comprehensive Guide


? 4단계: Postman의 Collection Runner로 성능 테스트 실행

이제 Postman에는 사용자 트래픽을 시뮬레이션하고 API 성능을 평가할 수 있는 성능 테스트 기능이 내장되어 있습니다.

4.1 컬렉션 러너 실행

  1. Postman에서 Runner 버튼(비커 아이콘)을 클릭하세요.
  2. FastAPI OpenAPI JSON.4.2 테스트 매개변수 설정에서 가져온 컬렉션을 선택하세요

4.2 성능 테스트 설정 구성

  • 가상 사용자: 동시 로드를 시뮬레이션할 가상 사용자 수를 지정합니다.
  • 테스트 기간: 테스트를 실행해야 하는 기간을 설정합니다.
  • 로드 프로필: 고정, 증가, 스파이크 또는 최대 로드 프로필 중에서 선택하여 다양한 트래픽 패턴을 시뮬레이션합니다.4.3 부하 테스트 실행

4.3 성능 테스트 실행

실행을 클릭하여 성능 테스트를 시작합니다. Postman은 평균 응답 시간, 오류율, 처리량 등의 실시간 성능 지표를 표시합니다.


? 5단계: 테스트 결과 분석

테스트가 완료된 후 결과를 분석하여 성능 병목 현상을 식별합니다.

  • 응답 시간: 응답 시간이 애플리케이션의 성능 기준을 충족하는지 확인하세요.
  • 오류율: 테스트 중에 발생한 오류를 식별하고 원인을 조사합니다.
  • 처리량: 초당 처리되는 요청 수를 평가하여 예상 로드와 일치하는지 확인합니다.

Postman은 자세한 측정항목을 제공하고 여러 테스트 실행을 비교하여 시간 경과에 따른 성능 변화를 추적할 수 있도록 해줍니다.


? FastAPI 및 Postman을 사용한 부하 테스트 모범 사례

  1. OpenAPI 문서를 최신 상태로 유지: 정확한 테스트를 위해 FastAPI 문서에 API의 현재 상태가 반영되어 있는지 확인하세요.
  2. 동적 데이터 사용: 테스트 데이터의 가변성을 통합하여 다양한 실제 시나리오를 시뮬레이션합니다.
  3. 시스템 리소스 모니터링: 모니터링 도구를 사용하여 테스트 중에 CPU, 메모리 및 네트워크 사용량을 관찰합니다.
  4. 테스트 자동화: 지속적인 평가를 위해 성능 테스트를 CI/CD 파이프라인에 통합합니다.
  5. 결과에 따른 반복: 성능 테스트 결과에 따라 테스트와 애플리케이션을 정기적으로 업데이트합니다.

? 결론

FastAPI의 OpenAPI 사양과 Postman의 성능 테스트 기능을 활용하면 사용자 트래픽을 효과적으로 시뮬레이션하고 잠재적인 성능 문제를 식별할 수 있습니다. 이 접근 방식을 사용하면 FastAPI 애플리케이션이 다양한 로드 조건에서도 견고하고 응답성을 유지할 수 있습니다.

즐거운 테스트를 해보세요!

위 내용은 FastAPI 및 Postman을 사용한 부하 테스트: 종합 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.