DEV Community

Cover image for ما هو تستفولي؟
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

ما هو تستفولي؟

إذا كنت تبحث عن بديل لـ Postman لا يكتفي بإرسال الطلبات، بل يراقب واجهات برمجة التطبيقات بعد نشرها، فغالبًا ستجد Testfully ضمن الخيارات المطروحة. فهو يجمع بين عميل API، وتشغيل اختبارات قابلة للتكرار، ومراقبة مجدولة للإنتاج.

جرّب Apidog اليوم

في هذا الدليل ستتعرف على Testfully عمليًا: ما الذي يفعله، كيف تستخدم أجزاؤه الثلاثة، كيف تشغّل اختباراته داخل CI/CD، وما الذي يمكن استيراده من أدوات مثل Postman و Insomnia. وفي النهاية نوضح أين يتناسب Apidog إذا كنت تحتاج أيضًا إلى تصميم ومحاكاة وتوثيق واجهات برمجة التطبيقات.

ما هو Testfully؟

Testfully (testfully.io) هو منصة لاختبار واجهات برمجة التطبيقات ومراقبتها وتوثيقها. يجمع بين عميل واجهة رسومية لسطح المكتب والمتصفح، واختبارات آلية بدون كتابة كود، ومراقبة مجدولة لواجهات API أثناء التشغيل.

Testfully

الفكرة العملية بسيطة:

  1. تبني الطلبات وتختبرها أثناء التطوير.
  2. تحفظها كاختبارات قابلة للتكرار.
  3. تشغّلها لاحقًا بشكل مجدول لمراقبة الإنتاج.

يعمل Testfully على Windows و macOS و Linux، إضافة إلى إصدار المتصفح. كما يدعم وضعين:

  • وضع غير متصل بالإنترنت: تبقى البيانات على جهازك.
  • وضع السحابة: مناسب للتعاون بين أعضاء الفريق.

بحسب Testfully، كلا الوضعين يقدمان نفس مجموعة الميزات، لذلك لا تضحي بالوظائف الأساسية عند اختيار وضع عدم الاتصال.

إذا كنت تريد مقارنة أوسع بين العملاء، راجع قائمة عملاء واجهة برمجة تطبيقات REST.

الأركان الثلاثة لـ Testfully

لفهم Testfully بسرعة، قسّمه إلى ثلاث طبقات عملية:

  1. عميل API لإرسال الطلبات.
  2. اختبارات آلية قابلة للتكرار.
  3. مراقبة مجدولة مع تنبيهات.

1. عميل واجهة برمجة التطبيقات API Client

عميل Testfully هو المكان الذي تنشئ فيه الطلبات وتختبرها. يدعم REST و GraphQL و XML عبر HTTP، لذلك يمكن استخدامه مع أغلب خدمات API الشائعة.

عمليًا، يمكنك استخدامه لتنظيم العمل كالتالي:

Workspace
└── Collection
    ├── Auth
    │   ├── Login
    │   └── Refresh Token
    └── Users
        ├── Get User
        └── Update User
Enter fullscreen mode Exit fullscreen mode

يدعم العميل:

  • المجموعات والمجلدات.
  • البيئات مثل local و staging و production.
  • المتغيرات لتجنب تكرار عناوين URL والرموز.
  • تسلسل الطلبات لتمرير بيانات من استجابة إلى طلب لاحق.
  • المصادقة، بما في ذلك OAuth2.
  • JavaScript للمنطق المخصص عند الحاجة.

مثال عملي شائع:

  1. أرسل طلب تسجيل الدخول.
  2. استخرج access_token من الاستجابة.
  3. استخدم الرمز في طلب محمي لاحقًا.

هذا النمط مهم لاختبار التدفقات الحقيقية بدل اختبار كل نقطة نهاية بشكل منفصل.

إذا كان معيارك الأساسي هو العمل بدون اتصال، فراجع دليل أفضل عميل واجهة برمجة تطبيقات غير متصل بالإنترنت.

2. اختبارات آلية بدون تعليمات برمجية

