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

مرحبًا!

في العديد من المقالات ، سأتحدث عن إمكانيات اختبار استخدام SoapUI لكيفية عمل خدمات الويب 1C. سأقدم أيضًا أمثلة على العودة من مستندات 1C بتنسيق PDF وملفات xml المعقدة. تتشابه بعض الأشياء مع ما ورد هنا ، لكنني سأستعرض أمثلة أكثر تعقيدًا للعمل مع خدمات الويب. لكن أولاً ، سأوجهك خلال عملية بدء خدمات الويب والعمل مع SoapUI خطوة بخطوة حتى يسهل معرفة كيفية عملها من البداية.

1. خدمة ويب بسيطة

بادئ ذي بدء ، دعنا نأخذ تكوينًا هيكليًا بدون خدمات الويب ونتابع عملية إنشائها خطوة بخطوة.

دعنا نضيف خدمة ويب جديدة تسمى test1 وننشئ عملية hello فيها بنوع إرجاع من السلسلة. يجب دائمًا تعيين أسماء خدمات الويب والعمليات باللغة اللاتينية.

تحتاج أيضًا إلى تعيين مساحة الاسم URI واسم ملف المنشور:

عند النقر فوق العدسة المكبرة في حقل "اسم الإجراء" ، سيتم فتح وحدة خدمة الويب ويمكنك تنفيذ وظيفة الترحيب.

hello () دالة إرجاع "سلسلة من خدمة الويب 1s" ؛ وظائف النهاية

2. نشر خدمة الويب.

الآن ، لكي تكون الوظيفة الناتجة متاحة عبر http ، نحتاج إلى نشر خدمتنا على خادم ويب. أباتشي 2.2 مناسب لهذا. لقد قرأت مقالات حول كيفية إعداد العمل مع IIS وبدا لي الأمر أكثر صعوبة. بعد تثبيت Apache 2.2 وتشغيله ، يجب أن تذهب إلى قائمة الإدارة - النشر على خادم ويب. يجب ملء حقل "الدليل" ويحتوي على دليل تثبيت Apache. تذكر الحقول "الاسم" و "العنوان" لخدمة الويب ، فستكون مفيدة لنا في الخطوة التالية.

3. الاختبار باستخدام SoapUI

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

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

نذهب إلى ملف القائمة - مشروع SOAP جديد ، وقم بتعيين اسم المشروع hellotest وفي حقل WSDL الأولي نكتب الرابط التالي:

http: //localhost/test_ws/ws/test1.1cws؟ wsdl

في ذلك ، تم تحديد جزء "test_ws" في المرحلة الأخيرة في حقل "الاسم" ، و test1.1cws في حقل "العنوان".

انقر فوق "موافق" وفي هذه المرحلة ستحتاج إلى تسجيل الدخول عن طريق تسجيل الدخول تحت مستخدم الاختبار WsUser. سيتم إنشاء مشروع وعنصرين ملزمين.

يختلف Soap12Binding في أنه يعمل وفقًا للإصدار الجديد من معيار SOAP 1.2. لنفتح عنصر Request1 في test1Soap12Binding ونرى هذا:

يُظهر SoapUI ما xml الذي سيتم تمريره إلى وظيفتنا. قبل إجراء الاختبار ، هناك فارق بسيط آخر ، بشكل افتراضي سوف تتطلب SoapUI إذنًا لكل عنصر طلب فردي. لذلك ، من أجل عدم تعيينه في كل مرة ، تحتاج إلى النقر بزر الماوس الأيمن فوق testSoap12Binding ، وتحديد إظهار عرض الواجهة وفي النافذة التي تفتح ، في علامة التبويب "نقطة نهاية الخدمة" ، قم بتعيين اسم وكلمة مرور مستخدم خدمات الويب:

إذا لم يتم ذلك ، فستحتاج إلى تعيين التفويض لكل طلب ، في اللوحة السفلية ، انقر فوق الزر "مصادقة".

الآن يمكننا أخيرًا تقديم طلب لوظيفة hello ورؤية الرد:

رائع ، كل شيء يعمل!

4. تمرير معلمات بسيطة إلى وظيفة.

سنقوم الآن بعمل وظيفة جديدة مع معلمات ، على سبيل المثال ، سوف نتحقق من العمل بالتواريخ ، وسنقوم بعمل وظيفة getSaleDocNumbersByDate ، والتي ستقبل تاريخ المستند (الفاتورة) وإرجاع أرقام المستندات لهذا التاريخ كسلسلة . دعنا نضيف معلمة التاريخ مع نوع التاريخ والوقت إلى العملية:

الكود مثل هذا:

وظيفة getSaleDocNumbersByDate (تاريخ) // StartDate = StartDay (التاريخ) ؛ enddate = endDay (التاريخ) ؛ اختيار المستندات = documents.Expenditure.Select (تاريخ البدء ، تاريخ الانتهاء) ؛ أرقام = "" ؛ أثناء اختيار المستندات. الحلقة التالية () = الأرقام + "#" + اختيار المستندات.عدد + "؛" ؛ نهاية الدورة عودة الرقم وظائف النهاية

الآن في SoapUI ، انقر بزر الماوس الأيمن على عنصر testSoap12Binding وحدد تحديث التعريف. بعد ذلك ، ستظهر وظيفة getSaleDocNumbersByDate وطلب جاهز لها في المشروع. لملء التاريخ ، تحتاج إلى استخدام التنسيق "YYYY-MM-DDThh: mm: ss" (يمكنك إلقاء نظرة على w3schools ونوصي بشدة باستخدام هذا الموقع لفهم كيفية التعامل مع xml)

ثم نحصل على الطلب والرد التاليين:

5. حزم XDTO

إذا كان من الضروري تمرير معاملات أكثر تعقيدًا إلى الوظائف (على سبيل المثال ، xml مع عدة حقول) ، أو تلقي xml معقدًا استجابةً لذلك ، فلا يمكننا الاستغناء عن حزم XDTO.

تمت مناقشة العمل مع XDTO بتفصيل كبير في سلسلة من المقالات. في الواقع ، تحدد الحزمة هيكل ونوع الحقول المستخدمة في ملفات xml.

سأفكر في مثال على تمرير واستلام ملف xml الذي تم تحديد نوعه في الحزمة

وأيضًا في المقالات التالية سأنظر في أمثلة:

  • نقل إلى 1s ملف xml غير موصوف في الحزمة بتنسيق base64
  • الحصول من 1s على مستند pdf بتنسيق base64 وفك تشفيره
  • الحصول من ملف xml 1s مع بنية متداخلة من العناصر وتحديد عددها

6. انقل إلى 1s في معامل ملف xml ، والذي تم تحديد نوعه في الحزمة.

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

لنقم بإنشاء حزمة packet1 مع packet1_ns مساحة الاسم. بالنسبة لملف xml الوارد ، دعنا نحدد نوع كائن InDocSaleQuery مع حقل الرقم لنوع السلسلة وحقل التاريخ لنوع التاريخ والوقت. بالنسبة لملف الإخراج ، دعنا أولاً نحدد نوع صف واحد من الجزء المجدول من المنتجات: SaleItem مع اسم الحقول لنوع السلسلة ومجموع السعر وكمية النوع العشري. وسيكون مستند SaleDoc نفسه من النوع المركب: الرقم والتاريخ وحقول PartnerName وحقل SaleItems الذي سيكون به نوع SaleItem والحد الأقصى للرقم -1. هذا هو الحقل الذي يعني أنه يمكن أن يحتوي على مصفوفة من عدة عناصر. هذا ما يبدو عليه في التكوين:

أولاً سأشرح رمز الوظيفة ، وعندها فقط سأشرح ما يحدث

شفرة:

دالة getSaleDoc (incomingXML) DocNumber = incomingXML.number ؛ DateDoc = incomingXML.date ؛ طلب = طلب جديد ؛ query.Text = "SELECT | ConsumableItems.Nomenclature.Name كاسم ، | ConsumableProducts. السعر كسعر ، | ConsumableProducts.Quantity as Quantity ، | ConsumableProducts.Amount as total ، | ConsumableProducts.Reference | FROM | Document.Consumable.Products AS ConsumableProducts | WHERE | ConsumableProducts.Reference.Number = & Number | And ConsumableProducts.Reference.Date = & DateDoc "؛ query.SetParameter ("رقم" ، docnumber) ؛ query.SetParameter ("DateDoc" ، DateDoc) ؛ fetch = query.Execute (). حدد () ؛ if fetch.Quantity () = 0 ثم // إرجاع ErrorDocumentType = FactoryXDTO.Type ("packet1_ns"، "SaleDoc")؛ DocumentPackage = XDTO Factory.Create (DocumentType) ؛ DocumentPackage.number = "لم يتم العثور على مستندات!"؛ عودة PacketDocument ؛ خلاف ذلك // إنشاء typesDocumentType = FactoryXDTO.Type ("packet1_ns"، "SaleDoc") ؛ TablePartType = XDTO Factory.Type ("packet1_ns"، "SaleItem") ؛ DocumentPackage = XDTO Factory.Create (DocumentType) ؛ // اختر من الجزء المجدول sch = 0 ؛ حتى التحديد ، الحلقة التالية () إذا كانت cn = 0 ثم // ملء تفاصيل المستند doc = select.link ؛ DocumentPackage.number = document.number ؛ DocumentPackage.date = doc.Date ؛ DocumentPackage.partnerName = string (doc.Account) ، إنهاء إذا؛ // ملء الجدول partTablePartPackage = XDTO Factory.Create (TablePartType) ؛ FillPropertyValues ​​(TablePartPackage ، اختيار) ؛ // إضافته إلى documentDocumentPackage.SaleItems.Add (TablePartPackage) ؛ cn = cn + 1 ؛ نهاية الدورة عودة PacketDocument ؛ إنهاء إذا؛ وظائف النهاية

