أصبح اختبار واجهات برمجة التطبيقات جزءًا أساسيًا من تطوير البرمجيات. مع اتجاه العالم نحو الخدمات الصغيرة والأنظمة المترابطة، فإن ضمان أن تكون واجهات برمجة التطبيقات قوية وموثوقة أمر بالغ الأهمية. لقد ظهرت بايثون، بفضل بساطتها ودعم المكتبات الواسع، كلغة مفضلة لاختبار واجهات برمجة التطبيقات. في هذه المقالة، سنستكشف كل ما تحتاج لمعرفته حول اختبار واجهات برمجة التطبيقات باستخدام بايثون. بالإضافة إلى ذلك، سنوضح لك كيف تبدأ باستخدام Apidog مجانًا.
ما هو اختبار واجهات برمجة التطبيقات؟
قبل أن نتعمق في تفاصيل اختبار واجهات برمجة التطبيقات باستخدام بايثون، دعنا نفهم ما يتضمنه اختبار واجهات برمجة التطبيقات. واجهة برمجة التطبيقات (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 هو منصة شاملة لواجهات برمجة التطبيقات توفر أدوات لتصميم واختبار وتوثيق واجهات برمجة التطبيقات. تم تصميمها لتبسيط دورة حياة تطوير واجهات برمجة التطبيقات بالكامل، مما يجعل من السهل على المطورين إنشاء واجهات برمجة تطبيقات موثوقة ومُوثقة بشكل جيد.
الميزات الرئيسية لـ Apidog
- تصميم واجهات برمجة التطبيقات: إنشاء وإدارة مواصفات واجهة برمجة التطبيقات الخاصة بك من خلال واجهة سهلة الاستخدام.
- اختبار واجهات برمجة التطبيقات: بسهولة إنشاء وتشغيل اختبارات تلقائية لواجهات برمجة التطبيقات الخاصة بك.
- توثيق واجهات برمجة التطبيقات: توليد وصيانة توثيق شامل لواجهات برمجة التطبيقات.
- التعاون: العمل بسلاسة مع فريقك على مشاريع واجهات برمجة التطبيقات.
كيف ترسل طلب واجهة برمجة التطبيقات ببايثون باستخدام Apidog
- افتح Apidog وانقر على زر "طلب جديد" لإنشاء طلب جديد.

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

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

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

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

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

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

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

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