Mimicker adalah server mocking HTTP asli Python yang terinspirasi oleh Wiremock, yang dirancang untuk menyederhanakan proses mematikan dan mengejek titik akhir HTTP untuk tujuan pengujian. Mimicker tidak memerlukan perpustakaan pihak ketiga dan ringan, membuatnya ideal untuk pengujian integrasi, pengembangan lokal, dan lingkungan CI.
Mimicker dapat dipasang langsung dari PYPI menggunakan pip atau puisi:
pip install mimickerpoetry add mimickerUntuk memulai Mimicker pada port tertentu dengan titik akhir sederhana, Anda dapat menggunakan cuplikan kode berikut:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello" ).
body ({ "message" : "Hello, World!" }).
status ( 200 )
)Mimicker dapat menangani parameter jalur secara dinamis. Begini cara Anda bisa mengejek titik akhir dengan variabel di jalur:
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!"} Anda juga dapat mengejek tanggapan dengan header khusus:
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 Mimicker memungkinkan Anda untuk mendefinisikan beberapa rute untuk metode dan jalur HTTP yang berbeda. Berikut adalah contoh dengan rute GET dan POST :
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"} Anda juga dapat mengejek kode status HTTP yang berbeda untuk titik akhir yang sama:
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 Mimicker mendukung tubuh JSON, membuatnya ideal untuk pengujian API:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/json" )
. body ({ "message" : "Hello, JSON!" })
. status ( 200 )
)
# The response will be: {"message": "Hello, JSON!"} Selain tubuh JSON, Mimicker mendukung jenis konten lain untuk badan respons. Begini cara Anda dapat mengembalikan konten teks atau file:
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" Anda juga dapat mengembalikan file dari titik akhir tiruan:
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 get(path) : Menentukan titik akhir GET .post(path) : Menentukan titik akhir POST .put(path) : Menentukan titik akhir PUT .delete(path) : Menentukan titik akhir DELETE ..body(content) : Menentukan body respons..status(code) : Menentukan status code respons..headers(headers) : mendefinisikan headers respons. Mimicker mendukung Python 3.7 ke atas.
Mimicker dirilis di bawah lisensi MIT. Lihat lisensi untuk informasi lebih lanjut.