ایجاد سرویس مجازی(Mock) با SoapUI و ReadyAPI

حتما برای شما هم پیش آمده است که در زمان تست نرم افزار مورد نظرتان از یک سرویس داخلی یا خارجی استفاده کنید و بنا به دلایلی(عدم دسترسی و اعتبار سنجی، عدم ارتباط شبکه، مشکل سرویس از سمت سرویس دهنده، حساس بودن داده ها و عدم امکان تست در محیط واقعی) استفاده از آن سرویس محیا نباشد.
در اینگونه مواقع یا باید تست را تا زمان رفع مشکل سرویس به تعویق انداخت و یا در برخی مواقع از روش طاقت فرسا و نه چندان مطمئن و غیر اصولی برای پیش بردن فرایند تست بهره جست که به هیچ وجه توصیه نمی شود و امکان بروز خطاهای دیگری نیز وجود دارد.

بهترین راهکاری که در این مواقع می توان استفاده کرد ایجاد یک سرویس مجازی(Mock) مشابه سرویس واقعی می باشد که در زمان فراخوانی سرویس به جای سرویس اصلی استفاده شود.به عبارت بسیار ساده Mocking به معنای ساختن ماکت یا تقلید از چیزی می باشد.

یکی از بهترین ابزارهایی که در این زمینه وجود دارد ابزار SoapUI و یا برادر قدرتمند تر آن ReadyAPI می باشد.در این مقاله قصد داریم آموزش نصب و راهنمای کاربری ایجاد Mock را بیان کنیم.

ابزار ReadyAPI یکی از محصولات SmartBear ،ابزاری است که از ادغام سه سرویس زیر ایجاد شده است:
- SoapUi pro
- LoadUi pro
- ServiceV pro

با توجه به اینکه هدف از نگارش این مستند بررسی امکان Virtualize و Mocking سرویسها است از پرداختن به سایر امکانات این ابزار صرف نظر می شود.

ابتدا از بخش file->New Project نوع Api را مشخص می کنیم.

در این قسمت آدرس وب سرویس را وارد می کنیم و با انتخاب گزینه زیر به صورت اتوماتیک VirtualService مربوط به وب سرویس انتخاب شده نیز ایجاد می گردد:

Create a virtual service for the imported WSDL

در تب ServiceV امکان مدیریت سرویس مجازی وجود دارد.در این بخش در قسمت Response می توان پاسخ مناسب را ایجاد و ویرایش کرد.

در بخش RoutingOption امکان اینکه پاسخ ما به صورت شرطی ارائه شود با انتخاب گزینه Conditional وجود دارد.

در بخش dispatchStyle می توانیم با انتخاب گزینه Script به صورت دلخواه و با زبان Groovy دستورات مورد نظر خود را تولید کرد.در این بخش با انتخاب گزینه Configure محیط کد نویسی باز شده و می توانیم آن را ویرایش کنیم.

با انتخاب گزینه add Response می توان یک پاسخ جدید برای request ایجاد کرد.

با استارت کردن virtualService سرویس مجازی شروع به کار میکند.

میتوانیم در Endpoint که در request انتخاب می شود آدرس serviceV جدید را وارد نماییم.

با کلیک راست بر روی ServiceV مورد نظر و انتخاب Save as WAR فایل War آن ایجاد شده و می توان با هر WebServer آن را Run کرد.