Uji API Claude Fable 5.2 dengan Apidog: Pengujian Regresi

Uji autentikasi API Claude Fable 5.2, assertion respons, kasus negatif, dan regression test yang dapat diulang dengan agen dan Apidog CLI.

Ahmed Waheed

Ahmed Waheed

12 November 2026

Uji API Claude Fable 5.2 dengan Apidog: Pengujian Regresi

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Untuk menguji integrasi API Claude Fable 5.2, validasi autentikasi, body request Messages, blok respons bertipe, dan skenario kegagalan yang dapat diprediksi. Setelah itu, simpan pemeriksaan tersebut sebagai test case Apidog yang dapat dijalankan ulang oleh coding agent Anda melalui CLI. Pisahkan assertion transport dari pemeriksaan kualitas tugas agar respons HTTP yang sukses tidak bisa menyembunyikan jawaban yang tidak layak pakai.

Pengumuman dari Anthropic mengidentifikasi claude-fable-5-2 sebagai model ID Claude Platform. Panduan ini membangun alur kerja regresi di sekitar model tersebut, alih-alih berhenti setelah satu respons yang sukses. Apidog memberikan tempat bersama bagi agent Anda untuk memelihara endpoint, test case, dan laporan eksekusi.

Apa saja yang perlu dicakup dalam pengujian API Claude Fable 5.2?

Gunakan tiga lapisan: pemeriksaan transport memastikan apakah request benar-benar mencapai layanan; pemeriksaan kontrak memvalidasi struktur respons; pemeriksaan perilaku memastikan apakah aplikasi Anda dapat memanfaatkan hasilnya. Jalankan dua lapisan pertama untuk setiap fixture. Tetapkan kriteria penerimaan perilaku untuk setiap tugas, alih-alih membandingkan seluruh jawaban yang dihasilkan byte demi byte.

Lapisan Contoh assertion Arti kegagalan
Transport Status yang diharapkan dan respons JSON Masalah kredensial, jaringan, atau layanan
Kontrak Pesan asisten dengan blok konten bertipe Ketidakcocokan parser atau kontrak API
Perilaku Hasil aritmetika yang benar pada teks yang diekstrak Output tidak memenuhi fixture ini
Three test layers separating transport, response contract, and task behavior

Mulailah dengan fixture yang kecil dan aman: "Berapa 2 + 2? Balas hanya dengan angkanya saja." Ini membuat aturan penerimaan terlihat jelas tanpa melibatkan file, tools, atau riwayat percakapan. Tambahkan fixture aplikasi yang representatif setelah kontrak dasarnya berfungsi.

Jangan anggap fixture ini sebagai tolok ukur penalaran. Tujuannya adalah menangkap regresi integrasi, seperti mengekstrak blok thinking sebagai teks yang ditampilkan ke pengguna, atau menerima respons yang terpotong.

Atur autentikasi dan pengaturan request sebelum menguji

Untuk Claude API secara langsung, gunakan endpoint Messages, kredensial API yang terikat pada workspace, versi API yang eksplisit, dan body request yang tetap. Jaga agar input-input tersebut tetap sama antar eksekusi. Ringkasan API mendokumentasikan autentikasi Bearer, pemilihan workspace, dan header versi. Pengaturan ini berbeda dari autentikasi IAM penyedia cloud.

Gunakan API key Claude Console yang disuplai melalui environment secret lokal Anda. Access token Apidog mengautentikasi CLI ke Apidog; token tersebut tidak mengautentikasi request ke Anthropic. Pisahkan kedua kredensial tersebut.

Request berikut mengikuti dokumentasi Messages terkini, yang diverifikasi per 10 November 2026. Simpan JSON ini sebagai request.json:

{
  "model": "claude-fable-5-2",
  "max_tokens": 1024,
  "stream": false,
  "thinking": { "type": "adaptive" },
  "messages": [
    {
      "role": "user",
      "content": "What is 2 + 2? Reply with the numeral only."
    }
  ]
}

Lalu kirim dari terminal Anda atau minta coding agent Anda mengeksekusinya:

curl https://api.anthropic.com/v1/messages \
  -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
  -H 'anthropic-version: 2026-10-21' \
  -H 'Content-Type: application/json' \
  --max-time 600 \
  --dump-header response.headers \
  --output response.json \
  --write-out '%{http_code}\n' \
  --data-binary @request.json

Jika key Anda tidak terikat pada workspace, sertakan header anthropic-workspace-id yang terdokumentasi untuk workspace target Anda. Jangan pernah menaruh kredensial secara literal ke dalam fixture yang disimpan atau laporan yang dihasilkan.

Referensi Create a Message mendefinisikan model, messages, dan max_tokens, beserta field pesan yang dikembalikan. Di sini, 1.024 adalah anggaran output yang dipilih, bukan minimum yang terdokumentasi atau jaminan bahwa setiap tugas muat di dalamnya. Naikkan secara sengaja saat sebuah fixture membutuhkan ruang lebih besar.

