Rumah > pembangunan bahagian belakang > Tutorial Python > Muatkan Ujian menggunakan FastAPI dan Posmen: Panduan Komprehensif

Muatkan Ujian menggunakan FastAPI dan Posmen: Panduan Komprehensif

Mary-Kate Olsen
Lepaskan: 2025-01-03 05:38:39
asal
983 orang telah melayarinya

Bayangkan senario ini di mana permulaan anda mula mempunyai daya tarikan. Kiraan pengguna tiba-tiba meningkat! Dan kini terus meningkat daripada 10 pengguna kepada 100 pengguna dan telah menggunakan aplikasi anda untuk sekian lama. Mengklik beberapa butang, menggunakan beberapa ciri, membuat permintaan daripada pelayan bahagian belakang anda...

Apa yang anda tidak mahu dalam situasi seperti ini ialah ketidaksediaan. Anda ingin memastikan bahawa aplikasi anda Boleh Dipercayai dan Tersedia kepada pengguna. Di sinilah Pengujian dilaksanakan dan perkara yang akan kita bincangkan di sini ialah jenis ujian khusus yang sesuai untuk menguji senario jenis ini, Ujian beban.

Dalam panduan ini, kami akan menumpukan pada penggunaan FastAPI dan penjanaan spesifikasi OpenAPI automatiknya untuk menyelaraskan proses penjanaan koleksi Postman untuk ujian beban. Pada akhirnya, anda akan tahu cara menggunakan spesifikasi OpenAPI FastAPI dan Posman untuk menguji aplikasi anda pada skala.


? Mengapa Menggunakan FastAPI dan Posmen untuk Ujian Beban?

FastAPI disertakan dengan sokongan OpenAPI terbina dalam, menjadikannya mudah untuk mendokumenkan dan menguji API anda. Dengan menggabungkan FastAPI dengan Posmen, anda boleh:

  • Jana koleksi Posmen secara automatik daripada dokumentasi OpenAPI API FastAPI anda.
  • Permudahkan persediaan permintaan dengan mengimport koleksi terus ke dalam Posmen.
  • Manfaatkan ciri ujian dan skrip Posman yang berkuasa untuk penjanaan data dinamik.
  • Skalakan ujian secara pemrograman dengan Newman, alat CLI Postman, untuk penyepaduan CI/CD.

Sinergi antara FastAPI dan Postman ini membolehkan pembangun mensimulasikan senario trafik dunia sebenar dengan cepat dan mengenal pasti kesesakan dalam aplikasi mereka.


?️ Langkah 1: Sediakan FastAPI dan Swagger

1.1 Mulakan Aplikasi FastAPI Anda

Pastikan aplikasi FastAPI anda berjalan secara setempat atau pada pelayan. Contohnya:

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)
Salin selepas log masuk
Salin selepas log masuk

Apabila pelayan bermula, titik akhir OpenAPI JSON akan tersedia di http://127.0.0.1:8000/openapi.json.

1.2 Sahkan OpenAPI JSON

Buka penyemak imbas anda dan navigasi ke http://127.0.0.1:8000/openapi.json untuk memastikan OpenAPI JSON boleh diakses.


? Langkah 2: Mengeksport OpenAPI JSON kepada Posman

2.1 Salin titik akhir OpenAPI

Anda boleh sama ada menyimpan fail JSON OpenAPI secara setempat dengan menggunakan penyemak imbas anda atau dengan curl:

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Salin selepas log masuk
Salin selepas log masuk

Atau hanya dengan menyalin URL titik akhir OpenAPI, http://127.0.0.1:8000/openapi.json.

2.2 Import OpenAPI JSON ke dalam Posman

  1. Buka Posmen dan klik Import di penjuru kiri sebelah atas.
  2. Pilih fail openapi.json yang dimuat turun.
  3. Posmen akan menjana koleksi secara automatik dengan semua titik akhir ditakrifkan dalam spesifikasi OpenAPI.

Jika anda baru sahaja menyalin URL titik akhir, anda hanya boleh menampal URL pada bar input di bahagian atas modal yang muncul apabila anda mengklik Import

Load Testing using FastAPI and Postman: Comprehensive Guide

2.3 Susun dan Uji Koleksi Anda

Semak koleksi yang diimport untuk memastikan semua titik akhir dikonfigurasikan dengan betul. Anda juga boleh menambah pembolehubah atau skrip persekitaran mengikut keperluan untuk pengesahan atau pengurusan data.


? Langkah 3: Bersedia untuk Ujian Beban di Posmen

3.1 Tambahkan Data Dinamik pada Permintaan Anda

