Skip to main content

Automated testing utility for FastAPI applications

Project description

License: MIT

Fastapi-Testrunner

fastapi_testrunner is an automated testing utility for FastAPI applications.
It extracts the openapi.json schema from your running FastAPI app, automatically generates request data, and tests routes without requiring Postman or manual setup.

All test results are displayed in the terminal and stored in a DeB_FastAPI_Test_Logs folder with date & time logs — making it easy for developers to validate endpoints quickly.


✨ Features

  • 🔗 Fetches openapi.json from your FastAPI base_url.
  • ⚡ Automatically generates request payloads for testing.
  • 🧩 Supports:
    • Custom input for specific routes
    • Adding headers
    • Including or excluding routes
  • 📝 Saves test results to logs (DeB_FastAPI_Test_Logs).
  • 🚀 No need for Postman or curl — just run and test all routes in one go.

🔢 Supported Data Types

  • str
  • int
  • float
  • bool
  • dict
  • list
  • enum
  • TypedDict
  • date
  • email
  • list[...] → Lists of any of the above types
  • 👉 This means your routes with parameters like List[int], List[str], or List[dict] are also supported.

📦 Installation

pip install fastapi_testrunner

🧑‍💻Examples

✅ Test All Routes Automatically

from fastapi_testrunner import TestFastAPIRoutes

tester = TestFastAPIRoutes()
tester.start_test()

On Class TestFastAPIRoutes

TestFastAPIRoutes(
    custom_inputs: CustomInputFormat = {},
    base_url: str = 'http://127.0.0.1:8000/',
    headers: dict = None,
    routes_tocheck: list = [],
    routes_touncheck: list = []
)

On Class CustomInputsFormat

CustomInputFormat(TypedDict):
    method:str
    path:str
    isfor_params:bool
    isfor_json:bool
    data:dict
    headers:dict

Example with Custom Input

from fastapi_testrunner import TestFastAPIRoutes, CustomInputFormat

custom_input = CustomInputFormat(
        method="POST",
        path="/items",
        isfor_params=False,
        isfor_json=True,
        data={"name": "Laptop", "price": 999},
        headers={"Authorization": "Bearer TOKEN123"}
    )


tester = TestFastAPIRoutes(
    base_url="http://127.0.0.1:8000/",
    custom_input=custom_input,
    routes_touncheck=["/auth/login","/auth/otp"]
)

tester.start_test()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_testrunner-0.1.2.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_testrunner-0.1.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_testrunner-0.1.2.tar.gz.

File metadata

  • Download URL: fastapi_testrunner-0.1.2.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for fastapi_testrunner-0.1.2.tar.gz
Algorithm Hash digest
SHA256 89a499787e7fd5c6063756c145c35e3216234bd22de77afc77404c4df530cc14
MD5 4d9f895ba30cb012fbd6758ebea26f28
BLAKE2b-256 d394811f60ac87980de45c1b3ad6cb1f21257924a1237eb2ec5c3151e4956e9a

See more details on using hashes here.

File details

Details for the file fastapi_testrunner-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_testrunner-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 842af3492884ca59918a481f53ca0cc31179df1bc856f46cba04afa764a1b834
MD5 abc83186d72d0302ac61c9ae8b107dad
BLAKE2b-256 ca2d40179f2decd33c7b1f641957e27606a22b6dd4bedafaa7e7b40a712ed917

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page