Ini adalah templat yang telah diverifikasi terhadap dokumentasi. Jalankan dengan akun API berotorisasi Anda sendiri sebelum merekam baseline yang lolos; tidak ada respons Fable langsung atau pengukuran latensi yang diklaim di sini.

Tambahkan assertion respons yang tahan terhadap variasi hasil yang dihasilkan

Lakukan assertion pada envelope, periksa tipe blok, ekstrak teksnya, lalu terapkan aturan penerimaan dari fixture. Respons Messages mengandung array content, jadi jangan berasumsi content[0].text memuat jawabannya. Simpan pesan asli secara utuh secara terpisah jika aplikasi Anda mengirimkannya kembali pada giliran percakapan berikutnya.

Untuk fixture aritmetika, minta agent Anda melampirkan skrip pasca-respons berikut ke test case Apidog:

pm.test("HTTP success", function () {
  pm.response.to.have.status(200);
});

const body = pm.response.json();

pm.test("Assistant message contract", function () {
  pm.expect(body.type).to.eql("message");
  pm.expect(body.role).to.eql("assistant");
  pm.expect(body.id).to.be.a("string");
  pm.expect(body.model).to.be.a("string");
  pm.expect(body.content).to.be.an("array");
});

const text = body.content
  .filter(block => block.type === "text")
  .map(block => block.text)
  .join("\n").trim();

pm.test("Arithmetic fixture is complete", function () {
  pm.expect(body.stop_reason).to.eql("end_turn");
  pm.expect(text).to.eql("4");
});

Kesetaraan persis masuk akal untuk angka yang sengaja dibatasi ini. Untuk ringkasan, gunakan kriteria seperti fakta yang wajib ada, klaim tanpa dukungan yang dilarang, dan batas panjang. Perubahan redaksi yang tidak berbahaya seharusnya tidak merusak pengujian ringkasan yang berguna.

Catat usage dan header request-id dari respons untuk keperluan diagnosis. Bandingkan identifier model yang dikembalikan dengan perilaku yang terdokumentasi untuk identifier yang Anda pilih; jangan melabeli ulang respons fallback secara diam-diam sebagai hasil Fable.

Stop reason max_tokens berarti jawaban telah mencapai batas outputnya. Buat fixture aritmetika ini gagal dan periksa anggaran token. Tugas lain dapat sah-sah saja mengembalikan stop reason yang berbeda, termasuk permintaan tool, jadi beri setiap kasus aturan penyelesaian masing-masing.

Uji kasus negatif API Claude Fable 5.2

Buat test case terpisah untuk setiap input yang tidak valid dan ubah satu field pada satu waktu. Periksa status HTTP dan tipe error terstruktur, alih-alih mencocokkan pesan error yang dapat dibaca manusia secara lengkap. Pertahankan baseline yang valid tetap tidak berubah agar fixture negatif tidak bisa mengontaminasi eksekusi positif berikutnya.

Panduan error resmi mendokumentasikan kasus-kasus berguna berikut:

Kasus Perubahan dari baseline Hasil yang diharapkan
Autentikasi tidak valid Ganti kredensial Bearer dengan nilai dummy 401, authentication_error
Thinking dinonaktifkan Set thinking.type menjadi disabled 400, invalid_request_error
Extended thinking lama Set thinking.type menjadi enabled 400, invalid_request_error
Assistant prefill Akhiri percakapan dengan assistant prefill 400, invalid_request_error

Fable 5.2 menggunakan thinking yang selalu aktif. Jangan menyalin tutorial Claude yang lebih lama yang menonaktifkannya atau mengonfigurasi anggaran extended-thinking. Kasus thinking yang dinonaktifkan sangat berguna saat memperbarui kode pembuatan request bersama.

Untuk setiap kasus error, lakukan assertion bahwa body.type === "error", body.error.type yang diharapkan, dan pesan error yang tidak kosong. Simpan request ID bila tersedia. Perlakukan kegagalan DNS dan timeout di sisi klien sebagai hasil yang terpisah karena keduanya mungkin tidak pernah menghasilkan error JSON dari Claude.

Uji penanganan rate limit dan kegagalan layanan oleh aplikasi Anda dengan fixture terkendali atau mock. Jangan membanjiri API langsung untuk memaksakan 429. Bedakan masalah kapasitas yang dapat dicoba ulang dari kegagalan autentikasi dan validasi, dan tetapkan anggaran percobaan ulang yang terbatas di sekitar logika retry aplikasi Anda.

Biarkan coding agent Anda membangun test case regresi Apidog

Berikan kepada agent Anda endpoint, fixture, assertion, dan proyek tujuan. Ia dapat menemukan skema CLI terkini, memvalidasi setiap payload, membuat test case, dan menjalankannya. Anda meninjau test case yang dihasilkan serta ringkasan kegagalannya. Dengan begitu, alur kerja yang dapat diulang tetap tersimpan di Apidog CLI.

