لاختبار تكاملات واجهة Claude Fable 5.2 API، تحقق من المصادقة، وجسم طلب Messages، وكتل الاستجابة المُنمَّطة، وحالات الفشل المتوقعة. ثم احفظ تلك الفحوصات كحالات اختبار Apidog قابلة للتكرار يشغّلها وكيلك البرمجي عبر واجهة سطر الأوامر. حافظ على فصل تأكيدات طبقة النقل عن فحوصات جودة المهمة، حتى لا يخفي استجابة HTTP الناجحة إجابةً غير قابلة للاستخدام.
يحدد إعلان Anthropic المُعرِّف claude-fable-5-2 كمُعرِّف نموذج في منصة Claude. يبني هذا الدليل سير عمل للانحدار (regression) حول ذلك النموذج، بدلاً من التوقف بعد استجابة ناجحة واحدة. توفر Apidog لوكيلك مكانًا مشتركًا للحفاظ على نقطة النهاية، وحالات الاختبار، وتقارير التشغيل.
ماذا يجب أن تغطي اختبارات Claude Fable 5.2 API؟
استخدم ثلاث طبقات: فحوصات النقل تتحقق مما إذا كان الطلب قد وصل إلى الخدمة؛ وفحوصات العقد تتحقق من صحة بنية الاستجابة؛ والفحوصات السلوكية تتحقق مما إذا كان تطبيقك قادرًا على استخدام النتيجة. شغّل الطبقتين الأوليين لكل حالة ثابتة (fixture). حدِّد معايير قبول سلوكية لكل مهمة بدلاً من مقارنة الإجابات المولَّدة بالكامل بايتًا ببايت.

| الطبقة | مثال على التأكيد | معنى الفشل |
|---|---|---|
| النقل | الحالة المتوقعة واستجابة JSON | مشكلة في بيانات الاعتماد أو الشبكة أو الخدمة |
| العقد | رسالة مساعد مع كتل محتوى مُنمَّطة | عدم تطابق في المحلل أو في عقد الـ API |
| السلوك | نتيجة حسابية صحيحة في النص المستخرج | الناتج لا يحقق متطلبات هذه الحالة |