هناك نقطتان رئيسيتان هنا. أولاً: منذ أن تم تعيين نوع المعامل الوارد incomingXML وتم الإعلان عن هذا النوع في الحزمة ، فمن الممكن على الفور الوصول إلى حقول ملف xml الوارد هذا. ثانيًا: العمل مع مصنع XDTO. منه ، تم الحصول على نوع معلمات الإخراج الناتجة وتم إنشاء قيمة XDTOV من هذا النوع ، حيث تم ملء الحقول الضرورية. تجدر الإشارة أيضًا إلى أنه في نوع SaleDoc ، يجب عليك إدخال حقل منفصل للخطأ ، ولكن لأغراض الاختبار ، سيتم تسجيل الأخطاء في حقل الرقم.

إليك ما تبدو عليه نتيجة هذا الطلب في SoapUI:

كما ترى ، كل شيء يعمل ، ولكن لا يزال هناك شيء يجب تحسينه - على سبيل المثال ، أود معرفة عدد عناصر SaleItems الموجودة في المستند.

سأتحدث عن هذا وأمثلة أكثر تعقيدًا في المقالة التالية.

في الأرشيف المرفق - تفريغ قاعدة المعلومات ومشروع SoapUI.

خدمات الويب في 1C

ستنظر هذه المقالة في تكامل 1C مع خدمات الويب الحالية واستخدام 1C نفسها كخدمة ويب.

في الوقت نفسه ، ستُفهم خدمات الويب على أنها أنظمة تعمل على الإنترنت وتوفر التفاعل معها ليس فقط عبر SOAP (وهي خدمة ويب بالضبط) ، ولكن أيضًا بطرق أخرى ، بما في ذلك طلبات HTTP (S) العادية.


مخاطر استخدام خدمات الويب 1C

ظهر تنفيذ خدمات الويب في منصة 1C81.

لكن استخدامها محفوف بالمخاطر:

  1. 1C8 لا يعمل بشكل جيد عبر HTTPS ، ولا توجد أدوات تشخيص ، لذلك من المستحيل أحيانًا فهم السبب ، إذا كانت الخدمة لديها شهادة ، فإنها لا تريد العمل من خلال HTTPS. المخرج هو تنفيذ خدمات الويب من خلال CURL أو رفع نفق HTTPS.
  2. 1C8 يلتزم بقواعده للتحقق من صحة مخططات WSDL. في بعض الأحيان ، لأسباب لا يمكن تفسيرها ، لا يريد مخطط قاعدة بيانات WSDL أن يتم تحميله في ارتباط WS. يمكنك معرفة السبب فقط في منتدى شريك من متخصص واحد. لا توجد أدوات تشخيص لمخطط WSDL ، ولا حتى سبب أو سطر يتم عنده مقاطعة تحميل المخطط.

قواعد بناء خدمات البيع

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

استخدام خدمات SOAP الخارجية

تستخدم خدمات الويب SOAP مخططات WSDL وكائنات XDTO لتمثيل البيانات.

تنزيل WSDL

من أجل استخدام خدمة خارجية ، تحتاج إلى تحميل مخطط WSDL الخاص بها.

التحقق من صلاحية مخطط WSDL

في بعض الأحيان لا يتم تحميل مخطط WSDL في 1C. يمكنك التحقق من صلاحية (صحة) المخطط باستخدام أي مدقق مخطط WSDL ، على سبيل المثال http://www.validwsdl.com/.

تحتاج إلى تحميل المخطط إلى بعض مواقع http (يمكنك استخدام بروتوكول نقل الملفات) وتحديد عنوان الملف حيث تم تحميل النظام:

ميزات تحميل WSDL في 1C

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

معالجة لاختبار خدمة ويب خارجية قيد التشغيل

لاختبار خدمة ويب خارجية قيد التشغيل ، استخدم معالجة "TestArbitraryWebService.epf" من الحزمة لهذه المقالة.