Instal CLI dan lakukan autentikasi dengan token Apidog Anda:

npm install -g apidog-cli@latest
apidog login --with-token <YOUR_APIDOG_TOKEN>

Untuk pengaturan agent, ikuti panduan langsung untuk Claude Code atau Codex. Lalu berikan satu prompt kepada agent Anda:

In Apidog project <PROJECT_ID>, define POST /v1/messages for the
Claude API. Use model claude-fable-5-2 and version 2026-10-21.
Keep the Anthropic credential in a private runtime variable.
Create the arithmetic success case and four negative cases above.
Read CLI help and input schemas before generating payloads.
Discover valid endpoint and category IDs; validate every payload.
Attach the response assertions, then run each case against
<ENVIRONMENT_ID>. Report failures, request IDs, and token usage.
Do not print credentials or claim unexecuted cases passed.

Perintah berikut telah diverifikasi terhadap CLI 2.2.12 yang terinstal. Agent membutuhkan ID endpoint dan ID kategori yang nyata; test-case-create mendeskripsikan test case yang diturunkan dari endpoint, jadi membuat request JSON mandiri yang tidak berhubungan tidaklah cukup.

apidog test-case category --project <PROJECT_ID>
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <PROJECT_ID> --file case.json
apidog run --test-case <CASE_ID> --project <PROJECT_ID> \
  -e <ENVIRONMENT_ID> -r cli,json

Minta agent memeriksa help perintah endpoint dan skemanya saat endpoint tersebut belum ada. Gunakan ID yang dikembalikan, bukan angka ilustratif yang disalin dari proyek lain. Validasi case.json sebelum menulisnya, lalu baca kembali test case yang telah dibuat untuk memastikan header, body, dan assertion yang dimaksud tersimpan dengan benar.

Jalankan pengujian regresi Claude API di CI

Jalankan test case yang sama setelah adanya perubahan pada autentikasi, serialisasi pesan, parsing blok, atau penanganan retry. Ekspor laporan yang dapat dibaca mesin dan simpan versi fixture bersama perubahan aplikasi Anda. Bangun baseline yang lolos sebelum melakukan perbandingan, lalu selidiki kegagalan satu per satu alih-alih menjalankan ulang hingga build kebetulan lolos.

Regression flow from fixed fixtures through the agent, Apidog CLI, Claude API, assertions, and reports

Untuk test case yang sudah dibuat di Apidog, invokasi yang berorientasi CI adalah:

apidog run --test-case <CASE_ID> --project <PROJECT_ID> \
  -e <ENVIRONMENT_ID> -r cli,json,junit \
  --out-dir ./apidog-reports

Ulangi untuk ID test case lainnya atau biarkan agent Anda mengelompokkan test case ke dalam test suite menggunakan skema suite terkini. Panduan CI/CD Apidog membahas integrasi pipeline.

Catat model, versi API, body request, anggaran output, revisi fixture, dan versi CLI di dalam catatan eksekusi. Simpan kredensial melalui mekanisme secret CI Anda. Tinjau laporan untuk data request yang sensitif sebelum membagikannya.

Gunakan rangkaian smoke langsung yang kecil untuk perubahan rutin dan rangkaian perilaku yang lebih luas sebelum rilis. Tetapkan anggaran biaya dan durasi Anda sendiri. Kelulusan kontrak API menetapkan kompatibilitas integrasi; pengujian penerimaan spesifik aplikasi Anda menetapkan apakah output tersebut berguna.

FAQ

Model ID mana yang sebaiknya saya uji?

Gunakan claude-fable-5-2 untuk alur kerja Claude Platform langsung ini. Verifikasi ketersediaannya di akun Anda sebelum menyimpan baseline.

Apakah HTTP 200 sudah cukup untuk dianggap lolos?

Tidak. Periksa envelope pesan, konten bertipe, alasan penyelesaian, dan kriteria penerimaan fixture. Streaming membutuhkan pemeriksaan tambahan pada level event karena kegagalan dapat terjadi setelah header respons diterima.

Bisakah saya menonaktifkan thinking Fable 5.2?

Tidak. Anthropic mendokumentasikan thinking yang selalu aktif untuk model ini. Pertahankan thinking yang dinonaktifkan sebagai kasus negatif yang diharapkan menghasilkan error validasi.

Apakah setiap jawaban harus cocok secara persis?

Gunakan pencocokan persis untuk fixture yang dibatasi seperti contoh angka di atas. Untuk tugas terbuka, tetapkan kriteria faktual dan struktural yang mengizinkan variasi redaksi yang valid.

Bisakah agent saya menjalankan ulang pengujian setelah perbaikan?

Bisa. Berikan ID test case dan environment yang tersimpan, lalu minta ia menjalankan perintah CLI yang sama dan meringkas laporannya. Mulailah dengan alur kerja CLI Claude Code jika Anda membutuhkan pengaturan agent.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.