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

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

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

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

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

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

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

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

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

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

على سبيل المثال، النظر في ما يليwing خدمة ويب

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

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

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

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

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

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

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

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

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

  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 (لغة وصف خدمات الويب) هي لغة تعتمد على XML والتي سيتم استخدامها لوصف الخدمات التي تقدمها خدمة الويب.

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

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

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

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

يتضمن اختبار أتمتة خدمات الويب اتباع الخطوات التاليةwing خطوات –

  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. باستخدام جافا
  2. باستخدام SoapUI

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

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

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

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"

اختبار WebService باستخدام Apache Axis2 API (Java)

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

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

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

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertoص -د بنك التنمية الآسيوي -S

اختبار WebService باستخدام Apache Axis2 API (Java)

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

اختبار WebService باستخدام Apache Axis2 API (Java)

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

اختبار WebService باستخدام Apache Axis2 API (Java)

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

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

اختبار WebService باستخدام Apache Axis2 API (Java)

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

اختبار WebService باستخدام 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 يمكنك ضغط البيانات
مثال: الصابون مثال: الراحة

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

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