البرنامج التعليمي لاختبار خدمات الويب: كيفية الاختبار؟ تعلم مع المثال

ما هي خدمة الويب؟

خدمات الويب هي الآلية أو الوسيلة للاتصال التي من خلالها يتبادل تطبيقان/جهازان البيانات بغض النظر عن بنيتها التحتية والتكنولوجيا المستخدمة فيها.

ما هو اختبار خدمة الويب؟

اختبار خدمات الويب هو نوع من اختبارات البرامج التي تتحقق من صحة خدمات الويب. الغرض من اختبار خدمات الويب هو التحقق من وظائف وموثوقية وأداء وأمان واجهة برمجة التطبيقات (واجهة برنامج التطبيق). يشبه اختبار خدمة الويب اختبار الوحدة في بعض الحالات. يمكنك اختبار خدمة ويب يدويًا أو إنشاء رمز التشغيل الآلي الخاص بك أو استخدام أداة التشغيل الآلي الجاهزة مثل Postman.

لماذا هناك حاجة إلى خدمة الويب؟

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

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

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

تتيح لنا خدمات الويب القيام بهذا النوع من التطبيقات.

على سبيل المثال، ضع في اعتبارك خدمة الويب التالية

http://www.webservicex.net/stockquote.asmx?op=GetQuote

أنه يعطي قيمة السهم للشركة.

دعونا نجد سعر سهم Google (الرمز: GOOG)

اختبار خدمة الويب

استجابة XML تعطي سعر السهم.

اختبار خدمة الويب

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

بروتوكولات خدمة الويب

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

  1. SOAP (بروتوكول الوصول إلى كائن بسيط)
  2. REST (هندسة نقل الحالة التمثيلية)

صابون

SOAP هو بروتوكول قياسي يحدده معيار W3C لإرسال واستقبال طلبات واستجابات خدمة الويب.

يستخدم SOAP تنسيق XML لإرسال واستقبال الطلب وبالتالي فإن البيانات هي بيانات مستقلة عن النظام الأساسي. يتم تبادل رسائل SOAP بين تطبيقات الموفر والتطبيق المتلقي داخل مغلفات SOAP.

نظرًا لأن SOAP يستخدم بروتوكول النقل http البسيط، فلا يتم حظر رسائله بواسطة جدران الحماية.

REST

REST تعني نقل الحالة التمثيلية؛ وهي بنية تعمل عمومًا عبر HTTP. ويؤكد أسلوب REST على التفاعلات بين العملاء والخدمات، والتي يتم تحسينها من خلال وجود عدد محدود من العمليات. REST هو بديل لـ SOAP (بروتوكول الوصول إلى الكائنات البسيطة) وبدلاً من استخدام XML للطلبات، يستخدم REST عنوان URL بسيطًا في بعض الحالات. وعلى عكس SOAP، تستخدم تطبيقات RESTFUL رؤوس HTTP المضمنة لحمل المعلومات الوصفية.

هناك العديد من التعليمات البرمجية التي يستخدمها REST لتحديد ما إذا كان المستخدم لديه حق الوصول إلى API أم لا مثل الكود 200 أو 201 يشير إلى التفاعل الناجح مع نص الاستجابة بينما يشير 400 إلى طلب سيئ أو أن URI للطلب لا يتطابق مع واجهات برمجة التطبيقات في النظام. يمكن إرسال جميع معلمات طلب واجهة برمجة التطبيقات ومعلمات الطريقة عبر أي منهما سأعين or للحصول على المتغيرات.

تدعم Rest API كلاً من تنسيق XML وJSON لاختبار WebServices API. ويفضل عادة ل الجوال وتطبيقات الويب لأنها تجعل التطبيق يعمل بشكل أسرع وأكثر سلاسة

wsdl

WSDL (خدمات الويب Description Language) هي لغة تعتمد على XML والتي سيتم استخدامها لوصف الخدمات التي تقدمها خدمة الويب.

يصف WSDL جميع العمليات التي تقدمها خدمة الويب المحددة بتنسيق XML. كما يحدد أيضًا كيفية استدعاء الخدمات، أي قيمة الإدخال التي يتعين علينا تقديمها وما هو تنسيق الاستجابة التي سيتم إنشاؤها لكل نوع من الخدمات.