يمكن استخدام الاختبار على مثال خدمة Morpher التي ترفض الأسماء (عنوان الخدمة http://www.morpher.ru/WebServices/Morpher.asmx؟WSDL):

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

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

أدوات تصحيح أخطاء الخدمة القياسية

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

SOAP و HTTPS

لسوء الحظ ، يتصرف SOAP في 1C بشكل متقلب عند العمل من خلال بروتوكول HTTPS ، تُظهر الممارسة أنه من المستحيل تحقيق اتصال HTTPS ، على الرغم من الإعلان عن الاحتمال في النظام الأساسي. هناك نقص في أدوات التشخيص وتصحيح الأخطاء لمعرفة أسباب عدم إنشاء الاتصال. لذلك ، من الملائم استخدام SOAP عبر CURL.

تتضمن الآلية المضمنة لاستخدام HTTPS أنه يجب نشر جميع الشهادات في ملف pem شائع في دليل برنامج 1C.

استخدام 1C كخدمة

قواعد تطوير الخدمة على أساس 1C

عملية "Hello"

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

على سبيل المثال ، يمكنك استخدام عملية Hello بدون معلمات ، والتي تقوم ببساطة بإرجاع القيمة المنطقية True.

نشر خدمة الويب

الإجراء موصوف جيدًا في الوثائق: file: /// C: /Program٪20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634:

تتمثل مهمة نشر خدمات الويب في وضع ملفات التكوين * .1cws لخدمات الويب في الدليل المناسب لخادم الويب مع الإعدادات المناسبة لخادم الويب. لنشر خدمات الويب ، يجب عليك تنفيذ أمر القائمة "الإدارة | نشر خدمات الويب.

سيفتح هذا الأمر نافذة نشر خدمات الويب.

تحتوي نافذة Web Services Publishing (نشر خدمات الويب) على المسار إلى خادم الويب وقائمتين:

  • "خدمات الويب" - قائمة بخدمات ويب التكوين ؛
  • "نشر" - قائمة بخدمات الويب المنشورة على خادم الويب المحدد.

استخدم الزر "اتصال ..." لتحديد خادم الويب الذي تريد نشر خدمات الويب عليه.

تتيح لك نافذة تحديد مسار خادم الويب تحديد المسار بطريقتين:

  • في علامة التبويب "الملفات" - تُستخدم هذه الطريقة عند إجراء النشر على نفس الكمبيوتر حيث تم تثبيت خادم الويب. يحدد المسار الدليل المحلي المقابل لصفحة الإنترنت التي سيتم استدعاء خادم الويب المنشور منها ؛
  • في علامة التبويب "موقع FTP" - تُستخدم هذه الطريقة عندما تريد نشر خدمة ويب على كمبيوتر بعيد. لإجراء النشر ، يجب تحديد معلمات اتصال FTP بالكمبيوتر البعيد والدليل الذي سيتم نشر خدمة الويب فيه.

يتم نشر خدمة الويب المحددة باستخدام زر "نشر"

يتم استخدام الزر "حذف" لإلغاء نشر خدمة الويب.

يمكنك النشر إلى دليل محلي أو عبر FTP. يمكنك أيضًا النشر إلى خادم بعيد عبر مسار UNC إذا كان الخادم البعيد جزءًا من الشبكة المحلية.

بعد النشر ، تتوفر خدمة الويب على "http: //localhost/test.1cws" أو "http://xxx.ru/test.1cws" ، حيث xxx.ru هو عنوان الخادم البعيد والمضيف المحلي هو عنوان نموذجي للخادم المحلي.

إذن لخدمة الويب 1C

تحتاج إلى المصادقة للوصول إلى الخدمة.

تمت مناقشة قضايا التفويض جيدًا هنا: http://www.forum.mista.ru/topic.php؟id=341168 وفي ملف التوثيق: /// c: / Program٪ 20Files / 1cv81 / AddDoc / RU / V8AddDoc81. هتم

عادةً ما يتم تشغيل خدمة الويب تحت إشراف مستخدم معين (غالبًا ، مستخدم تم إنشاؤه خصيصًا). يمكنك "إرفاق" مستخدم 1C باستخدام مصادقة Windows لمستخدم Windows IUSR_ (تعطيل ترخيص 1C للمستخدم). بدلاً من ذلك ، يمكنك مسح قائمة مستخدمي 1C ، ثم التفويض غير مطلوب.

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

لا تستخدم خصائص المستخدم وكلمة المرور لكائن WSProxy تسجيل الدخول 1C ، ولكن تسجيل الدخول لمستخدم خادم الويب.

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

لاختبار 1C كخدمة ويب ، استخدم معالجة "TestArbitraryWebService.epf" ، كما هو موضح في قسم "اختبار خدمة ويب خارجية عاملة".

ملف 1cws هو وصف WSDL لخدمة الويب 1C.

استخدام الخدمات في البيع بالتجزئة

عادةً ، في مجال البيع بالتجزئة ، تُستخدم الخدمات لتقديم خدمات متنوعة للسكان - قبول المدفوعات ، وسداد القروض ، وتحويل الأموال ، وشراء البرامج ، وما إلى ذلك.

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

يمكن دمج الخدمة في برنامج البيع بالتجزئة المكتوب بلغة 1C (UT ، البيع بالتجزئة وغيرها) بطرق مختلفة:

  1. يمكن كتابة المعالجة أو الكود بلغة 1C ، والتي تقوم بجميع الأعمال مع الخدمة.
  2. يمكن استخدام برنامج يعمل مع الخدمة ، وفي 1C ينقل المعلومات فقط لكسر الشيكات.

تنظيم بيانات الخدمة في 1C

لتخزين معلومات حول المعاملة في الإيصال ، تحتاج إلى إنشاء قسم جدولي إضافي "مبيعات معقدة" مع التفاصيل التالية:

  • التسمية - ملزمة بتسمية الشيك.
  • المعلمة - رابط للكتاب المرجعي "المبيعات المعقدة: المعلمات".
  • القيمة - قيمة المعلمة ، النوع المركب. يجب أن يكون تمثيل السلسلة طويلاً جدًا (1024 حرفًا) ليلائم نص الاختيار.

يحتوي دليل "المبيعات المعقدة: المعلمات" على قائمة بمعلمات المعاملات.

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

يُمنح البائع إشارة مرجعية منفصلة (أو نموذجًا مطبوعًا ، حتى لا يغير التكوين) ، حيث يمكنه رؤية جدول تفاصيل المعاملة للشيك.

باستخدام المعالجة بلغة 1C

ضع في اعتبارك مثال خدمة Paym المشروطة لتكوين "البيع بالتجزئة".

  1. دعنا ندخل إلى 1C عنصرًا محددًا مسبقًا في الكتاب المرجعي للتسمية "Paym". في 1C: وضع المؤسسة ، بعد تحديث التكوين ، يجب تعيين نوع منتج "الخدمة" له.
  2. في الإجراء "إضافة التسمية في علامة التبويب. جزء "من وحدة نموذج" تسجيل المبيعات "، نسمي معالجة العمل مع الخدمة ، مكتوبًا في 1C. في حالة السداد الناجح ، نقوم بتدوين الشيك ونشره:
If (Nomenclature = Directories.Nomenclature.Paym) AND (نوع عملية التحويل.Operation TypesCheckKKM.Refund) ثم PaymentProcessing = Functions.GiveExternalProcessing ("Paym") ؛ PaymentForm = ProcessPayment.GetForm () ، النتيجة = PaymentForm.OpenModal () ، إذا كانت النتيجة = غير محددة ثم العودة ؛ إنهاء إذا؛ ThisObject.Write (DocumentWriteMode.Holding) ؛ إنهاء إذا؛
  1. يجب أن تطبع المعالجة فحصًا أوليًا (إذا لزم الأمر) ، وملء الجزء المجدول للمبيعات المعقدة وإعداد النص لطباعة شيك في السمة المحددة مسبقًا "PaymCheckText".
  2. في إجراء "ترحيل الشيك وطباعته" لوحدة الفحص ، نستبدل اسم المنتج بالاسم المحفوظ في تفاصيل الشيك. يتم استبدال النص فقط للبيع ، للإرجاع ، تتم طباعة اسم الخدمة فقط كالمعتاد.
ElseIf EnumerationOperationType.OperationTypesChequeKKM.Return And Selection. إذا كان DifficultSalesString غير معرّف ، فإن Product.Description = Abbr.LP (DifficultSalesString.Value) ؛ إنهاء إذا؛

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

باستخدام برامج متكاملة مع 1C

XDTO

غالبًا ما تستخدم خدمات الويب XDTO. فيما يلي أهم النصائح والوصفات لاستخدام XDTO في درجة حرارة واحدة.

XDTO في منصة 1C

تتوفر حزم XDTO الموضحة في فرع "كائنات XDTO" من التكوين لإنشاء أنواع وكائنات في المصنع العالمي XDTO Factory. هذا ليس واضحا على الفور.

بعض الأنواع في المخطط ليس لها اسم ؛ يجب أن تمر عبر التسلسل الهرمي للنوع للحصول عليها.

وصف المثال قائمة النظام ، التي تحتوي على هياكل XDTO. لإنشاء الهيكل نفسه ، كان من الضروري الحصول على نوعه بالطريقة التالية:

اكتب = Factory.Type ("urn: my.ru: MasterData: Business"، "Business"). Properties.Get ("النظام"). اكتب ؛

مشاكل متكررة مع XDTO

تنسيقات مختلفة لمخططات XSD

في بعض التنسيقات ، تسمى العلامات xs: ، في بعض xsd: ، لكن 1C تفهم كلا التنسيقين بأمان. بمجرد وجود موقف يتم فيه استيراد XSD بشكل طبيعي إلى 1C بدون أخطاء ، ولكن لم يتم إنشاء حزمة واحدة. كان السبب عدم وجود سمة الهدففي العلامة ، على التوالي ، لم تعرف 1C في أي حزمة لوضع المخطط ، لكنها لم تقدم أخطاء.

خدمة الصيانة

بالنظر إلى أن الخدمة عبارة عن مزيج من نظامين - 1C ونظام خارجي ، يمكن أن تكون الأخطاء في كلا النظامين ، مما يقلل من الموثوقية الإجمالية للعمل.

من أجل تسهيل فهم أسباب الفشل في تشغيل الخدمات ، يوصى باستخدام مجموعة من التدابير.

طلب التسجيل

الروابط

  • XDTO
    • وصف جيد لـ XDTO http://pro1c.org.ua/index.php؟showtopic=214
  • خدمات ويب مجانية مثيرة للاهتمام:
    • طيران إيروفلوت - معلومات جدول الرحلات
    • مورفير - انحراف الأسماء http://www.morpher.ru/WebServices/Morpher.aspx
  • مفكك:
    • تثبيت خدمات الويب واستخدامها
      • v8: كيفية تغيير ملف التكوين اباتشي؟
      • الإصدار 8: استمرار الموضوع مع خدمات الويب - لا يمكن الاتصال بخدمة الويب
      • الإصدار 8: أنا أزحف عبر خدمات الويب - لا يمكنني إنشاء وكيل ...
      • كتاب المعرفة: v8: استخدام خدمات الويب الخارجية في 1C: Enterprise 8؛

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

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

برنامج الدورة:

الدرس 1. استهلالي. بروتوكول SOAP

  • باختصار عن المحاضر.
  • اهداف الدورة؛
  • ما هو API و WS ولماذا هم مطلوبون ؛
  • دور اختبار API في عملية ضمان الجودة ؛
  • نظرة عامة على أدوات اختبار WS ؛
  • الطرق المستخدمة في اختبار WS ؛
  • تاريخ SOAP.
  • المصطلحات والمفاهيم الرئيسية (XML ، XSD ، نقطة النهاية ، WSDL).

الدرس الثاني: بروتوكول SOAP. هندسة REST

  • المصطلحات والمفاهيم الرئيسية (UDDI ، XSLT ، XPath ، XQuery ، طرق HTTP ، حالات HTTP) ؛
  • الهيكل والمكونات الرئيسية للصابون ؛
  • نطاق التطبيق؛
  • ميزات العمل
  • المميزات والعيوب؛
  • ميزات هندسة REST ؛
  • المصطلحات والمفاهيم الرئيسية (WADL ، RESTful ، JSON ، JSONPath) ؛
  • مبادئ REST
  • رمز الحالة والحالات الرئيسية ؛
  • أفعال CRUD
  • المميزات والعيوب.

الدرس 3. مقدمة في SoapUI. العمل مع مشروع REST

  • تثبيت جافا
  • تركيب SoapUI ؛
  • نظرة عامة على العناصر الرئيسية للواجهة ؛
  • ربط المشروع التربوي.
  • مراجعة طرق المشروع ؛
  • إرسال طلب وتحليل الرد المستلم ؛
  • فحص خدمات الويب المتاحة للمشروع ؛
  • وضع خطة اختبار ؛
  • حالات اختبار الكتابة.
  • العناصر "TestSuite" ، "TestCase" ، "TestSteps".

الدرس 4. العمل مع مشروع REST (XML)

  • كتلة "التأكيدات" ؛
  • إجراء الاختبارات على مستويات مختلفة ؛
  • عنصر "خصائص" ، السمات الرئيسية ؛
  • العمل مع الخصائص ؛
  • عنصر "نقل الملكية" ؛
  • العمل مع التأكيدات

الدرس 5. العمل مع مشروع REST (JSON)

  • الشروط والفروع.
  • العمل مع التأكيدات ؛
  • TestRunner ، ميزات العمل ؛
  • تشغيل TS ، TC من سطر الأوامر ؛
  • العمل مع عداء الاختبار ؛
  • العمل مع البرامج النصية Groovy

الدرس 6. العمل مع البرامج النصية الرائعة

  • العمل مع البيانات الثابتة والديناميكية ؛
  • نقوم بتوليد بيانات الاختبار ؛
  • نحصل على البيانات من "الخصائص" ؛
  • تسجيل البيانات ونقلها ؛
  • الشروط والفروع.
  • تأكيد البرنامج النصي.

الدرس 7. ميزات إضافية

  • ربط المكتبات الخارجية والفئات المخصصة ؛
  • خدمات وهمية
  • لماذا هناك حاجة إلى خدمات وهمية؟
  • مثال على العمل مع خدمة وهمية ؛
  • لكن ماذا عن CI؟
  • تثبيت جينكينز ؛
  • بدء مشروع على Jenkins.

استخدام أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP

على ما يبدو ، مع ظهور تقنيات ومعايير جديدة مثل XML و HTTP ، ضمنت خدمات الويب مكانها في مجمع الابتكار على الإنترنت. لكن كيف نشأ هذا الابتكار؟

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

في عام 1996 ، أعلن المعهد الوطني الأمريكي للمعايير والتكنولوجيا عن معيار EDI في منشورات معايير معالجة المعلومات الفيدرالية (FIPS PUB 161-2). وفقًا للمواصفات المنشورة ، يعد التبادل الإلكتروني للبيانات معيارًا لتبادل الرسائل المنسقة بشدة بين أجهزة الكمبيوتر. تتم معالجة الرسائل المستلمة بواسطة الكمبيوتر فقط ، وعادةً لا تكون هذه الرسائل مخصصة للتفسير البشري. هذا هو بالضبط ما تفعله خدمات الويب ، باستثناء أنه في منتصف الستينيات ، لم تكن XML ، والإنترنت ، وشبكة الويب العالمية موجودة.

بالنسبة لأولئك الذين ليسوا على دراية بخدمات الويب ، سأراجع بإيجاز التعريفات والمكونات الرئيسية لخدمات الويب.

ما هي خدمات الويب

خدمة الويب عبارة عن نظام برمجي مصمم لدعم التفاعلات من آلة إلى آلة بين موارد الحوسبة عبر شبكة ويستخدم رسائل SOAP (بروتوكول الوصول إلى كائن بسيط) التي حددها اتحاد شبكة الويب العالمية.

بروتوكول الوصول إلى الكائنات البسيط (SOAP) هو بروتوكول بسيط وقابل للتوسيع لتبادل الرسائل المنظمة والمكتوبة في بيئة شبكة لامركزية وموزعة. تتم كتابة رسائل SOAP بتنسيق لغة التوصيف الموسعة (XML) ، وهو تنسيق نص بسيط ومرن مشتق من لغة التوصيف المعممة القياسية (SGML) التي طورتها المنظمة الدولية للتوحيد القياسي (ISO 8879: 1986).

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

ماذا يحدث عندما يتم تبادل رسائل SOAP الخاطئة؟ ماذا سيحدث إذا تمت معالجة رسالة SOAP خاطئة دون سابق إنذار وحتى استخدامها لإنشاء معلومات صنع القرار؟

من الناحية العملية ، من المستحيل معرفة ما إذا كانت البيانات الموجودة في رسالة SOAP صحيحة أم لا. ومع ذلك ، يمكنك التحقق من صحة رسالة SOAP بالنظر إلى تعريف الواجهة أو WSDL.

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

يمكن منع هذه الأنواع من المشكلات مبكرًا باستخدام أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP. يسمح لك بالتحقق من صحة رسائل SOAP باستخدام لغة تعريف خدمة الويب (WSDL) قبل نشر التطبيقات التي تستخدم خدمة الويب. يقوم البرنامج بتحليل بناء الجملة وصحة رسائل SOAP الخاصة بك باستخدام WSDL ويشير إلى المشكلات عن طريق الإبلاغ عن الأخطاء وأرقام الأسطر بالتفصيل. نتيجة لذلك ، لم تعد تتلقى رسائل HTTP 500 المزعجة.هل رسائل SOAP الخاصة بك مشفرة؟ لا مشكلة. سيقوم البرنامج بفك تشفيرها والتحقق من صحة رسائل SOAP التي تم فك تشفيرها.

تم تكوين هذا البرنامج لمساعدة فريق عمل دعم IBM Web Services في حل المشكلات المتعلقة بخدمات الويب على IBM® WebSphere Application Server التي تم الإبلاغ عنها بواسطة العملاء حول العالم. تم تصميم البرنامج للتحقق من صحة رسائل SOAP. إذا كانت رسالة SOAP تحتوي على توقيع رقمي ، فسيقوم البرنامج بفحصها أيضًا. باستخدام أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP ، يمكنك حتى إرسال رسائل SOAP إلى خوادم خدمات الويب وتلقي رسائل استجابة SOAP. تم إنشاء البرنامج من أجل القضاء على المشاكل أثناء التشغيل التجاري من خلال استخدامه في المراحل الأولى من التطوير ، وكذلك من أجل تقليل الوقت اللازم لحل المشكلات التي تنشأ أثناء التشغيل.

سننشئ خدمة ويب بسيطة للغاية. سنقوم أولاً بإنشاء تطبيق Java ™ بسيط. بعد أن نقوم باختبار تطبيق Java ، نستخدم IBM Rational Application Developer لبرنامج WebSphere® لتكوين خدمة ويب. سنقوم بعد ذلك بإجراء بعض التغييرات على خدمة الويب التي تم إنشاؤها. أخيرًا ، نستخدم أداة التحقق من خدمات الويب لـ WSDL و SOAP لإنشاء رسائل SOAP والتحقق منها وإرسالها واستلامها.

يمكن تكوين خدمة ويب بسيطة باستخدام IBM Rational Application Developer لبرنامج WebSphere. يمكن إنشاء خدمات الويب بطريقتين:

  1. تطوير من أعلى إلى أسفل يتم فيه إنشاء فئات Java التي تقوم بتنفيذ خدمات الويب من WSDL.
  2. التطوير التصاعدي ، حيث يتم إنشاء خدمة الويب من وحدة برامج Java أو وحدة برامج Java الخاصة بالمؤسسة.

في المثال التالي ، سنقوم بتنفيذ خدمة ويب باستخدام طريقة التطوير التصاعدية. أولاً ، سننشئ تطبيق Java بسيطًا. سنقوم بعد ذلك بتكوين خدمة ويب Java bean من تطبيق Java باستخدام IBM Rational Application Developer لبرنامج WebSphere Software.

إنشاء تطبيق جافا

أولاً ، سننشئ تطبيق Java يصدر تحية. إذا لم يتم تقديم أي اسم ، فسيعرض التطبيق النص "مرحبًا يا صديقي!". إذا تم تقديم اسم ، فسيعرض التطبيق النص "مرحبًا" متبوعًا بهذا الاسم. يوجد أدناه رمز تطبيق DemoWebService Java الموجود في الحزمة التجريبية. تقوم طريقة hello () بإرجاع سلسلة بناءً على الاسم.

قائمة 1. DemoWebService.java
/ * * @ المؤلف: Jinwoo Hwang * حقوق الطبع والنشر 2010 لشركة IBM Corporation * / package demo ؛ فئة عامة DemoWebService (مرحبًا سلسلة عامة (اسم السلسلة) (إذا (الاسم == فارغة) إرجاع "مرحبًا ، رفيق!" ، وإلا سترجع "مرحبًا ،" + الاسم + "!" ؛))

اختبار تطبيق جافا

من المهم جدًا اختبار تطبيق Java قبل إنشاء خدمة ويب منه. لبدء تطبيق ، يمكنك كتابة فصل باستخدام طريقة main (). يمكنك أيضًا استخدام وظيفة Universal Test Client التي يوفرها IBM Rational Application Developer v7 للاختبار بسرعة دون كتابة رمز الاختبار. ما عليك سوى تحديد Universal Test Client من قائمة السياق الخاصة بفئة Java لتشغيل عميل الاختبار.

  1. في Universal Test Client ، قم بتوسيع كائنات> DemoWebService.
  2. اختر الطريقة مرحبًا.
  3. أدخل سلسلة أو اسمك في الحقل قيمةواضغط على الزر يستحضر.

يمكنك أيضًا الاختبار باستخدام المعلمة الفارغة ومعرفة ما سيحدث. إذا تم تمرير القيمة null إلى طريقة hello () ، يتم إرجاع السلسلة "Hello، buddy!" كما هو متوقع.


إنشاء خدمة ويب

حتى الآن كل شيء يعمل بشكل جيد. لنبدأ في إنشاء خدمة ويب من فئة Java باستخدام طريقة تطوير خدمة الويب التصاعدية.

  1. حدد تطبيق Java DemoWebService وأنشئ خدمة ويب جديدة من IBM Rational Application Developer.

  1. نظرًا لأننا أنشأنا فئة Java ، حدد من أسفل إلى أعلى Java bean Web serviceفي قائمة نوع خدمة الويب. يختار بدء العميلواضغط على الزر ينهي. إذا كان لدينا فئة EJB ، فيمكننا أيضًا كتابة EJB (وحدة برامج Java Enterprise) لإنشاء خدمة ويب.

إذا سارت الأمور على ما يرام ، فسترى DemoWebServiceDelegate.java الذي تم إنشاؤه في Java Resources بجوار DemoWebService.java.


عند البحث في DemoWebServiceDelegate.java ، يمكنك العثور على التعليق التوضيحي لخدمة Java Web @ javax.jws.WebService الذي يحدد targetNamespace و serviceName و portName في فئة DemoWebServiceDelegate. يتم إنشاء مثيل DemoWebService ويتم إنشاء طريقة hello () أخرى من طريقة hello () الخاصة بـ DemoWebService. إذا كنت ترغب في معرفة المزيد حول التعليقات التوضيحية لخدمة Java Web ، فراجع Java Specification Request (JSR) 181 ، Web Services Metadata لمنصة Java Platform.

القائمة 2. DemoWebServiceDelegate.java
/ * * @ المؤلف: Jinwoo Hwang * حقوق الطبع والنشر 2010 لشركة IBM Corporation * / package demo ؛ @ javax. اسم السلسلة) (إرجاع _demoWebService.hello (الاسم) ؛))

