Web Service Mocking là 1 công cụ rất rất hữu ích để mô phỏng giả lập Webservice Server. Đây là giải pháp cho câu hỏi “Làm thế nào Tôi test được webservice API do anh/khách hàng gửi mà không cung cấp dịch vụ webservice cho tôi?” Trong trường hợp này Web Service Mocking là một giải pháp tuyệt vời. Nó cho phép mô phỏng webservice để phục vụ việc kiểm thử trước khi tích hợp với hệ thống thực.

Sau đây là các bước thực hiện để tạo ra 1 Web Service Mocking như vậy:

  1. Tạo 1 Project mới
  2. Tạo 1 MockService
  3. Cập nhật các thông tin: host/port/operator
  4. Gọi MockService
  5. Tùy chỉnh MockResponse

1. Tạo 1 dự án mới

1. Khởi tạo 1 dự án mới bằng SOAP UI, ví dụ với liên kết WSDL như sau:
http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

New_MockService_Project

Chú ý: Các bạn có cần kiểm tra link webservice tôi lấy làm ví dụ trên vẫn còn sống bằng cách click vào link hoặc copy link rồi paste vào address bar của trình duyệt rồi gõ enter nhé !

2. Dự án sẽ được SOAPUI parse tự động và hiển thị. Sẵn sàng tạo MockService nào !

2. Tạo 1 MockService

1. Các bạn click phải chuột vào bất kì 1 SOAP interfaces, chọn Generate MockService để tạo MockService

Generate_MockService_CurrencyConverter

2. Trong hộp thoại hiện ra, bạn cần nhập 1 số thông tin phù hợp với Webservice Server như: port/path rồi click OK
Trong lúc này, ta đang thử nghiệm thì cứ click đại OK mần 1 lúc là hiểu.

Generate_MockService_Dialog_soapUI

3. Tiếp tục, nhập tên MockService rồi click OK
4. Sau khi tạo xong MockService, bạn sẽ thấy 1 MockService như hình với 1 Operation và 1 request.

Generated_MockService2

Do chúng ta chưa Start nên bạn nhìn thấy Icon có màu xanh xám do chúng ta chưa khởi chạy MockService. Bước tiếp theo chúng ta cần nhập vài thông tin để Response cho client.

3. Sửa MockServcie

1. Click đúp vào MockService để mở editor. Trong editor bạn sẽ thấy danh sách các Operation, TH ví dụ của chúng ta chỉ có 1 Operation.

Generated_MockService

2. Click đúp vào Operation mà bạn muốn sẽ thực hiện test ngay bây giờ để sửa MockResponse thích hợp.

Open_MockResponse

3. Thay dấu hỏi mặc định do SOAP UI sinh ra bằng cái bạn muốn.

MockResponse_Editor

Bạn thấy rằng MockResponse editor giống hệt với SoapUI Request editor? Chuẩn rồi, và chúng ta lúc này cần sửa thông tin ở tab Response 😀 Tab Request sẽ hiển thị request khi có client gửi yêu cầu đến. Rất có ích để chúng ta theo dõi giá trị gửi / trả về.

4. Gọi MockService

1. Trước hết chúng ta cần start MockService đã: Click vào nút xanh để start MockService với path và port đã được cấu hình ở bước 2.

Started_MockService

Ngay phía trên bên phải của Editor, bạn thấy được MockService đang chạy. Và có 1 nút đỏ ở phía bên trái để …

Như vậy là chương trình phẩn mềm bạn đã viết có thể gọi ngay đến Webservice có link được thiết lập như ở bước 2:

http://lpt-nire:8088/mockCurrencyConvertorSoap12

Với lpt-nire là tên máy (hoặc sau này bạn có thể thiết lập với localhost từ file định dạng wsdl)

Hoặc có thể test thử luôn bằng SoapUI như bước sau:

2. Trong MockResponse editor, click vào nút Create Request

Create_Request_for_Mock

3. Nhập 1 request mới hoặc chọn 1 request sẵn có khi hộp thoại Open Request mở ra.

Create_New_Request

4. Nhập tên mới hoặc để mặc định 😀

Open_Request

5. Sau khi click OK, SoapUI tự động thay đổi endpoint trên location bar để sử dụng endpoint mới trỏ đến MockService.

Ví dụ của chúng ta đang là:  http://lpt-nire:8088/mockCurrencyConvertorSoap12 

Sent_Request_with_MockResponse

Click vào nút send Request màu xanh quen thuộc, bạn sẽ nhận ngay được đoạn MockResponse đã thiết kế ở bước 3.

Thật là tuyệt vời phải không ? Vậy là ta đã mô phỏng được 1 webservice mà không cần có 1 server thật đang chạy Webservice bằng cách thiết lập MockServer trong SOAP UI.

Các bạn có thể làm 1 vài các thay đổi khác như: Sửa MockResponse, MockRequest, thiết lập giá trị ngẫu nhiên bằng Goovy Script !

Link tham khảo:

http://www.soapui.org/Getting-Started/mock-services.html

About The Author