كيفية اختبار خدمة ويب؟

لاختبار خدمة الويب، يمكنك

  1. اختبار يدويا
  2. قم بإنشاء رمز الأتمتة الخاص بك
  3. استخدم أداة أتمتة جاهزة للاستخدام مثل SoapUI.

يتضمن اختبار أتمتة خدمات الويب الخطوات التالية:

  1. فهم ملف WSDL
  2. تحديد العمليات التي توفرها خدمة الويب المحددة
  3. تحديد تنسيق طلب XML الذي نحتاج إلى إرساله
  4. تحديد تنسيق XML للاستجابة
  5. استخدام أداة أو رمز كتابة لإرسال الطلب والتحقق من صحة الاستجابة

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

الآن دعونا نلقي نظرة على الخطوات المذكورة أعلاه

الخطوة 1 إلى 4: فهم WSDL وتحديد العمليات وتنسيقات XML

العملة Convertoيمكن رؤية ملف WSDL @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) والتي سوف تعطي معلومات حول العملة Convertoص طرق خدمة الويب التي ستدعمها، والمعلمات التي نحتاج إلى تمريرها، ونوع المعلمات... إلخ.

WSDL وتحديد العمليات وتنسيقات XML

WSDL وتحديد العمليات وتنسيقات XML

الخطوة 5: استخدام أداة أو رمز كتابة لإرسال الطلب والتحقق من صحة الاستجابة

هناك الكثير من أدوات اختبار WebService المتاحة لاختبار خدمة الويب SOAP. SoapUI هي واحدة من شعبية أداة واجهة برمجة التطبيقات مما سيساعدنا على اختبار خدمات الويب SOAP. في الواقع، يمكنك استخدام أي لغة برمجة قادرة على إرسال طلب XML إلى تطبيق موفر خدمة الويب عبر http وقادر على تحليل استجابة XML والتحقق من صحتها مقابل النتيجة المتوقعة. في هذا البرنامج التعليمي لاختبار خدمات الويب، سنقوم باختبار WebService

  1. باستخدام Java
  2. باستخدام SoapUI

الجزء 1) اختبار خدمة الويب باستخدام Apache Axis2 API (Java).

بشكل عام، تأخذ خدمة الويب الطلب وترسل الرد بتنسيق XML.

مشروع Apache Axis2 API هو Java واجهة برمجة تطبيقات التنفيذ، والتي سيتم استخدامها لإنشاء خدمات الويب لكل من جانب الخادم (مزود الخدمة) وجانب العميل (مستهلك الخدمة).

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

  1. في الأساس سوف نقوم بإنشاء بسيطة Java البرنامج الذي سنقوم فيه بإنشاء مثيل لفئة كعب الروتين.
  2. باستخدام كعب الروتين سوف نقوم باستدعاء طريقة الطلب عن طريق تمرير كافة المعلومات المطلوبة.
  3. سيقوم برنامج Stub بتحويل هذا الطلب إلى تنسيق طلب XML ويرسل إليه نقطة نهاية الخدمة التي ستقرأ الطلب وتعالج الطلب وترسل الرد بتنسيق XML.
  4. سيتم تحويل استجابة XML إلى Java فئة كعب الروتين والعودة إلى البرنامج الفعلي.

دعونا ننظر إلى الخطوات المذكورة أعلاه بالتفصيل

الخطوة أ) قم بتنزيل axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & قم بتعيين متغير البيئة "AXIS2_HOME"

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

الخطوة ب) قم بإنشاء مجلد للاحتفاظ بجميع القطع الأثرية التي تم إنشاؤها

على سبيل المثال: C:\Axis\Projects\CurrencyConverter

الخطوة ج) افتح موجه الأوامر وانتقل إلى بنية المجلد حيث تريد إنشاء القطع الأثرية وقم بتشغيل الأمر التالي الذي سيولد القطع الأثرية

%AXIS2_HOME%\bin\WSDL2Java -أوري http://www.webservicex.net/CurrencyConvertor.asmx؟wsdl -p org.apache.axis2.currencyconvertor -d adb –s

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