إنشاء WSDL

في مشروع برنامج عميل ، قد تجد أيضًا أنه تم إنشاء ملفات DemoWebServiceService.wsdl و DemoWebService_schema1.xsd. يحتوي DemoWebServiceService.wsdl على معلومات في لغة تعريف خدمة الويب التي تصف خدمات الشبكة لتطبيق Java الذي أنشأته مسبقًا. يحتوي DemoWebServiceService_schema1.xsd على مخطط XML يصف بنية أنواع البيانات المستخدمة في رسائل SOAP.


عند النظر إلى ملف DemoWebServiceService.wsdl ، يمكنك أن ترى أنه يحتوي على مجموعة من عناصر التعريفات في جذره. هناك 6 عناصر في عنصر التعريفات:

  • أنواع (أنواع) ؛
  • رسالة (رسالة) ؛
  • portType (نوع المنفذ) ؛
  • ملزم (ملزم) ؛
  • الخدمة (الخدمة) ؛
  • المنفذ (المنفذ).

أنواعيحدد أنواع البيانات المستخدمة في تبادل الرسائل. في DemoWebServiceService.wsdl ، نقوم باستيراد DemoWebServiceService_schema1.xsd بدلاً من تحديد أنواع البيانات في ملف WSDL.

رسالةيحدد الرسائل التي سيتم تبادلها. لدينا رسالتان: "hello" و "helloResponse". تحتوي رسالة الترحيب على جزء يسمى "معلمات". يحتوي هذا الجزء على عنصر "tns: hello". تحتوي رسالة helloResponse على جزء يسمى "المعلمات" وهو نفس عنصر hello. يحتوي هذا الجزء على عنصر "tns: helloResponse". يتم تعريف عنصري hello و helloResponse في ملف DemoWebServiceService_schema1.xsd. سوف نقوم بمراجعتها قريبا.