بعد إنشاء الطلبات، يمكنك تحويلها إلى اختبارات قابلة للتكرار بإضافة التأكيدات assertions.

بدل الاكتفاء بإرسال طلب يدويًا، يمكنك تعريف توقعات مثل:

  • رمز الحالة يجب أن يكون 200.
  • الاستجابة يجب أن تحتوي على حقل معين.
  • زمن الاستجابة يجب أن يبقى ضمن حد معين.
  • قيمة في JSON يجب أن تطابق قيمة متوقعة.

مثال منطقي لاختبار endpoint:

GET /users/123

Assertions:
- status == 200
- response.body.id == 123
- response.body.email exists
Enter fullscreen mode Exit fullscreen mode

ميزة "بدون تعليمات برمجية" تقلل الاحتكاك لفِرق QA والمنتج، لأنها تسمح ببناء فحوصات أساسية دون صيانة إطار اختبار كامل. وفي الحالات التي تحتاج إلى منطق أكثر تعقيدًا، يمكنك استخدام JavaScript.

الفائدة العملية هنا أن الاختبار يصبح قابلًا لإعادة التشغيل:

  • قبل الدمج في الفرع الرئيسي.
  • بعد النشر.
  • داخل CI/CD.
  • كجزء من مراقبة الإنتاج.

كما يحتفظ Testfully بسجل لتشغيل الاختبارات، ما يساعدك على معرفة متى بدأ الفشل، وأي تغيير قد تسبب في التراجع.

3. المراقبة والتنبيهات المجدولة

هذه هي الطبقة التي تميز Testfully عن عميل API تقليدي. يمكنك تشغيل الاختبارات نفسها وفق جدول زمني ومراقبة واجهات API في الإنتاج.

بدل بناء فحوصات منفصلة في أداة مراقبة أخرى، يمكنك استخدام نفس الاختبارات المحفوظة كالتالي:

Test Suite
└── Run every 5 minutes
    ├── Login API
    ├── Get Profile API
    └── Checkout API
Enter fullscreen mode Exit fullscreen mode

عند الفشل، يمكن لـ Testfully إرسال تنبيهات عبر:

  • البريد الإلكتروني.
  • الرسائل النصية SMS.
  • Slack.
  • PagerDuty.

تكامل PagerDuty مهم للفرق التي لديها مناوبات on-call، لأن فشل API يمكن أن يصل مباشرة إلى الشخص المسؤول.

النمط العملي هنا:

  1. اكتب الاختبار أثناء التطوير.
  2. شغّله في CI/CD.
  3. استخدمه لاحقًا كمراقبة مجدولة للإنتاج.

بهذا لا تعيد كتابة الفحوصات في أكثر من أداة.

تشغيل Testfully داخل CI/CD

الاختبارات التي تعمل فقط محليًا لا تكفي. لذلك يوفر Testfully واجهة سطر أوامر يمكن تشغيلها داخل خطوط الأنابيب.

ثبّت CLI من npm:

npm install -g @testfully/cli
Enter fullscreen mode Exit fullscreen mode

ثم شغّل الطلبات أو المجلدات المحفوظة باستخدام:

testfully run [options] -- [files]
Enter fullscreen mode Exit fullscreen mode

يمكنك استخدام الأمر لاستهداف ملف أو مجموعة محددة، واختيار البيئة، وتحميل المتغيرات العامة.

يدعم المشغل نوعين من التقارير:

  • cli: إخراج نصي مناسب للقراءة في الطرفية.
  • junit: تقرير XML مناسب لأدوات CI.

مثال لتوليد تقرير JUnit:

testfully run rick-and-morty.json \
  --reporters junit \
  --reporter-junit-export ./junit-report.xml
Enter fullscreen mode Exit fullscreen mode

بعدها يستطيع نظام CI قراءة الملف junit-report.xml وتحديد نجاح أو فشل البناء.

مثال مبسط داخل GitHub Actions:

name: API tests

on:
  push:
    branches:
      - main

jobs:
  test-api:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Testfully CLI
        run: npm install -g @testfully/cli

      - name: Run API tests
        run: |
          testfully run rick-and-morty.json \
            --reporters junit \
            --reporter-junit-export ./junit-report.xml
Enter fullscreen mode Exit fullscreen mode

بما أن CLI يعمل كحزمة Node.js، يمكن استخدامه مع GitHub Actions و GitLab CI و Jenkins وأي بيئة تحتوي على Node. كما يمكنه العمل على المضيف نفسه دون الاعتماد على موارد سحابية، وهذا مفيد لاختبار APIs داخلية أو محلية.

لأنماط أوسع حول هذا الموضوع، راجع أفضل ممارسات CI/CD لاختبار واجهة برمجة التطبيقات.

دعم الاستيراد من Postman و Insomnia

الانتقال بين أدوات API يكون صعبًا إذا كانت مجموعاتك محبوسة داخل الأداة القديمة. يقلل Testfully هذا الاحتكاك عبر دعم الاستيراد.

يمكنك استيراد المجموعات من:

  • Postman.
  • Insomnia.

هذا يعني أنه يمكنك نقل الطلبات والبيئات والهياكل الموجودة بدل إعادة بنائها يدويًا من الصفر.

إذا كنت تفكر في الانتقال من Postman، راجع قائمة بدائل Postman لفهم الخيارات المتاحة في السياق نفسه.

تسعير Testfully

تحقق دائمًا من صفحة التسعير الرسمية قبل اتخاذ قرار نهائي، لأن الأسعار والخطط قد تتغير. وقت كتابة المقال، يظهر الهيكل كالتالي بناءً على صفحة تسعير Testfully:

الخطة السعر لمن تناسب
المطور / مجاني $0 مساحة عمل واحدة غير متصلة بالإنترنت وواحدة سحابية، حتى 5 مستخدمين، مشغل مجموعات غير محدود، جميع الميزات الأساسية، وواجهة سطر الأوامر CLI
الفريق $14 لكل مستخدم شهريًا، يتم تحصيله سنويًا مساحات عمل غير محدودة، تكامل Git لمساحات العمل غير المتصلة بالإنترنت، أدوار مخصصة، إدارة الأسرار
المؤسسة $29 لكل مستخدم شهريًا، يتم تحصيله سنويًا SSO، و SCIM، وسجلات التدقيق، و RBAC مخصص، وتقارير امتثال مثل SOC 2 Type 2 و ISO 27001:2022 و HIPAA

الخطة المجانية مناسبة للمطورين المستقلين والفرق الصغيرة لأنها تتضمن CLI ومشغل المجموعات. أما الخطط المدفوعة فتركز أكثر على التعاون، الحوكمة، وإدارة الوصول والامتثال.

متى تستخدم Testfully؟

استخدم Testfully إذا كنت تحتاج إلى أداة واحدة تغطي الاختبار والمراقبة بعد النشر.

يناسبك خصوصًا إذا كنت تريد:

  • اختبار API أثناء التطوير ثم مراقبته في الإنتاج.
  • تنبيهات مرتبطة بفشل فحوصات API عبر Slack أو PagerDuty أو SMS.
  • بناء اختبارات بدون كود مع إمكانية استخدام JavaScript عند الحاجة.
  • وضع عدم اتصال كامل الميزات.
  • ترحيل مجموعاتك من Postman أو Insomnia.
  • تشغيل اختبارات API داخل CI/CD عبر CLI.

أما إذا كانت حاجتك الأساسية هي إرسال طلبات مخصصة بسرعة، فقد يكون عميل واجهة برمجة تطبيقات مجاني أخف كافيًا.

أين يتناسب Apidog؟

Testfully قوي في الاختبار والمراقبة. لكن إذا كان سير عملك يبدأ من تصميم API قبل تنفيذها، فقد تحتاج إلى منصة تغطي دورة حياة API بشكل أوسع.

Apidog هي منصة API شاملة تغطي التصميم والاختبار والمحاكاة والتوثيق في مكان واحد. يمكنك استخدامها من أجل:

  • تصميم العقود باستخدام مصمم OpenAPI مرئي.
  • إنشاء خوادم وهمية بدون كود.
  • بناء سيناريوهات اختبار آلية بتأكيدات مرئية.
  • نشر وثائق API تفاعلية.
  • العمل مع REST و GraphQL و gRPC و WebSocket و SOAP و Socket.IO.
  • استخدام تطبيق سطح المكتب، تطبيق الويب، وواجهة CLI.

بالنسبة لـ CI/CD، يمكن استخدام أمر:

apidog run
Enter fullscreen mode Exit fullscreen mode

لتنفيذ سيناريوهات الاختبار والمجموعات المحفوظة داخل خط الأنابيب. يدعم Apidog مخرجات مثل:

  • cli
  • html
  • json
  • junit

كما يدعم التشغيل المعتمد على البيانات باستخدام:

-d
Enter fullscreen mode Exit fullscreen mode

واختيار البيئة باستخدام:

-e
Enter fullscreen mode Exit fullscreen mode

يمكنك معرفة المزيد في الدليل الشامل لـ Apidog CLI وشرح كيفية اختبار واجهة برمجة تطبيقات REST من سطر الأوامر.

التمييز العملي هو النطاق:

  • Testfully يركز على الاختبار والمراقبة المجدولة، وهذه نقطة قوته الأساسية.
  • Apidog يركز على دورة حياة عقد API كاملة: التصميم، المحاكاة، التوثيق، والاختبار.

لا يقدم Apidog مراقبة مجدولة لوقت تشغيل الإنتاج مع تنبيهات المناوبة بالطريقة التي يقدمها Testfully. لذلك اختر بناءً على الجزء الأهم في سير عملك: مراقبة الإنتاج، أم تصميم API ومحاكاتها وتوثيقها من البداية.

الأسئلة الشائعة

هل Testfully مجاني؟

نعم. توجد خطة مطور مجانية بسعر 0 دولار. تتضمن مساحة عمل واحدة غير متصلة بالإنترنت وواحدة سحابية، حتى 5 مستخدمين، مشغل مجموعات بدون قيود، الميزات الأساسية، وواجهة سطر الأوامر CLI. تبدأ الخطط المدفوعة من 14 دولارًا لكل مستخدم شهريًا، مع التحصيل السنوي، لخطة الفريق.

هل لدى Testfully واجهة سطر أوامر CLI؟

نعم. يمكنك تثبيتها من npm:

npm install -g @testfully/cli
Enter fullscreen mode Exit fullscreen mode

ثم تشغيل الطلبات أو المجلدات باستخدام:

testfully run
Enter fullscreen mode Exit fullscreen mode

كما يدعم تقارير cli و junit المناسبة لخطوط CI/CD.

ما البروتوكولات التي يدعمها Testfully؟

يدعم عميل Testfully واجهات REST و GraphQL و XML عبر HTTP. كما يدعم البيئات، المتغيرات، تسلسل الطلبات، OAuth2، و JavaScript للمنطق المخصص.

هل يمكن لـ Testfully الاستيراد من Postman؟

نعم. يمكنه استيراد المجموعات من Postman و Insomnia، مما يسمح بترحيل الطلبات والبيئات والهياكل الموجودة دون إعادة بنائها يدويًا.

ما الذي يميز Testfully عن عميل API عادي؟

الميزة الأساسية هي المراقبة المدمجة. يمكن لـ Testfully تشغيل اختباراتك وفق جدول زمني، ثم إرسال تنبيهات عبر البريد الإلكتروني أو SMS أو Slack أو PagerDuty عند فشل API. معظم عملاء الطلبات يركزون على إرسال الطلبات فقط ولا يوفرون طبقة مراقبة مماثلة.

هل Testfully بديل جيد لـ Postman؟

يمكن أن يكون كذلك، خصوصًا إذا كنت تريد اختبار API ومراقبته في أداة واحدة. لمقارنة أوسع، راجع قائمة أفضل بدائل Postman لاختبار واجهات برمجة التطبيقات.

Top comments (0)