ابدأ بحالة ثابتة صغيرة وغير ضارة: «ما ناتج 2 + 2؟ أجب بالرقم فقط». تجعل هذه الحالة قاعدة القبول واضحة دون إدخال ملفات أو أدوات أو سجل محادثة. أضف حالات تطبيقية ممثِّلة بعد أن يعمل العقد الأساسي.
لا تتعامل مع هذه الحالة كمعيار لقياس القدرة على الاستدلال. غايتها هي رصد تراجعات التكامل، مثل استخراج كتلة التفكير كنص موجَّه للمستخدم، أو قبول استجابة مقتطعة.
ثبِّت المصادقة وإعدادات الطلب قبل الاختبار
بالنسبة لواجهة Claude API المباشرة، استخدم نقطة نهاية Messages، وبيانات اعتماد API محدودة النطاق بمساحة العمل، وإصدار API صريحًا، وجسم طلب ثابتًا. حافظ على ثبات هذه المُدخلات بين التشغيلات. توثّق نظرة عامة على الـ API مصادقة Bearer، واختيار مساحة العمل، وترويسات الإصدار. تختلف هذه الإعدادات عن مصادقة IAM الخاصة بمزوّدي الخدمات السحابية.
استخدم مفتاح Claude Console API مورَّدًا عبر بيئة الأسرار المحلية لديك. يصادق رمز الوصول إلى Apidog الـ CLI لدى Apidog، لكنه لا يصادق الطلبات المرسلة إلى Anthropic. أبقِ بيانات الاعتمادين منفصلين.
يتبع الطلب التالي توثيق Messages الحالي، المُدقَّق بتاريخ 10 نوفمبر 2026. احفظ الـ JSON باسم 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."
}
]
}
ثم أرسله من الطرفية لديك أو اطلب من وكيلك البرمجي تنفيذه:
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
إذا لم يكن مفتاحك محدود النطاق بمساحة عمل، أضِف الترويسة الموثَّقة anthropic-workspace-id الخاصة بمساحة العمل المستهدفة. لا تضع أبدًا بيانات اعتماد حرفية داخل الحالة الثابتة المحفوظة أو تقرير مولَّد.
يحدّد مرجع إنشاء رسالة (Create a Message) الحقول model وmessages وmax_tokens، بالإضافة إلى حقول الرسالة المُعادة. القيمة 1,024 هنا ميزانية مخرجات مختارة، وليست حدًا أدنى موثَّقًا ولا وعدًا بأن كل مهمة ستتسع ضمنها. ارفعها عمدًا عندما تحتاج حالةٌ ما مساحةً أكبر.
هذا نموذج مُدقَّق مقابل التوثيق. شغّله بحساب API الخاص بك المصرَّح به قبل تسجيل خط أساس ناجح؛ ولا نُدّعي هنا أي استجابة Fable حية أو أي قياس لزمن الاستجابة.
أضِف تأكيدات استجابة تصمد أمام تنوُّع المخرجات المولَّدة
أكِّد صحة الغلاف، وافحص أنواع الكتل، واستخرج النص، ثم طبِّق قاعدة قبول الحالة. تحتوي استجابة Messages على مصفوفة content، فلا تفترض أن content[0].text يحتوي على الإجابة. احتفظ بالرسالة الأصلية الكاملة على حدة إذا كان تطبيقك يعيدها في أدوار المحادثة اللاحقة.
بالنسبة لحالة الحساب، اطلب من وكيلك إرفاق هذا السكربت الذي يُنفَّذ بعد الاستجابة بحالة اختبار 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");
});
المساواة التامة منطقية هنا لأن الرقم مقيَّد عمدًا. أما في الملخص، فاستخدم معايير مثل الحقائق المطلوبة، والادعاءات غير المدعومة المحظورة، وحدود الطول. لا ينبغي أن يؤدي تغيير حميد في الصياغة إلى فشل اختبار ملخص مفيد.
سجِّل حقل usage وترويسة request-id في الاستجابة لأغراض التشخيص. قارن مُعرِّفات النموذج المُعادة بالسلوك الموثَّق للمُعرِّف الذي اخترته؛ ولا تُعِد تسمية استجابات التحويل الاحتياطي (fallback) بصمت كأنها نتائج Fable.
يعني سبب التوقف max_tokens أن الإجابة وصلت إلى حد المخرجات الخاص بها. اجعل حالة الحساب هذه تفشل، وافحص ميزانية الرموز (tokens). يمكن للمهام الأخرى أن تُعيد أسباب توقف مختلفة بطريقة مشروعة، بما فيها طلبات الأدوات، لذا امنح كل حالة قاعدة إكمال خاصة بها.
اختبر الحالات السلبية لواجهة Claude Fable 5.2 API
أنشئ حالة منفصلة لكل مُدخل غير صالح، وغيِّر حقلاً واحدًا في كل مرة. تحقق من حالة HTTP ومن نوع الخطأ المهيكل بدلاً من مطابقة رسالة الخطأ النصية الكاملة المقروءة للبشر. أبقِ خط الأساس الصالح دون تغيير حتى لا تلوِّث الحالة السلبية التشغيلَ الإيجابي التالي.
يوثّق دليل الأخطاء الرسمي الحالات المفيدة التالية:
| الحالة | التغيير عن خط الأساس | النتيجة المتوقعة |
|---|---|---|
| مصادقة غير صالحة | استبدال بيانات اعتماد Bearer بقيمة وهمية | 401، authentication_error |
| التفكير معطَّل | تعيين thinking.type إلى disabled |
400، invalid_request_error |
| التفكير الممتد القديم | تعيين thinking.type إلى enabled |
400، invalid_request_error |
| تهيئة مسبقة للمساعد | إنهاء المحادثة بتهيئة مسبقة من المساعد | 400، invalid_request_error |
يعمل النموذج Fable 5.2 بتفكير مُفعَّل دائمًا. لا تنسخ درسًا قديمًا لـ Claude يُعطِّله أو يضبط ميزانيات التفكير الممتد. حالة التفكير المعطَّل مفيدة على وجه الخصوص عند ترقية شِفرة بناء الطلبات المشتركة.
في كل حالة خطأ، أكِّد أن body.type === "error"، وأن body.error.type مطابق للمتوقع، وأن رسالة الخطأ غير فارغة. احتفظ بمعرِّف الطلب إن كان متاحًا. تعامل مع حالات فشل DNS وانتهاء مهلة العميل كنتائج منفصلة، لأنها قد لا تُنتج أبدًا خطأ JSON من Claude.
اختبر تعامل تطبيقك مع حدود المعدل وأعطال الخدمة باستخدام حالات مُتحكَّم بها أو محاكاة (mock). لا تغرق الـ API الحيَّ بهدف إحداث خطأ 429. ميِّز بين مشكلات السعة القابلة لإعادة المحاولة، وحالات فشل المصادقة والتحقق من الصحة، وضع ميزانية إعادة محاولة محدودة حول منطق إعادة المحاولة في تطبيقك.
دَع وكيلك البرمجي يبني حالات الانحدار في Apidog
زوِّد وكيلك بنقطة النهاية، والحالات الثابتة، والتأكيدات، والمشروع المستهدف. يمكنه استكشاف مخطط الـ CLI الحالي، والتحقق من صحة كل حمولة، وإنشاء حالات الاختبار، وتشغيلها. بينما تراجع أنت الحالات المولَّدة وملخص حالات الفشل. هذا يُبقي سير العمل القابل للتكرار في Apidog CLI.
ثبِّت الـ CLI وصادِق باستخدام رمز Apidog الخاص بك:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_APIDOG_TOKEN>
لإعداد الوكيل، اتبع الأدلة الحية الخاصة بـ Claude Code أو Codex. ثم امنح وكيلك أمرًا واحدًا:
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.
جرى التحقق من الأوامر التالية مقابل الـ CLI المثبَّت إصدار 2.2.12. يحتاج الوكيل إلى مُعرِّف نقطة نهاية حقيقي ومُعرِّف فئة حقيقي؛ إذ يصف الأمر test-case-create الحالات المشتقة من نقاط النهاية، لذا لا يكفي إنشاء طلب JSON مستقل غير مرتبط.
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
اطلب من الوكيل فحص تعليمات أوامر نقطة النهاية ومخططاتها عندما لا تكون نقطة النهاية موجودة. استخدم المُعرِّفات المُعادة، وليس أرقامًا توضيحية منسوخة من مشروع آخر. تحقق من صحة case.json قبل كتابته، ثم اقرأ الحالة المُنشأة مرة أخرى للتأكد من حفظ الترويسات والجسم والتأكيدات المقصودة.
شغِّل اختبارات انحدار Claude API في CI
شغّل الحالات نفسها بعد أي تغيير في المصادقة، أو تسلسل الرسائل، أو تحليل الكتل، أو معالجة إعادة المحاولة. صدِّر تقارير قابلة للقراءة آليًا واحفظ نسخة الحالة الثابتة إلى جانب تغيير تطبيقك. ضع خط أساس ناجح قبل إجراء المقارنات، ثم تحقَّق من حالات الفشل فرديًا بدلاً من إعادة التشغيل حتى يجتاز البناء بالصدفة.

