Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sekilas
Tujuan: Merekam dan mengekspor aktivitas Proksi Dev ke file laporan
Waktu: 10 menit
Plugins:ExecutionSummaryPlugin, MarkdownReporter
Prasyarat:Menyiapkan Proksi Dev
Untuk merekam dan mengekspor aktivitas proksi, gunakan ExecutionSummaryPlugin dan plugin reporter dalam file konfigurasi Anda.
Contoh berikut menunjukkan cara mengonfigurasi Proksi Dev untuk merekam dan mengekspor aktivitas proksi menggunakan ExecutionSummaryPlugin dan plugin MarkdownReporter .
Berkas: devproxyrc.json
{
"plugins": [
{
"name": "ExecutionSummaryPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "MarkdownReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
]
}
Tip
Alih-alih membangun konfigurasi sendiri, Anda dapat mengunduh preset siap pakai api-inventory, yang merekam URL yang dipanggil aplikasi Anda dan ringkasan aktivitasnya:
devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"
Untuk informasi selengkapnya, lihat Menggunakan konfigurasi prasetel.
Catatan
Untuk mengekspor aktivitas, plugin reporter harus diaktifkan dalam file konfigurasi dan ditempatkan setelah ExecutionSummaryPlugin di daftar plugin. Disarankan untuk menempatkan plugin reporter di akhir daftar plugin.
Untuk merekam aktivitas, Dev Proxy harus ditempatkan dalam mode rekaman.
Ada dua cara untuk mulai merekam:
-
Rekam segera. Mulai proksi dengan opsi
--record, misalnyadevproxy --record. - Catat dadakan. Tekan R saat proksi sedang berjalan.
Saat perekaman diaktifkan, ◉ Recording... ditampilkan dalam output proksi.
Untuk menghasilkan laporan dari aktivitas yang direkam, hentikan perekaman.
Ada dua cara untuk berhenti merekam:
- Hentikan proksi. Tekan Ctrl + C.
- Hentikan adhoc. Tekan S.
Secara default, aktivitas yang dikelompokkan menurut URL. Untuk mengelompokkan --summary-group-by aktivitas menurut jenis pesan, gunakan opsi .
devproxy --record --summary-group-by messageType
Di mana laporan ditulis
Ketika Anda berhenti merekam, setiap reporter yang diaktifkan menulis satu file untuk setiap laporan yang dihasilkan oleh plugin pelaporan. Dev Proxy menulis file ke direktori kerja saat ini, yang merupakan folder tempat Anda memulai Dev Proxy. Saat Anda memulai Dev Proxy di latar belakang, misalnya dalam alur CI, pastikan Anda memulainya dari folder tempat Anda ingin laporan disimpan.
File laporan menggunakan pola penamaan berikut:
<ReportingPlugin>_<Reporter>.<ext>
Misalnya, konfigurasi dalam artikel ini menghasilkan file bernama ExecutionSummaryPlugin_MarkdownReporter.md.
Jika file dengan nama tersebut sudah ada, Dev Proxy tidak menimpanya. Sebaliknya, ia menambahkan tanda waktu dalam format yyyyMMddHHmmss ke nama file, misalnya ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. Dev Proxy mencatat nama setiap file laporan yang ditulisnya, misalnya:
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
Tabel berikut mencantumkan ekstensi yang digunakan setiap pelapor.
| Wartawan | Extension |
|---|---|
| JsonReporter |
.json (beberapa laporan menggunakan ekstensi yang berbeda, misalnya .jsonc untuk UrlDiscoveryPlugin) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
Catatan
Semua rekaman bersifat lokal. Tidak ada data yang dikirim ke Microsoft.
Rekaman dari skrip dan CI
Dalam skrip dan alur CI/CD, Anda tidak dapat menekan tombol untuk memulai dan menghentikan perekaman. Sebagai gantinya, jalankan Dev Proxy di latar belakang dan kontrol perekaman menggunakan DEV Proxy API. Semua permintaan API memerlukan bearer token. Untuk mengetahui token terlebih dahulu, atur variabel lingkungan DEV_PROXY_API_TOKEN ke nilai setidaknya 32 karakter sebelum Anda memulai Dev Proxy.
Urutan minimal adalah:
- Atur
DEV_PROXY_API_TOKENke nilai acak minimal 32 karakter. - Mulai Proksi Dev di latar belakang:
devproxy --detach --as-system-proxy false -c devproxyrc.json. - Tunggu hingga
GET /proxyberhasil. - Mulai perekaman:
POST /proxydengan{"recording": true}. - Jalankan beban kerja Anda dengan variabel lingkungan
HTTP_PROXYdanHTTPS_PROXYyang menunjuk ke Dev Proxy. - Hentikan perekaman:
POST /proxydengan{"recording": false}. Permintaan mengembalikan hasil setelah pelapor selesai, sehingga laporan siap ketika selesai. - Matikan Proksi Dev:
POST /proxy/stopProxy.
Dev Proxy menulis laporan ke folder tempat Anda menjalankannya.
#!/usr/bin/env bash
set -euo pipefail
# 1. use a known API token (at least 32 characters)
export DEV_PROXY_API_TOKEN=$(openssl rand -hex 32)
api=http://127.0.0.1:8897
auth="Authorization: Bearer $DEV_PROXY_API_TOKEN"
# 2. start Dev Proxy in the background
devproxy --detach --as-system-proxy false -c devproxyrc.json
# 3. wait for the API
until curl -sf -H "$auth" "$api/proxy" > /dev/null; do sleep 1; done
# 4. start recording
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": true}'
# 5. run the workload through Dev Proxy
HTTP_PROXY=http://127.0.0.1:8000 HTTPS_PROXY=http://127.0.0.1:8000 npm test
# 6. stop recording and wait for the reports
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": false}'
# 7. shut down Dev Proxy
curl -sf -X POST "$api/proxy/stopProxy" -H "$auth"
Contohnya menggunakan port proksi default 8000 dan port API 8897. Atur variabel lingkungan proksi hanya untuk beban kerja, sehingga panggilan API tidak melalui Dev Proxy. Untuk mencegat lalu lintas HTTPS, beban kerja harus mempercayai sertifikat akar Dev Proxy. Untuk informasi selengkapnya tentang menjalankan Dev Proxy dalam pipeline, termasuk mempercayai sertifikat, lihat Menggunakan Dev Proxy dalam skenario CI/CD.
Lihat juga
- ExecutionSummaryPlugin - Referensi lengkap
- MarkdownReporter - Format laporan
- Proxy API - Mengontrol Dev Proxy secara terprogram
- Menggunakan Proksi Dev dalam skenario CI/CD - Jalankan Proksi Dev di pipeline
- Glosarium - Terminologi Proxy Pengembang
- Menggunakan Dev Proxy dalam skenario CI/CD - Merekam panggilan API dalam pipeline
- Menggunakan konfigurasi prasetel - Konfigurasi siap pakai