نوع المنفذ- العمليات التي تدعمها نقاط النهاية. توفر كل عملية رسالة إدخال وإخراج. تتكون عملية "hello" الخاصة بنا من رسالة الإدخال "tns: hello" ورسالة الإخراج "tns: helloResponse". تتوافق هذه العمليات مع تبادل الطلب والاستجابة. يوفر WSDL 4 أساسيات مختلفة لتبادل نقاط النهاية:

  • اتجاه واحد (أحادي الاتجاه) ؛
  • استجابة الطلب (استجابة الطلب) ؛
  • التماس الاستجابة (استجابة الطلب) ؛
  • الإخطار (الإخطار).

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

ربطيحدد تفاصيل البروتوكول ومواصفات تنسيق الرسالة للعمليات والرسائل المحددة بواسطة نوع المنفذ. بالنسبة لسمة النمط ، نستخدم مستند القيمة. توفر سمة النمط نمطين مختلفين للرسالة: rpc و document. في نمط rpc ، تحتوي الرسائل على معلمات وقيم إرجاع. في نمط المستند ، تحتوي الرسائل على مستندات. تحدد سمة النقل URI لنقل SOAP. تعني القيمة المحددة http://schemas.xmlsoap.org/soap/http أن مواصفات SOAP ستستخدم ربط HTTP. تم تحديد URI لرأس SOAPAction HTTP لربط SOAP HTTP في السمة soapAction. نظرًا لاستخدام ربط SOAP HTTP ، فإن قيمة السمة soapAction مطلوبة. بالنسبة إلى السمة soapAction ، نستخدم السلسلة الفارغة "". يحدد عنصر الصابون: الجسم كيفية تجميع أجزاء الرسالة داخل عنصر نص رسالة SOAP. توفر سمة الاستخدام خيارين مختلفين: حرفي (حرفي) ومشفّر (مشفر). نحن نستخدم الحرفية. هذا يعني أننا اخترنا تعريف مخطط معين باستخدام إما سمة النوع أو العنصر. يستخدم المتغير المشفر نوعًا مجردًا بقواعد تشفير.

خدمةيحدد مجموعة المنافذ المراد استخدامها.

ميناءيحدد نقطة نهاية الاتصال عن طريق تحديد عنوان الشبكة للالتزام به.

عنوان الشبكة للربط. في حالتنا ، عنوان نقطة نهاية SOAP هو http: // localhost: 9081 / HelloWorldWSProject / DemoWebServiceService.

القائمة 3. DemoWebServiceService.wsdl

إنشاء المخطط

نقوم باستيراد DemoWebServiceService_schema1.xsd من DemoWebServiceService.wsdl. خذ بعين الاعتبار ملف DemoWebServiceService_schema1.xsd. هو مكتوب بلغة تعريف مخطط XML لوصف هيكل وقيود محتوى مستندات XML. لدينا عنصرين: hello and helloResponse. كل عنصر له نوع. نوع hello يحتوي على عنصر "arg0" وهو عبارة عن سلسلة نصية. عنصر "arg0" اختياري لأن قيمة سمة minOccurs في تعريفه هي 0. إذا تم تعيين سمة minOccurs على 1 أو أكبر ، فيجب تحديد العنصر. الشيء نفسه ينطبق على عنصر "العودة" في نوع helloResponse.

القائمة 4. DemoWebServiceService_schema1.xsd

الشروع في استخدام أداة التحقق من خدمات الويب لـ WSDL و SOAP

لذلك قمنا بتغطية WSDL والمخطط. لنبدأ خادم خدمات الويب حتى نتمكن من استدعاء خدمة الويب من أداة التحقق من خدمات الويب لـ WSDL و SOAP.

لتشغيل أداة التحقق من خدمات الويب لـ WSDL و SOAP ، فأنت بحاجة إلى بيئة وقت تشغيل Java 6 (أو أعلى) وواجهات برمجة التطبيقات لرقمنة وفك تشفير XML التي تتوافق مع مواصفات اتحاد شبكة الويب العالمية "XML Encryption Syntax والمعالجة" (http: // www. w3.org/TR/xmlenc-core/).

يوفر IBM Java 6 تنفيذ JSR 106: واجهات برمجة تطبيقات التشفير الرقمي XML. إذا كان لديك IBM Java 6 مثبتًا ، فأنت جاهز للبدء ولا تحتاج إلى تثبيت أي شيء آخر.

إذا كانت بيئة وقت تشغيل Java 6 ، مثل Sun Microsystems ™ Java 6 ، لا تحتوي على واجهات برمجة تطبيقات تشفير رقمي XML ، فيجب عليك تثبيت المكتبات التي تطبق JSR 106 أو حزمة Apache ™ XML Security الإصدار 1.4.3 ، والتي يمكن تنزيلها من http: / /santuario.apache.org/. ما عليك سوى تنزيل التوزيع الثنائي ، وفك ضغطه في دليل ، وإخبار الأداة بالمكان الذي يستخدم فيه هذا الدليل خياري سطر الأوامر -vmargs و -DAXS.

في وقت كتابة هذا التقرير ، كانت أداة التحقق من خدمات الويب لـ WSDL و SOAP تدعم JSR 106 و Apache XML Security الإصدار 1.4.3 للتشفير الرقمي وفك تشفير XML. إذا كنت تريد التحقق من التواقيع الرقمية في رسائل SOAP ، فأنت بحاجة إلى مكتبات تقوم بتطبيق JSR 105: XML Digital Signature APIs. لحسن الحظ ، توفر أجهزة Java 6 الافتراضية من Sun Microsystems و IBM تطبيقات JSR 105. ولهذا السبب تم اختيار Java 6 كحد أدنى لمتطلبات بيئة وقت تشغيل Java. إذا كانت بيئة Java 6 الخاصة بك لا توفر مكتبات تنفذ JSR 105 ، فأنت بحاجة إلى العثور عليها.

يمكن تنزيل أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP هنا مجانًا. تركيبه بسيط جدا. قم بفك ضغط الحزمة في دليل وتشغيل wsvt.exe. إذا لم تكن Java Virtual Machine الافتراضية الخاصة بك عبارة عن بيئة Java 6 تدعم التوقيعات الرقمية لـ XML والتشفير الرقمي وفك التشفير ، فيجب عليك تحديد موقع Java 6 باستخدام الخيار -vm ، على سبيل المثال:

wsvt -vm c: \ IBMjava6 \ bin \ java.exe

مرة أخرى ، إذا كان لديك IBM Java 6 ، فلن تحتاج إلى تثبيت أي شيء آخر. كل ما تحتاجه موجود بالفعل في IBM Java 6. عند استخدام Java 6 من Sun Microsystems ، تحتاج إلى إخبار البرنامج بموقع Apache XML Security لفك تشفير رسائل SOAP المشفرة.

على سبيل المثال ، سوف يقوم الأمر التالي بتشغيل برنامج مع إصدار مكتبة Sun Java 6 و Apache XML Security الإصدار 1.4.3 الموجود في دليل C: \ xml-security-1_4_3 \ libs:

wsvt –vm c: \ SUNjava6 \ bin \ java.exe –vmargs –DAXS = C: \ xml-security-1_4_3 \ libs

فيما يلي قائمة بملفات مكتبة أمان Apache XML المستخدمة بالفعل بواسطة Web Services Validation Tool لـ WSDL و SOAP ، على الرغم من أن إصدار أمان Apache XML 1.4.3 يأتي مع 9 عبوات:
commons-logging.jar ؛
المسلسل.
xalan.jar ؛
xmlsec-1.4.3.jar.

يحتوي ملف MANIFEST.MF الخاص بأداة التحقق من صحة خدمات الويب لـ WSDL و SOAP على المعلومات التالية:
تفعيل الحزمةكسول
مسار فئة الحزمة: .,
خارجي: $ AXS $ / commons-logging.jar ،
خارجي: $ AXS $ / serializer.jar ،
خارجي: $ AXS $ / xalan.jar ،
خارجي: $ AXS $ / xmlsec-1.4.3.jar

لهذا كان من الضروري تحديد --vmargs --DAXS = C: \ xml-security-1_4_3 \ libs لكي يقوم Sun Java 6 بفك تشفير رسائل SOAP المشفرة.

لقد أمضيت وقتًا طويلاً في استكشاف تعارضات تحميل الفئات وعدم التوافق بين الفئات المرتبطة بـ XML الموجودة في Sun Java Runtime Environment و Apache XML Security وبعض ملحقات Eclipse. كان إعداد بيئة تشغيل IBM Java أمرًا سهلاً لأنه يأتي مع تطبيق JSR 106 ولا يتطلب Apache XML Security.

أنشئ مشروعًا

الآن بعد أن قمت بإعداد وتشغيل الأداة ، يمكنك إنشاء مشروع جديد. يمكن أن يحتوي المشروع على ملف WSDL وملفات مخطط متعددة مرتبطة بملف WSDL ورسائل SOAP في ملفات XML. إذا كان المشروع يحتوي على ملفات WSDL متعددة ، فسيتم استخدام واحد منهم فقط ويتم تجاهل الملفات الأخرى عند التحقق من ملف XML الخاص برسالة SOAP. لاستخدام ملف WSDL مختلف ، يجب إنشاء مشروع منفصل. يجب تضمين كل رسالة SOAP في ملف بامتداد .xml ، وإلا فلن يتم التعامل معها كرسالة SOAP.

  1. انقر بزر الماوس الأيمن واختر جديد> مشروع.

  1. يختار مشروعالخامس عام.

  1. أدخل "Test Project" في الحقل اسم المشروعواضغط على الزر ينهي.

استيراد WSDL والمخطط

لقد أنشأنا "مشروع تجريبي". الآن يمكنك استيراد WSDL و XSD فيه.

  1. حدد المشروع ثم اختر من قائمة السياق يستورد.

  1. يختار نظام الملفاتالخامس عام.

  1. حدد الدليل حيث يتم تخزين WSDL و XSD.
  2. حدد ملفين (DemoWebServiceService.wsdl و DemoWebServiceService_schema1.xsd) وانقر فوق الزر ينهي.

نظرة عامة على WSDL والمخططات

الآن لدينا مشروع مع WSDL و XSD. يمكنك النقر نقرًا مزدوجًا فوق زر الماوس الأيسر على WSDL لعرض WSDL في وضع التصميم ووضع المصدر. في وضع التصميم ، يمكنك تقديم خدمة ويب مع المدخلات والمخرجات.


في وضع المصدر ، يمكنك عرض وتحرير WSDL في محرر نصوص.


إذا تعذر فتح ملفات XSD في محرر XSD ، فيمكن فتحها في محرر XML عن طريق تحديد افتح باستخدام> محرر XMLفي قائمة السياق لملف XSD هذا.


لقد فتحنا DemoWebServiceService_schema1.xsd في محرر XML.


إنشاء رسالة SOAP

لذلك لدينا WSDL والمخطط جاهزين للتحقق من صحة رسائل SOAP. لنبدأ في اختبار أداة التحقق من خدمات الويب لـ WSDL و SOAP برسالة SOAP. تحتاج إلى تضمين رسالة SOAP في المشروع. يجب تضمين رسالة SOAP في ملف بامتداد .xml حتى يمكن التحقق من صحتها.

  1. يختار جديد> XMLلإنشاء رسالة SOAP في المشروع.

  1. يختار مشروع تجريبيللمجلد الأصل لرسالة SOAP الجديدة. إذا لم يتم تحديد الملف بالفعل ، أدخل "DemoSOAPMessage.xml" في الحقل اسم الملفواضغط على الزر ينهي.

يقوم البرنامج تلقائيًا باستدعاء محرر XML بملف XML الجديد. لا يحتوي إلا على سلسلة بإصدار xml والتشفير. من الجيد أن يكون لدينا شيء ما على الأقل قبل أن نبدأ في إنشاء رسالة SOAP من البداية. هل تعرف كيف تؤلف رسالة SOAP؟ لا تقلق. في القسم التالي ، سنتعرف على خطوات إنشائه.


لإنشاء رسالة SOAP ، يمكنك استدعاء خدمة "hello" باستخدام معلمة "parameters" مع اسمي - "Jinwoo". بالطبع ، يمكنك استخدام اسمك الخاص. يتم استخدام مساحة الاسم http: // demo /. كن حذرًا - تتم تهجئتها كـ http: // demo / ، وليس http: // demo ، وهذا ضروري.

القائمة 5. HelloWorldSOAPmessage.xml
جينوو

هل ترى مشاكل في رسالة SOAP هذه؟ إذا كانت الإجابة بنعم ، فلا تقلق. سنتعامل مع هذا لاحقًا.


إرسال رسالة SOAP

هل أنت جاهز لإرسال رسالة إلى خادم خدمات الويب؟

  1. حدد رسالة SOAP وحدد

  1. في نافذة إرسال طلب SOAP وتلقي استجابة SOAP ، يمكنك ملء عنوان الخدمة, الصابونو نوع المحتوى. في هذا التطبيق ، لا نحتاج إلى تحديد SOAPAction لأننا استخدمنا السلسلة الفارغة "" لسمة SoapAction في قسم الربط لملف DemoWebServiceService.wsdl.
  2. أدخل http: // localhost: 9081 / HelloWorldWSProject / DemoWebServiceService في الحقل عنوان الخدمةإذا كان الخادم يعمل على الجهاز المحلي على المنفذ المحلي المضيف: 9081. خلاف ذلك ، يجب عليك إدخال العنوان الحقيقي حيث تتوفر خدمة الويب.
  3. يختار نص / htmlللميدان نوع المحتوى.
  4. انقر فوق الزر نعملإرسال رسالة SOAP إلى الخادم.

تلقي رسالة SOAP

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


التحقق من صحة رسالة SOAP

عظيم! لقد قبلنا استجابة SOAP. يتم حفظها أيضًا في المشروع. لكن انتظر. هل ترى أن هناك خطأ ما؟ لقد حصلنا على "مرحبًا يا صديقي!" بدلاً من "Hello، Jinwoo!". هناك خطأ ما؟ ليس لدي فكرة؟

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

تساعدك أداة التحقق من خدمات الويب لـ WSDL و SOAP على تحديد الخطأ الذي يحدث.

قائمة 6. الجواب
مرحبا يا صديقي!
  1. حدد رسالة استجابة SOAP وانقر فوق الزر تحقق.

عثرت أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP على خطأ في رسالة SOAP.

رسالة SOAP غير صالحة: cvc-complex-type.2.4.a: تم العثور على محتوى غير صالح بدءًا من "معلمات" العنصر. يتوقع أحد "(arg0).

تحرير رسالة SOAP

  1. يشكو البرنامج من قيمة "المعلمات". قم بتغييره إلى arg0 وحفظه.
قائمة 7. رسالة SOAP المعدلة
جينوو
  1. تحقق من صحة رسالة استجابة SOAP المعدلة. لا تظهر المزيد من رسائل الخطأ.

  1. نحن الآن جاهزون لإرسال رسالة الرد المعدلة إلى الخادم. حدد رسالة SOAP ثم حدد إرسال طلب SOAP وتلقي استجابة SOAP.

  1. في نافذة إرسال طلب SOAP وتلقي استجابة SOAP ، أدخل http: // localhost: 9081 / HelloWorldWSProject / DemoWebServiceService في الحقل عنوان الخدمةإذا كان الخادم يعمل على المضيف المحلي للمنفذ: 9081.
  2. يختار نص / htmlللميدان نوع المحتوىواضغط على الزر نعم.

هذه المرة ، كما هو متوقع ، تأتي الإجابة الصحيحة.


القائمة 8. استجابة SOAP
مرحبًا Jinwoo!

الكشف عن مساحة الاسم الخاطئة

ماذا يحدث إذا أرسلت رسالة باستخدام مساحة اسم خاطئة؟

  1. قم بتغيير مساحة الاسم إلى http: // demo2 / واحفظ الرسالة.

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

سترى IOException: قام الخادم بإرجاع رمز استجابة HTTP: 500 لـ URI: http: // localhost: 9081 / HelloWorldWSProject / DemoWebServiceService.


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


يقول البرنامج: "رسالة SOAP غير صالحة: cvc-complex-type.2.4.a: تم العثور على محتوى غير صالح بدءًا من العنصر 'ns0: hello". أحد "(" http: // demo / ": hello،" http: // demo / ": helloResponse)" متوقع ".

تشير هذه الرسالة إلى أن http: // demo / متوقع. هذا ، وليس رمز استجابة HTTP 500 ، هو ما نحتاج إلى معرفته.


التحقق من صحة رسائل SOAP المشفرة

ماذا لو تم تشفير رسائل SOAP الخاصة بك؟ لا مشكلة إذا كان لديك مفاتيح وكلمات مرور. ما عليك سوى اختيار رسالة SOAP و تحققبنفس الطريقة التي يتم بها مع أي رسائل SOAP عادية أخرى. إذا كانت رسالة SOAP الخاصة بك مشفرة ، فستظهر على الشاشة مطالبة مشابهة لتلك الموضحة في الشكل 35.


في وقت كتابة هذا التقرير ، تم دعم 3 أنواع من ملفات تخزين المفاتيح (keystore):

  1. جافا كي ستور (JKS).
  2. Java Cryptography Extension Key Store (JCEKS).
  3. معيار بناء جملة تبادل المعلومات الشخصية (معايير تشفير المفتاح العام رقم 12).

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


إذا كانت جميع المعلومات صحيحة ، فسيقوم البرنامج بإنشاء رسالة SOAP تم فك تشفيرها والتحقق مما إذا كانت صحيحة.


خوارزميات التشفير التالية مدعومة حاليًا:

  • معيار التشفير المتقدم (AES) في وضع Cipher Block Chaining (CBC) مع متجه التهيئة (128/192/256 بت).
  • معيار التشفير المتقدم (AES) مفتاح التشفير (128/192/256 بت).
  • أنماط تشغيل خوارزمية تشفير البيانات الثلاثية (Triple-DES).
  • أنماط تشغيل خوارزمية تشفير البيانات الثلاثية (Triple-DES) تشفير المفتاح في وضع تسلسل كتلة التشفير (CBC).
  • مواصفات تشفير RSA الإصدار 1.5.
  • حشوة التشفير غير المتماثل الأمثل RSA (OAEP) هي طريقة ذات وظيفة توليد القناع.

التحقق من صحة رسائل SOAP الموقعة رقميًا

ماذا لو كانت رسالة SOAP الخاصة بك موقعة رقمياً؟ ما عليك سوى تحديد رسالة SOAP ثم تحديد التحقق من صحة التوقيع الرقمي لرسالة SOAP.


إذا كان التوقيع الرقمي صحيحًا ، فسترى الشاشة التالية:


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

  • خوارزمية التجزئة الآمنة 1 (SHA-1)
  • رمز مصادقة رسالة التجزئة (HMAC)
  • خوارزمية التوقيع الرقمي (DSA)
  • معايير تشفير المفتاح العام (PKCS # 1)
  • خوارزمية تشفير RSA مع خوارزمية تجزئة آمنة (SHA-1)
  • نسخة XML الأساسية 1.0 و 1.1
  • XSL Transformations (XSLT) الإصدار 1.0
  • لغة مسار XML (XPath) الإصدار 1.0
  • Base64

الوصول إلى خدمة الطقس الوطنية الأمريكية باستخدام رسالة SOAP

تعمل خدمة الويب البسيطة التي أنشأناها واختبرناها بشكل جيد. هل يمكن استخدام هذا البرنامج في بيئة "حقيقية"؟ يمكنك محاولة العمل مع خدمة الويب الحقيقية لمكتب الطقس القومي الأمريكي التي تقدمها الولايات المتحدة. الإدارة الوطنية للمحيطات والغلاف الجوي (NOAA).

  1. أنشئ مشروعًا.

  1. قم بتكوين رسالة SOAP XML.


يوفر مكتب الطقس القومي الأمريكي العديد من خدمات الويب المختلفة. يمكنك محاولة العمل مع خدمة NDFDgenByDay ، التي توفر تنبؤات بالطقس لنقطة ذات خط عرض وخط طول معينين.

للوصول إلى NDFDgenByDay ، يجب عليك تقديم المعلومات التالية:

الجدول 1. NDFDgenByDay
اسم الخدمة (اسم الخدمة)NDFDgenByDay
نقطة النهاية (نقطة النهاية)http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php
SoapAction (عمل SOAP)http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl#NDFDgenByDay
encodingStyle (نمط الترميز)http://schemas.xmlsoap.org/soap/encoding/
Namespace (مساحة الاسم)http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl
خط العرض (خط العرض)عدد عشري
خط الطول (خط الطول)عدد عشري
تاريخ البدء (تاريخ البدء)تاريخ
numDays (عدد الأيام)عدد صحيح
شكل (تنسيق)خط

في هذا المثال ، نريد إنشاء طلب SOAP للحصول على توقعات أسبوعية لموقع بإحداثيات (LAT38.9 ، LON-77.01) بدءًا من 2010-07-23 بتنسيق 24 ساعة:

قائمة 10. طلب ​​SOAP
38.99 -77.01 2010-07-23 7 24 ساعة

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


حدد رسالة و إرسال طلب SOAP وتلقي استجابة SOAPفي أداة التحقق من صحة خدمات الويب لـ WSDL و SOAP.

الجدول 2. طلب ​​المعلومات
اسممعنى
نقطة النهاية (نقطة النهاية)http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php
SoapAction (عمل SOAP)http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl#NDFDgenByDay
نوع المحتوى (نوع المحتوى)نص / xml ؛ محارف = utf-8

الآن أصبحت بيانات التنبؤ أسهل في القراءة.


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

خاتمة

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

في السنوات الأخيرة ، ازداد استخدام API والاعتماد على خدمات الويب. فيما يلي قائمة بـ 12 أداة لاختبار خدمة الويب والتي ستساعدك كثيرًا.

على مدى السنوات القليلة الماضية ، زادت شعبية واستخدام خدمات الويب أو واجهات برمجة التطبيقات. خدمة الويب أو واجهة برمجة التطبيقات عبارة عن مجموعة من الإجراءات أو مكونات البرامج التي تساعد التطبيق على التفاعل أو تنفيذ بعض العمليات / المعاملات من خلال تكوين اتصال بين تطبيق أو خادم آخر. يوجد نوعان أساسيان من خدمات الويب: REST و SOAP لنقل البيانات والمعلومات عبر بروتوكول الإنترنت.

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

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

ستجد هنا 12 أداة اختبار خدمة ويب رائعة يجب مراعاتها لمتطلبات اختبار API أو خدمة الويب:

SoapUI

SoapUI هي أداة اختبار عبر الأنظمة الأساسية مفتوحة المصدر. يمكنه أتمتة الاختبار الوظيفي والانحدار والاتساق والتحميل لكل من خدمات SOAP و REST. إنه سهل الاستخدام ويدعم التقنيات والمعايير المتقدمة لنمذجة وتحريض سلوك خدمات الويب.

دلائل الميزات:

  • يوفر طباعة وتصدير وتقارير HTML على مستوى Project أو TestSuite أو TestCase أو LoadTest.
  • القدرة على التفاعل مع Hudson و Bamboo و Maven و ANT و JUnit.
  • يسمح لك بتطوير مجموعة الميزات الخاصة بك في شكل ملحقات SoapUI.
  • يسجل ويرصد ويعرض جميع البيانات.
  • يدعم فك تشفير WS-Security و SSL.

اختبار

تعتبر TestingWhiz أداة أتمتة اختبار "بدون تشفير" متوافقة مع واجهات برمجة التطبيقات / خدمات الويب. يسمح لك بإجراء اختبار وظيفي وتوافق وتحميل والعمل مع خدمات الويب REST و SOAP من خلال واجهة WSDL عبر HTTP و FTP.

دلائل الميزات:

  • يدعم مقارنة السلسلة للتحقق من صحة استجابة API.
  • يساعد في العثور على عيوب واجهة برمجة التطبيقات باستخدام أدوات تتبع الأخطاء المدمجة مثل JIRA و Mantis و Fogbugz.
  • يولد سجلات مرئية وتقارير الاختبار عبر البريد الإلكتروني.
  • يوفر تكاملًا مستمرًا مع Jenkins و Bamboo & Hudson.
  • يدعم الاختبار على أساس البيانات والكلمات الرئيسية.

الصابون

يوفر SOAPSonar اختبارًا شاملاً لخدمة الويب لـ HTML و XML و SOAP و REST و JSON. يوفر اختبارًا وظيفيًا واختبار الأداء واختبار التوافق واختبار الأمان باستخدام معايير OASIS و W3C.

دلائل الميزات:

  • يدعم اختبار الضعف مع طفرة XSD.
  • يوفر تحليل شامل لـ WSDL و Schema.
  • يقوم بإجراء اختبار الحمل بمحاكاة السلوك وعمليات التحميل المتعددة المتزامنة.
  • يوفر تقارير بتنسيقات XML و DOC و XLS و PDF و RTF و RPT.
  • يتعاون مع HP Quality Center.

SOAtest

SOAtest هي أداة لاختبار والتحقق من واجهات برمجة التطبيقات والتطبيقات التي تعتمد على واجهة برمجة التطبيقات. يوفر دعمًا قويًا للكتلة الوظيفية والتكامل والأمان والمحاكاة واختبار الحمل باستخدام تقنيات مثل REST و JSON و MQ و JMS و TIBCO و HTTP و XML.

دلائل الميزات:

  • يوفر اختبارًا شاملاً
  • يدعم أكثر من 120 نوعًا من البروتوكولات / الرسائل.
  • يأتي بواجهة سهلة الاستخدام.
  • يساعد على إنشاء اختبارات معقدة وقابلة للتوسيع وقابلة لإعادة الاستخدام بدون تشفير.
  • يدعم اختبار التكامل المستمر

صانع الاختبار

TestMaker هي أداة مفتوحة المصدر لاختبار ومراقبة أداء خدمات الويب وتطبيقات SOA باستخدام PushtoTest. إنه يعمل على جايثون (مكتوبة بلغة بايثون جافا). يمكن لـ TestMaker إعادة توظيف اختبارات السيلينيوم أو اختبارات SoapUI أو اختبارات Sahi أو أي اختبارات مكتوبة بلغة Groovy و Java و Python و PHP و Ruby و Perl في اختبارات التحميل الوظيفية.

دلائل الميزات:

  • يستخدم موجه سطر الأوامر للوظائف والتحميل واختبار الأداء.
  • شكل وإحساس بديهي مع IDE قياسي متعدد النوافذ.
  • يوفر لوحة تحكم لإجراء الاختبارات وعرض النتائج في الوقت الفعلي.
  • يسمح بالوصول إلى جميع مكتبات Java وفصول لغة Jython.

ساعي البريد

Postman هي أداة أخرى لاختبار خدمات الويب / API لديها دعم قوي لعميل HTTP. يحتوي على أداة إنشاء استعلام سهلة الاستخدام تتيح لك كتابة حالات الاختبار وإدارة بيانات الاستجابة ووقت الاستجابة من أجل الاختبار الفعال وإدارة حالة اختبار API.

دلائل الميزات:

  • يسمح بتنظيم واجهات برمجة التطبيقات في وظائف تسمى إنشاءات Postman.
  • يسهل التعاون ومشاركة بيانات API وعناصر التحكم.
  • يسمح لك بكتابة اختبارات المنطق في واجهة Postman.

vRest

VRest هي أداة مصممة لاختبار واختبار REST APIS وخدمات الويب. كما يدعم اختبار تطبيقات الويب والجوال وسطح المكتب التي تتفاعل مع واجهات برمجة التطبيقات أو خدمات HTTP.

دلائل الميزات:

  • لديه وظائف خادم وهمية لإنشاء واجهة برمجة تطبيقات وهمية في دقائق.
  • يوجد امتداد Chrome لتسجيل حالات الاختبار وتشغيلها.
  • يدعم تكامل Jenkins لوقت تشغيل الخادم و Jira لتتبع الأخطاء.
  • يجعل من السهل إدارة الأذونات.
  • يسمح لك بتصدير واستيراد حالات الاختبار والتقارير من الأدوات الخارجية مثل Postman Collections و Swagger 2.

httpmaster

HttpMaster هي أداة حصرية أخرى لاختبار خدمات الويب REST. يساعد المختبرين في اختبار سلوك واجهة برمجة تطبيقات REST والتحقق من صحة المخرجات بتنسيقات مثل XML و JSON و HTML. باستخدام أداة HTTP عامة ، يساعد HttpMaster أيضًا نشاط عميل نموذج المطور وسلوك استجابة تطبيق API.

دلائل الميزات:

  • يتميز بواجهة مستخدم سهلة الاستخدام وأنيقة لا تتطلب مهارات تقنية متقدمة.
  • يستخدم طرق HTTP مثل GET و POST و DELETE وما إلى ذلك.
  • يوفر أنواعًا وتعبيرات مختلفة لاختبارها لتسهيل الاختبار.
  • يستخدم واجهة سطر الأوامر لإنشاء اختبار وتشغيله.
  • يسمح لك بتخزين جميع المعلومات - مكالمات API وبيانات المشروع في مكان واحد.

رانسكوب

Runscope هي أداة بسيطة لاختبار ومراقبة أداء API. يدعم Runscope أيضًا اختبار واجهات برمجة التطبيقات وخلفيات تطبيقات الأجهزة المحمولة.

دلائل الميزات:

  • يسمح لك بإنشاء اختبارات ببيانات ديناميكية ، حتى للحالات المعقدة.
  • يعرض المقاييس والتحليلات لتحديد المشكلات.
  • يعمل مع أدوات مثل HipChat و Webhooks و Slack و PagerDuty لإشعار فشل واجهة برمجة التطبيقات.
  • يسمح لك بإعادة استخدام الاختبارات وتشغيلها في مواقع متعددة.
  • يسهل إدارة الاختبار المركزية لتحسين التعاون.

اغتصاب

Rapise هي أداة أتمتة قوية ذات ميزات قوية وقابلة للتوسيع. يعتمد على بنية مفتوحة ومرنة للاختبار الوظيفي السريع لخدمات الويب REST / SOAP. يوفر Rapise أيضًا دعمًا لاختبار تطبيقات الويب التي تم إنشاؤها باستخدام Java و .NET و Ajax و Silverlight و Flash.

دلائل الميزات:

  • يستخدم طرق HTTP القياسية مثل POST و GET و PUT و DELETE.
  • يسمح لك بتخزين الطلبات النموذجية مقابل خدمة ويب معينة.
  • يحتوي على منشئ تعريف REST ومكتبة كائنات مضمنة.
  • لديه قدرات قوية في إعداد التقارير.
  • يدعم الاختبار عبر المتصفح والتنفيذ المتوازي.

webinject

WebInject هي أداة مجانية للاختبار الآلي والقبول والانحدار لخدمات الويب. إنها أداة سطر أوامر وتستند إلى Perl ، مما يسهل إجراء الاختبارات لأنك لست مضطرًا لقضاء الوقت في سطر الأوامر. أيضًا ، لا يحتوي على واجهة IDE ، مما يعني أن الاختبارات مكتوبة خارج واجهة مستخدم WebInject. يمكن أن تعمل على منصات مع مترجم Perl.

دلائل الميزات:

  • يوفر عرضًا للنتائج في الوقت الفعلي.
  • يتحكم في وقت استجابة النظام.
  • يدعم الاستخدامات المختلفة - منصة اختبار كاملة وجهاز اختبار مستقل.
  • ينشئ تقارير بتنسيقات HTML و XML.
  • يسمح بالتكامل مع نظام آخر كمكون إضافي للمراقبة الخارجية.

عاصفة

أخيرًا ، Storm هي أداة أخرى مفتوحة المصدر من CodePlex لاختبار خدمات الويب المكتوبة بلغة Java أو .NET. يدعم حاليًا خدمة الويب SOAP فقط.

دلائل الميزات:

  • يسمح لك باختبار خدمات ويب متعددة من واجهة مستخدم واحدة.
  • يساعد في تحرير طلبات SOAP الخام.
  • يسمح لك بالإشارة إلى أساليب خدمة الويب التي تحتوي على أنواع بيانات معقدة.
  • يدعم اختبار تطبيقات WCF.

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

سجل الآن أو احجز استشارة مجانية!