Startseite>Programmierbezogen>Anderer Quellcode

Mimicker ist ein von Wiremock inspirierter Python-nativer HTTP-Spott-Server, der den Prozess der Stubbing und Verspottung von HTTP-Endpunkten zu Testzwecken vereinfacht. MIMICKER benötigt keine Bibliotheken von Drittanbietern und ist leicht und ist ideal für Integrationstests, lokale Entwicklung und CI-Umgebungen.

Merkmale

Installation

MIMICKER kann direkt von PYPI unter Verwendung von PIP oder Poesie installiert werden:

Verwenden von PIP:

pip install mimicker

Verwenden von Poesie:

poetry add mimicker

Verwendung

Um mit einem einfachen Endpunkt einen bestimmten Port nachzuahmen, können Sie den folgenden Code -Snippet verwenden:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/hello" ).
    body ({ "message" : "Hello, World!" }).
    status ( 200 )
)

Beispiele

Verwenden von Pfadparametern

MIMICKER kann die Pfadparameter dynamisch verarbeiten. So können Sie einen Endpunkt mit einer Variablen im Pfad verspotten:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/hello/{name}" )
    . body ({ "message" : "Hello, {name}!" })
    . status ( 200 )
)

# When the client sends a request to /hello/world, the response will be:
# {"message": "Hello, world!"} 

Mit Kopfzeilen

Sie können Antworten auch mit benutzerdefinierten Header verspotten:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/hello" )
    . body ( "Hello with headers" )
    . headers ([( "Content-Type" , "text/plain" ), ( "Custom-Header" , "Value" )])
    . status ( 200 )
)

# The response will include custom headers 

Mehrere Routen

Mit MIMICKER können Sie mehrere Routen für verschiedene HTTP -Methoden und -pfade definieren. Hier ist ein Beispiel mit GET and POST Routes:

 from mimicker . mimicker import mimicker , get , post

mimicker ( 8080 ). routes (
    get ( "/greet" )
    . body ({ "message" : "Hello, world!" })
    . status ( 200 ),

    post ( "/submit" )
    . body ({ "result" : "Submission received" })
    . status ( 201 )
)

# Now the server responds to:
# GET /greet -> {"message": "Hello, world!"}
# POST /submit -> {"result": "Submission received"} 

Umgang mit verschiedenen Statuscodes

Sie können auch verschiedene HTTP -Statuscodes für denselben Endpunkt verspotten:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/status" )
    . body ({ "message" : "Success" })
    . status ( 200 ),

    get ( "/error" )
    . body ({ "message" : "Not Found" })
    . status ( 404 )
)

# GET /status -> {"message": "Success"} with status 200
# GET /error -> {"message": "Not Found"} with status 404 

Verspottungsreaktionen mit JSON -Körper

Mimicker unterstützt JSON -Körper und macht es ideal für API -Tests:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/json" )
    . body ({ "message" : "Hello, JSON!" })
    . status ( 200 )
)

# The response will be: {"message": "Hello, JSON!"} 

Unterstützung anderer Körpertypen (Text, Dateien usw.)

Neben JSON -Körpern unterstützt Mimicker auch andere Arten von Inhalten für den Reaktionskörper. So können Sie Text- oder Dateiinhalte zurückgeben:

Textantwort:
 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/text" )
    . body ( "This is a plain text response" )
    . status ( 200 )
)

# The response will be plain text: "This is a plain text response" 

Dateiantwort:

Sie können auch Dateien aus einem Scheinendpunkt zurückgeben:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/file" )
    . body ( open ( "example.txt" , "rb" ). read ())  # Mock a file response
    . status ( 200 )
)

# The response will be the content of the "example.txt" file 

Verfügbare Funktionen:

Anforderungen

Mimicker unterstützt Python 3.7 und höher.

Lizenz

Mimicker wird unter der MIT -Lizenz veröffentlicht. Weitere Informationen finden Sie in der Lizenz.

Expandieren
Zusätzliche Informationen