Untuk mensimulasikan senario dunia sebenar, ubah suai permintaan anda untuk memasukkan data dinamik. Contohnya, gunakan pembolehubah terbina dalam Posman atau skrip pra-permintaan:

Contoh Skrip Pra-permintaan:

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)
Salin selepas log masuk
Salin selepas log masuk

Contoh Muatan:

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Salin selepas log masuk
Salin selepas log masuk

Anda juga boleh hanya menggunakan skrip terbina dalam seperti $randomInt untuk menjana nilai rawak.
Contoh kes penggunaan menggunakan skrip terbina dalam:

pm.variables.set("random_id", Math.floor(Math.random() * 10000));
Salin selepas log masuk

Skrip terbina dalam ini akan mengembalikan nilai rawak antara 0-1000 dalam setiap permintaan yang dibuat.

3.2 Konfigurasikan Pembolehubah dalam Koleksi anda

Gunakan pembolehubah koleksi dalam Posman untuk mengurus URL asas API, token pengesahan atau parameter dinamik tanpa Koleksi anda. Ini memudahkan kemas kini dan ujian merentas Koleksi anda.

Load Testing using FastAPI and Postman: Comprehensive Guide


? Langkah 4: Menjalankan Ujian Prestasi dengan Pelari Koleksi Posmen

Posmen kini termasuk keupayaan ujian prestasi terbina dalam yang membolehkan anda mensimulasikan trafik pengguna dan menilai prestasi API anda.

4.1 Lancarkan Pelari Koleksi

  1. Klik pada butang Runner (ikon bikar) dalam Posmen.
  2. Pilih koleksi yang diimport daripada FastAPI OpenAPI JSON.4.2 Set Parameter Ujian anda

4.2 Konfigurasikan Tetapan Ujian Prestasi

  • Pengguna Maya: Tentukan bilangan pengguna maya untuk mensimulasikan beban serentak.
  • Tempoh Ujian: Tetapkan tempoh ujian harus dijalankan.
  • Muat Profil: Pilih antara profil beban tetap, ramp-up, spike atau puncak untuk mensimulasikan corak trafik yang berbeza.4.3 Laksanakan Ujian Beban

4.3 Melaksanakan Ujian Prestasi

Klik Run untuk memulakan ujian prestasi. Posmen akan memaparkan metrik prestasi masa nyata seperti purata masa tindak balas, kadar ralat dan daya pemprosesan.


? Langkah 5: Menganalisis Keputusan Ujian

Selepas ujian selesai, analisa keputusan untuk mengenal pasti kesesakan prestasi:

  • Masa Respons: Semak sama ada masa respons memenuhi kriteria prestasi permohonan anda.
  • Kadar Ralat: Kenal pasti sebarang ralat yang berlaku semasa ujian dan siasat puncanya.
  • Throughput: Menilai bilangan permintaan yang dikendalikan sesaat untuk memastikan ia sejajar dengan beban yang dijangkakan.

Posmen menyediakan metrik terperinci dan membolehkan anda membandingkan berbilang larian ujian untuk menjejaki perubahan prestasi dari semasa ke semasa.


? Amalan Terbaik untuk Ujian Beban dengan FastAPI dan Posmen

  1. Pastikan Dokumentasi OpenAPI dikemas kini: Pastikan dokumentasi FastAPI anda menggambarkan keadaan semasa API anda untuk ujian yang tepat.
  2. Gunakan Data Dinamik: Menggabungkan kebolehubahan dalam data ujian untuk mensimulasikan pelbagai senario dunia sebenar.
  3. Pantau Sumber Sistem: Gunakan alat pemantauan untuk memerhati penggunaan CPU, memori dan rangkaian semasa ujian.
  4. Automasikan Ujian: Sepadukan ujian prestasi ke dalam saluran paip CI/CD anda untuk penilaian berterusan.
  5. Lelaran Berdasarkan Penemuan: Kemas kini ujian dan aplikasi anda secara kerap berdasarkan hasil ujian prestasi.

? Kesimpulan

Dengan memanfaatkan spesifikasi OpenAPI FastAPI dan ciri ujian prestasi Postman, anda boleh mensimulasikan trafik pengguna dengan berkesan dan mengenal pasti isu prestasi yang berpotensi. Pendekatan ini membolehkan anda memastikan aplikasi FastAPI anda kekal teguh dan responsif di bawah keadaan beban yang berbeza-beza.

Selamat menguji!

Atas ialah kandungan terperinci Muatkan Ujian menggunakan FastAPI dan Posmen: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan