Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

كيفية إتقان اختبار واجهات برمجة التطبيقات باستخدام بايثون

اكتشف الدليل النهائي لاختبار واجهات برمجة التطبيقات باستخدام بايثون! تعلم تفاصيل اختبار واجهات برمجة التطبيقات مع بايثون، بما في ذلك أمثلة عملية وأفضل الممارسات. مثالي للمطورين الذين يسعون لضمان واجهات موثوقة وقوية.

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

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

button

ما هو اختبار واجهات برمجة التطبيقات؟

قبل أن نتعمق في تفاصيل اختبار واجهات برمجة التطبيقات باستخدام بايثون، دعنا نفهم ما يتضمنه اختبار واجهات برمجة التطبيقات. واجهة برمجة التطبيقات (API) هي مجموعة من القواعد والبروتوكولات لبناء والتفاعل مع تطبيقات البرمجيات. يشمل اختبار واجهات برمجة التطبيقات التحقق من أن هذه التفاعلات تتم كما هو متوقع. يتضمن ذلك إرسال طلبات إلى نقاط نهاية مختلفة والتحقق من الاستجابات مقابل النتائج المتوقعة.

لماذا بايثون لاختبار واجهات برمجة التطبيقات؟

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

موقع بايثون الرسمي

البدء باستخدام اختبار واجهات برمجة التطبيقات ببايثون

هل أنت مستعد للبدء في اختبار واجهات برمجة التطبيقات باستخدام بايثون؟ لنبدأ بالأساسيات.

إعداد بيئتك

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

python --version

ستحتاج أيضًا إلى تثبيت بعض المكتبات الأساسية. افتح الطرفية الخاصة بك وقم بتشغيل:

pip install requests pytest

فهم طرق HTTP

تتواصل واجهات برمجة التطبيقات عبر طرق HTTP. تشمل الطرق الأكثر شيوعًا:

  • GET: استرداد البيانات من الخادم.
  • POST: إرسال البيانات إلى الخادم لإنشاء مورد.
  • PUT: تحديث مورد موجود على الخادم.
  • DELETE: إزالة مورد من الخادم.

فهم هذه الطرق أمر بالغ الأهمية لاختبار واجهات برمجة التطبيقات بفعالية.

اختبار واجهة برمجة التطبيقات الأولى الخاصة بك باستخدام بايثون

دعنا نكتب أول اختبار لواجهة برمجة التطبيقات باستخدام مكتبة requests.

import requests

def test_get_request():
    response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
    assert response.status_code == 200
    assert response.json()['id'] == 1

if __name__ == '__main__':
    test_get_request()
    print("الاختبار نجح!")

ترسل هذه السكربت البسيط طلب GET إلى واجهة برمجة التطبيقات النموذجية وتتحقق مما إذا كانت حالة الاستجابة 200 ومعرف المشاركة العائدة هو 1.

اختبار واجهات برمجة التطبيقات المتقدم باستخدام Pytest

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

تثبيت وإعداد Pytest

قم بتثبيت pytest باستخدام pip:

pip install pytest

كتابة أول اختبار Pytest الخاص بك

إليك كيفية دمج pytest في اختبار واجهات برمجة التطبيقات:

import requests
import pytest

def test_get_request():
    response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
    assert response.status_code == 200
    assert response.json()['id'] == 1

if __name__ == '__main__':
    pytest.main()

لتشغيل اختباراتك، ما عليك سوى تنفيذ:

pytest

تنظيم الاختبارات مع تجهيزات

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

import requests
import pytest

@pytest.fixture
def base_url():
    return 'https://jsonplaceholder.typicode.com'

def test_get_request(base_url):
    response = requests.get(f'{base_url}/posts/1')
    assert response.status_code == 200
    assert response.json()['id'] == 1

اختبار طرق HTTP المختلفة

دعونا نتعمق أكثر في اختبار طرق HTTP المختلفة. يضمن اختبار طرق مختلفة أن تتعامل واجهة برمجة التطبيقات الخاصة بك مع أنواع مختلفة من الطلبات بشكل صحيح.

اختبار طلبات POST

يستخدم طلب POST لإنشاء مورد جديد. إليك كيفية اختباره:

def test_post_request(base_url):
    payload = {
        "title": "foo",
        "body": "bar",
        "userId": 1
    }
    response = requests.post(f'{base_url}/posts', json=payload)
    assert response.status_code == 201
    assert response.json()['title'] == "foo"

اختبار طلبات PUT

يحدث طلب PUT تحديثًا لمورد موجود. دعونا نرى مثالاً:

def test_put_request(base_url):
    payload = {
        "id": 1,
        "title": "foo updated",
        "body": "bar updated",
        "userId": 1
    }
    response = requests.put(f'{base_url}/posts/1', json=payload)
    assert response.status_code == 200
    assert response.json()['title'] == "foo updated"

اختبار طلبات DELETE

أخيرًا، يقوم طلب DELETE بإزالة مورد:

def test_delete_request(base_url):
    response = requests.delete(f'{base_url}/posts/1')
    assert response.status_code == 200

معالجة المصادقة في اختبار واجهات برمجة التطبيقات

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

المصادقة الأساسية

تتطلب المصادقة الأساسية اسم مستخدم وكلمة مرور مشفرة في رأس الطلب.

def test_basic_auth():
    response = requests.get('https://api.example.com/secure-endpoint', auth=('user', 'pass'))
    assert response.status_code == 200

المصادقة القائمة على الرموز

تستخدم المصادقة القائمة على الرموز رمزًا، عادةً في الرأس، لمصادقة الطلبات.

def test_token_auth():
    token = 'your_token_here'
    headers = {'Authorization': f'Bearer {token}'}
    response = requests.get('https://api.example.com/secure-endpoint', headers=headers)
    assert response.status_code == 200

معالجة الأخطاء في اختبار واجهات برمجة التطبيقات

يعد التعامل مع الأخطاء بشكل صحيح أمرًا بالغ الأهمية في اختبار واجهات برمجة التطبيقات. هذا يضمن أن تستجيب واجهة برمجة التطبيقات вашей بشكل صحيح لطلبات غير صحيحة.

اختبار أخطاء 404

تشير خطأ 404 إلى أن المورد المطلوب لم يُعثر عليه.

def test_404_error(base_url):
    response = requests.get(f'{base_url}/posts/999999')
    assert response.status_code == 404

اختبار أخطاء 400

تشير خطأ 400 إلى طلب سيئ، غالبًا بسبب إدخال غير صحيح.

def test_400_error(base_url):
    response = requests.post(f'{base_url}/posts', json={})
    assert response.status_code == 400

أتمتة اختبار واجهات برمجة التطبيقات

يمكن أن توفر أتمتة اختبارات واجهات برمجة التطبيقات الوقت وتضمن الاتساق. يمكنك إعداد خطوط أنابيب التكامل المستمر (CI) لتشغيل اختباراتك تلقائيًا.

استخدام GitHub Actions للتكامل المستمر

GitHub Actions هو أداة CI/CD قوية. إليك تكوين بسيط لتشغيل اختباراتك باستخدام pytest:

أنشئ ملفًا .github/workflows/python-app.yml بالمحتوى التالي:

name: تطبيق بايثون

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: إعداد بايثون
      uses: actions/setup-python@v2
      with:
        python-version: '3.x'
    - name: تثبيت التبعيات
      run: |
        python -m pip install --upgrade pip
        pip install pytest requests
    - name: تشغيل الاختبارات
      run: |
        pytest

ستقوم هذه التكوينات بتشغيل اختباراتك في كل مرة تقوم فيها بدفع الكود إلى مستودعك.

الأدوات والمكتبات لاختبار واجهات برمجة التطبيقات

هناك العديد من الأدوات والمكتبات التي يمكن أن تجعل عملية اختبار واجهات برمجة التطبيقات أكثر كفاءة. إليك بعض الأدوات الشائعة:

Apidog

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

Postman

Postman هي أداة قوية لاختبار واجهات برمجة التطبيقات مع واجهة مستخدم سهلة الاستخدام. يمكنك إنشاء وإدارة وأتمتة الاختبارات باستخدام Postman.

Requests

تعد مكتبة requests في بايثون مثالية لإجراء طلبات HTTP والتعامل مع الاستجابات.

Pytest

pytest هو إطار اختبار قوي يبسط كتابة وتشغيل الاختبارات.

Responses

تتيح لك مكتبة responses محاكاة استجابات واجهات برمجة التطبيقات لأغراض الاختبار.

Locust

Locust هو أداة لاختبار الأداء تساعدك في تحديد مشكلات الأداء في واجهات برمجة التطبيقات الخاصة بك.

دمج Apidog لاختبار واجهات برمجة التطبيقات بسهولة

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

لماذا Apidog؟

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

button

الميزات الرئيسية لـ Apidog

  • تصميم واجهات برمجة التطبيقات: إنشاء وإدارة مواصفات واجهة برمجة التطبيقات الخاصة بك من خلال واجهة سهلة الاستخدام.
  • اختبار واجهات برمجة التطبيقات: بسهولة إنشاء وتشغيل اختبارات تلقائية لواجهات برمجة التطبيقات الخاصة بك.
  • توثيق واجهات برمجة التطبيقات: توليد وصيانة توثيق شامل لواجهات برمجة التطبيقات.
  • التعاون: العمل بسلاسة مع فريقك على مشاريع واجهات برمجة التطبيقات.

كيف ترسل طلب واجهة برمجة التطبيقات ببايثون باستخدام Apidog

  1. افتح Apidog وانقر على زر "طلب جديد" لإنشاء طلب جديد.
اختر طلب جديد

2. اختر "GET" كطريقة للطلب.

اختر طريقة GET

3. أدخل عنوان URL لنقطة نهاية واجهة برمجة التطبيقات.

أدخل عنوان URL لواجهة برمجة التطبيقات

ثم انقر على زر "إرسال" لإرسال الطلب إلى واجهة برمجة التطبيقات.

أرسل الطلب وحلل الاستجابة

كما ترى، يوضح لك Apidog عنوان URL والمعلمات والرؤوس وجسم الطلب، بالإضافة إلى الحالة والرؤوس وجسم الاستجابة. يمكنك أيضًا رؤية وقت الاستجابة والحجم ونوع الاستجابة والمقارنة بينها وبين واجهات برمجة التطبيقات المختلفة.

كيف تقوم بإجراء اختبارات أتمتة بايثون باستخدام Apidog

إليك دليل خطوة بخطوة حول كيفية أتمتة اختبار واجهات برمجة التطبيقات باستخدام Apidog:

افتح مشروع Apidog الخاص بك وانتقل إلى واجهة الاختبار.

انقر على الزر لتصميم سيناريوهات اختبارك في Apidog

صمم سيناريوهات اختبارك: يمكنك تصميم سيناريوهات اختبارك في Apidog.

إنشاء سيناريو اختبار جديد

قم بتشغيل اختباراتك: يمكنك تشغيل اختباراتك في Apidog.

قم بتشغيل اختباراتك في Apidog

تحليل نتائج الاختبار وتحسينها: بعد تشغيل اختباراتك، يمكنك تحليل نتائج الاختبار وتحسين اختباراتك وفقًا لذلك.

تحليل نتائج الاختبار وتحسينها في Apidog

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

أفضل الممارسات لاختبار واجهات برمجة التطبيقات

لإنهاء المقال، إليك بعض أفضل الممارسات لاختبار واجهات برمجة التطبيقات:

استخدام أسماء واضحة ووصفية للاختبارات

يجب أن توضح أسماء اختباراتك بوضوح ما يتم اختباره. هذا يسهل فهم ما حدث عندما يفشل اختبار.

اختبار السيناريوهات الإيجابية والسلبية

تأكد من اختبار كل من الإدخالات الصحيحة وغير الصحيحة لتغطية جميع السيناريوهات الممكنة.

محاكاة الخدمات الخارجية

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

الحفاظ على كود نظيف ومنظم

احتفظ بكود الاختبار الخاص بك نظيفًا ومنظمًا. استخدم التجهيزات، الوظائف المساعدة، والبنية المناسبة للحفاظ على الوضوح وقابلية الإدارة.

الختام

يعد اختبار واجهات برمجة التطبيقات باستخدام بايثون قويًا وسهلًا في الوقت ذاته. مع أدوات مثل requests وpytest، يمكنك كتابة اختبارات شاملة تضمن أن تكون واجهات برمجة التطبيقات الخاصة بك قوية وموثوقة. من خلال اتباع أفضل الممارسات والاستفادة من الأتمتة، يمكنك تبسيط عملية الاختبار الخاصة بك وتقديم برمجيات عالية الجودة.

نتمنى لك اختبارًا سعيدًا!

button