الخطوة د) بمجرد تشغيل الأمر بنجاح، سترى المجلد الذي يحتوي على الملفات المطلوبة.

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

الخطوة هـ) في الخطوة التالية من برنامج اختبار خدمات الويب هذا، يتعين علينا إنشاء برنامج العميل، والذي من خلاله سنرسل الطلب الفعلي باستخدام النماذج الأولية المولدة. افتح برنامج Eclipse وقم بإنشاء النموذج الجديد Java المشروع وحدد المجلد الذي أنشأناه أعلاه.

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

الخطوة و) قم بإضافة جميع الجرار ذات الصلة بـ axis2 إلى مسار إنشاء المشروع، والذي سيكون موجودًا في مجلد lib الخاص بمجلد برنامج axis2

(على سبيل المثال: C:\Axis\axis2-1.6.2\lib)

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

الخطوة ز) إنشاء جديد Java الفئة (على سبيل المثال: Client.Java) وإنشاء كائن كعب الروتين. باستخدام كائن كعب الروتين يمكننا استدعاء كافة الأساليب المدعومة لخدمة ويب معينة.

اختبار خدمة الويب باستخدام Apache Axis2 API (Java)

Client.Java Program
package org.apache.axis2.currencyconvertor;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;

public class Client {
 public static void main(Java.lang.String args[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

الجزء 2) كيفية اختبار استخدام خدمة الويب SoapUI

في SoapUI

  1. انتقل إلى ملف > مشروع صابون جديد
  2. أدخل اسم المشروع وموقع WSDL URI
  3. انقر OK

اختبار باستخدام خدمة ويب SoapUI

  1. قم بتوسيع الطلب الأول وانقر نقرًا مزدوجًا فوق "Request1". سيعرض هذا طلب SOAP بتنسيق XML.
  2. أدخل من العملة وإلى العملة
  3. انقر على زر الإرسال
  4. سيتم عرض استجابة XML في الجزء الأيمن.

اختبار باستخدام خدمة ويب SoapUI

كما قد تستنتج، فإن استخدام أدوات اختبار WebService مثل SoapUI يسرع من جهود اختبار أتمتة خدمات الويب. ومن ثم، سيكون SoapUi هو محور تعلمنا في البرامج التعليمية التالية.

الملخص

  • تقوم التطبيقات البرمجية بالتواصل وتبادل البيانات مع بعضها البعض باستخدام خدمة الويب
  • SOAP و REST هما بروتوكولان شائعان لإنشاء خدمة ويب
  • يدعم SOAP تبادل البيانات المستند إلى XML
  • يدعم REST XML أو Json أو تبادل البيانات في عنوان URL بسيط لاختبار WebServices API.
  • WSDL هي لغة تعتمد على XML والتي سيتم استخدامها لوصف الخدمات التي تقدمها خدمة الويب. يتم تعريف SOAP باستخدام WSDL.
  • لاختبار WebService يمكنك
    • قم بإنشاء الكود الخاص بك. على سبيل المثال، استخدم Axis2 API لـ Java
    • استخدم أدوات أتمتة اختبار WebService مثل SoapUI
  • أدوات التشغيل الآلي مثل SoapUI ستحفز جهود اختبار أتمتة خدمات الويب الخاصة بك، وسوف تتطلب جهدًا أقل في البرمجة مقارنة بإنشاء التعليمات البرمجية الخاصة بك باستخدام Axis2 API

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

خدمة ويب واجهة برمجة تطبيقات الويب
تم تعريفها بواسطة W3C، حيث تعتمد جميع الاتصالات وتبادل البيانات على XML يمكن أن تكون اتصالات واجهة برمجة تطبيقات الويب وتبادل البيانات بتنسيق XML أو JSON أو بيانات عادية
لقد حددت المعايير - WSDL لا يوجد معيار محدد
لا يمكنك ضغط البيانات ولكن يمكنك ضغط طلب HTML يمكنك ضغط البيانات
مثال: الصابون مثال: الراحة

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

أصبح هذا البرنامج التعليمي لاختبار خدمات الويب ممكنًا بفضل مساهمات السيد نارندر ريدي نوكالا