المقدمة
يوضح هذا المستند كيفية إنشاء طلب واجهة برمجة تطبيقات SoapUI (API) وكيفية إنشاء حالة إختبار SOAPui التي تقوم بتكرار خطوات الاختبار التي تقوم بأتمتة طلبات API إلى مجموعة نهج الكم (QPS).
تقوم حالة إختبار soapUI في هذه المقالة بتنفيذ خطوات إختبار تقرأ ملف معرفات المشترك ثم تقوم بإنشاء وإرسال استعلام SubscriberRequst إلى QPS.
إنشاء مشروع SoapUI
قبل بدء هذا الإجراء، قم بتثبيت تطبيق soapUI على سطح المكتب. يمكنك تنزيل ملف تثبيت SOAPui القابل للتنفيذ من www.soapui.org.
قبل إنشاء طلب واجهة برمجة تطبيقات أو "حالة إختبار"، يجب أولا إنشاء مشروع soapUI. تحتاج إلى ملف لغة وصف خدمات الويب (WSDL) وملف وصف مخطط XML (XSD) لإنشاء المشروع. يحدد WSDL واجهات برمجة التطبيقات (API) المدعومة. أنت يستطيع عادة حصلت ال WSDL و XSD من ال QPS عندما أنت تشغل هذا أمر من التحميل موازن (LB):
- على العنوان http://lbvip01:8080/ua/wsdl/UnifiedApi.wsdl
- على العنوان http://lbvip01:8080/ua/wsdl/UnifiedApi.xsd
قم بتخزين WSDL و XSD في نفس الدليل على سطح المكتب حيث تخطط لتشغيل تطبيق soapUI.
أكمل الخطوات التالية لإنشاء مشروع soapUI:
- أختر ملف > مشروع SoapUI جديد من نافذة soapUI:
- في نافذة مشروع SoapUI الجديدة أدخل اسم للمشروع في حقل اسم المشروع وأدخل الموقع الذي يتم فيه تخزين ملف WSDL في حقل WSDL/WADL الأولي. انقر فوق موافق عند الانتهاء.
إنشاء طلب واجهة برمجة تطبيقات SoapUI
أكمل الخطوات التالية لإنشاء طلب واجهة برمجة تطبيقات SOAPui:
- قم بتوسيع مشروع SoapUI الذي أنشأته لعرض واجهات برمجة التطبيقات. يمكنك أيضا توسيع أحد واجهات برمجة التطبيقات لعرض الطلب.
في هذا المثال، يتم توسيع QuerySubscriberRequest:
- افتح الطلب لعرض نافذة الطلب مع XML الذي يشكل الاستعلام. في نافذة الطلب، قم بتحرير عنوان http:// IP إلى عنوان IP ومنفذ. هذا عادة ال lbvip01 عنوان ومنفذ حيث أنت تريد أن يرسل الطلب كما يوضح هذا مثال:
- قم بتعديل الحقول الموجودة في XML باستخدام البيانات التي تريد إرسالها في طلبك. في هذا المثال، الطلب هو querySubscriberRequest. قم بتعديل معرف المشترك للمشترك الذي تريد الاستعلام عنه وقم بتعيين showDetailInformatin على false:
- انقر فوق الزر تشغيل أخضر في أعلى نافذة الطلب لتشغيل الاستعلام.
إنشاء حالة إختبار SoapUI
يشرح هذا الإجراء كيفية إنشاء مجموعة إختبار يمكنها أتمتة عند إرسال واجهات API إلى QPS.
في إجراء المثال هذا، يتم إجراء مجموعة الاختبار عبر قائمة بمعرفات المشترك ثم يستخدم معرفات المشترك هذه في QuerySubscriberRequest التي يرسلها إلى QPS. قائمة معرفات المشترك موجودة في سطر واحد في ملف نصي يسمى subid.txt.
أتمت هذا steps in order to خلقت الاختبار مجموعة:
- في مشروع SoapUI الذي أنشأته، قم بإنشاء مجموعة إختبار جديدة. انقر بزر الماوس الأيمن على SoapUI واختر TestSuite جديد.
- انقر بزر الماوس الأيمن فوق مجموعة الاختبار واختر حالة إختبار جديدة.
- انقر بزر الماوس الأيمن على حالة الاختبار واختر إضافة خطوة > نص تنفيذي لإضافة خطوة إختبار برنامج نصي. قم بتسمية مصدر بيانات تقنية المعلومات:
- في ملف "مصدر البيانات"، قم بلصق هذا الرمز. يقرأ هذا الرمز الملف C:/subid.txt الذي يحتوي على معرف المشترك في كل سطر:
import com.eviware.soapui.support.XmlHolder def myTestCase = context.testCase
def counter,next,previous,sizeFile tickerEnumFile = new File("C:/subid.txt") //subscriber
IDs sepearted by new line (CR). List lines = tickerEnumFile.readLines() size =
lines.size.toInteger() propTestStep = myTestCase.getTestStepByName("Property - Looper")
// get the Property TestStep propTestStep.setPropertyValue("Total", size.toString())
counter = propTestStep.getPropertyValue("Count").toString() counter= counter.toInteger()
next = (counter > size-2? 0: counter+1) tempValue = lines[counter]
propTestStep.setPropertyValue("Value", tempValue) propTestStep.setPropertyValue
("Count", next.toString()) next++ log.info "Reading line : ${(counter+1)} /
$lines.size"propTestStep.setPropertyValue("Next", next.toString()) log.info
"Value '$tempValue' -- updated in $propTestStep.name" if (counter == size-1) {
propTestStep.setPropertyValue("StopLoop", "T") log.info "Setting the stoploop property now..."}
else if (counter==0) { def runner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner
(testRunner.testCase, null) propTestStep.setPropertyValue("StopLoop", "F") } else{
propTestStep.setPropertyValue("StopLoop", "F") }
- انقر بزر الماوس الأيمن فوق خطوة الاختبار واختر إضافة خطوة > خصائص لإضافة خطوة إختبار خاصية وتسميتها خاصية - Looper.
- أضفت هذا يعرف خاصية من المستعمل خطوة إختبار Looper:
- المجموع
- القيمة - في المثال الذي نضربه، يؤدي هذا إلى الاحتفاظ بمعرف المشترك المقروء من معرفات مشترك الملف
- عدد
- التالي
- إيقاف الحلقة
- انقر بزر الماوس الأيمن فوق خطوة الاختبار واختر إضافة خطوة > طلب الاختبار لإضافة خطوة إختبار إختبار واختر الطلب الذي تريد إستدعائه:
في هذا المثال، يتم إستخدام querySubscriberRequest.
- في الطلب، يستبدل رمز التوسيع قيم الحقل الخاصة بما تستعلم عنه. في هذا المثال، يتم إستبدال ؟ من SubscriberId=؟ في querySubscriberRequest برمز توسيع ${Property - Looper#Value} (soap_test_req_expansion_code):
الخاصية - Looper هو اسم TestStep الذي تم إنشاؤه مسبقا وتحتوي القيمة على معرف المشترك الحالي الذي تمت قراءته من ملف معرفات المشترك.
- انقر بزر الماوس الأيمن فوق خطوة الاختبار واختر إضافة خطوة > برنامج نصي للتجميع وتسميته حلقة البيانات:
- الصق هذا الرمز في حلقة بيانات البرنامج النصي Groovy:
def myTestCase = context.testCase
def runner
propTestStep = myTestCase.getTestStepByName("Property - Looper")
endLoop = propTestStep.getPropertyValue("StopLoop").toString()
if (endLoop.toString() == "T" || endLoop.toString()=="True"
|| endLoop.toString()=="true")
{
log.info ("Exit Groovy Data Source Looper")
assert true
}
else
{
testRunner.gotoStepByName("Groovy Script - DataSource") //go to the DataSource
}
- في هذا مثال إجراء، 1000 مللي ثانية تأخير بين كل أنشوطة أضفت. هذه الخطوة إختيارية.
ومع التأخير هناك الآن خمس خطوات تجريبية:
- انقر فوق زر تشغيل الأخضر لتشغيل خطوات الاختبار الخمس في نافذة TestCase.