بالنسبة لحالة مُنشأة مسبقًا في Apidog، تكون الاستدعاء الموجَّه لـ CI كما يلي:
apidog run --test-case <CASE_ID> --project <PROJECT_ID> \
-e <ENVIRONMENT_ID> -r cli,json,junit \
--out-dir ./apidog-reports
كرِّر الأمر لبقية مُعرِّفات الحالات، أو دَع وكيلك ينظّم الحالات في مجموعة اختبارات (test suite) باستخدام مخطط المجموعات الحالي. يغطي دليل CI/CD لـ Apidog التكامل مع خطوط الأنابيب.
احفظ في سجل التشغيل: النموذج، وإصدار الـ API، وجسم الطلب، وميزانية المخرجات، ونسخة الحالة الثابتة، وإصدار الـ CLI. خزِّن بيانات الاعتماد عبر آلية الأسرار في نظام CI لديك. راجع التقارير بحثًا عن بيانات طلب حساسة قبل مشاركتها.
استخدم مجموعة فحص دخان (smoke) حية صغيرة عند التغييرات الروتينية، ومجموعة سلوكية أوسع قبل الإصدارات. حدِّد ميزانياتك الخاصة للإنفاق والمدة. اجتياز عقد الـ API يثبت توافق التكامل؛ أما اختبارات القبول الخاصة بتطبيقك فهي التي تثبت ما إذا كان الناتج مفيدًا.
الأسئلة الشائعة
أي مُعرِّف نموذج يجب أن أختبر؟
استخدم claude-fable-5-2 لسير العمل المباشر هذا على منصة Claude. تحقق من توفره في حسابك قبل حفظ خط أساس.
هل يكفي الحصول على HTTP 200 للنجاح؟
لا. تحقق من غلاف الرسالة، والمحتوى المُنمَّط، وسبب الإكمال، ومعايير قبول الحالة. يتطلب البث (streaming) فحوصات إضافية على مستوى الأحداث، لأن حالات الفشل قد تحدث بعد وصول ترويسات الاستجابة.
هل يمكنني تعطيل التفكير في Fable 5.2؟
لا. يوثّق Anthropic التفكير المُفعَّل دائمًا لهذا النموذج. أبقِ التفكير المعطَّل كحالة سلبية تتوقع خطأ تحقق من الصحة.
هل يجب أن تتطابق كل إجابة تمامًا؟
استخدم المطابقة التامة للحالات المقيَّدة مثل مثال الرقم. أما للمهام المفتوحة، فحدِّد معايير واقعية وبنيوية تسمح بتنوُّع صالح في الصياغة.
هل يمكن لوكيلي إعادة تشغيل الاختبارات بعد الإصلاح؟
نعم. زوِّده بمُعرِّفات الحالات المحفوظة والبيئة، ثم اطلب منه تشغيل أوامر الـ CLI نفسها وتلخيص التقارير. ابدأ بـ سير عمل Claude Code CLI إذا احتجت إلى إعداد الوكيل.
