0

Web Service và Testing Web Service bằng SOAP UI

Webservice là gì?

Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML. Dịch vụ Web là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu. Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác. Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên server.

Trước hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống. Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp).

Đặc điểm của Webservice

– Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này. – Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML. – Một Dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet. – Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet. – Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net… – Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe… – Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụ Web đang được quan tâm phát triển là điều hoàn toàn dễ hiểu.

Ưu và nhược điểm

Ưu điểm:

  • Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau.
  • Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được.
  • Nâng cao khả năng tái sử dụng.
  • Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.
  • Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
  • Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.

Nhược điểm:

  • Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành.
  • Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.
  • Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

Kiểm thử Web Service với SoapUI

SoapUI là một sản phẩm của hãng SmartBear, SOAP UI là công cụ kiểm thử mã nguồn mở API hàng đầu, cho phép bạn dễ dàng thực hiện kiểm thử tự động chức năng, kiểm thử hồi quy và kiểm thử tải trên các Web API khác nhau. SOAP UI hỗ trợ tất cả các chuẩn giao thức và công nghệ để test tất cả các loại API. Ngoài ra SOAP UI còn cho phép chúng ta thực hiện thử nghiệm phi chức năng như kiểm thử hiệu suất và kiểm thử bảo mật. Giao diện SOAP UI đơn giản, thân thiện, dễ sử dụng.

Các loại test có thể sử dụng SoapUI:

Funcitional testing:

  • Một công cụ mạnh mẽ cho phép tester viết Functional API Tests trong SoapUI
  • Hỗ trợ tính năng kéo-thả mà làm tăng tốc độ phát triển script
  • Hỗ trợ gỡ lỗi và cho phép tester phát triển data driven tests.

Security Testing:

  • Ngăn chặn SQL Injection để bảo đảm cơ sở dữ liệu
  • Thực hiện Fuzzing scan và Boundary scan để tránh những hành vi thất thường của các dịch vụ.

Load testing:

  • Kiểm thử khả năng chịu tải của một ứng dụng web sử dụng loadUI. Sau khi thực hiện kiểm tra tải, LoadUI sẽ tạo ra một bản báo cáo, giúp xác định liệu các ứng dụng có thể chịu tải nặng hay không.
  • Kiểm thử khả năng chịu tải của một ứng dụng web sử dụng loadUI
  • Mô phỏng mức độ cao và kiểm thử tải thực tế một cách dễ dàng.
  • Cho phép tùy chỉnh báo cáo chi tiết để nắm bắt các thông số hiệu suất.

Tạo mới SOAP project:

1. Mở ứng dụng SoapUI 2. Nhấn New Project SOAP từ menu File hoặc nhấn phím tắt CTRL + N. 3. Nhập tên Project và url WSDL hợp lệ 4. Các thiết lập còn lại có thể được để lại mặc định và sau đó nhấp OK để hoàn tất. * Click OK. Nó sẽ tạo 1 dự án SOAP ở SoapUI. * Bạn có thể double click vào Project để thấy cửa sổ overview của project để xem các thông tin chi tiết của nó. * Bạn có thể double click vào Interface để xem overview của Interface. Nó đưa ra nhiều thông tin về WSDL. Điều này rất hữu dụng cho việc truy xuất và kiểm tra một WSDL.

Tạo request tới Web Service:

1. Tạo New Request tới Web Service:

2. Double click vào request. Nó sẽ hiển thị SOAP request dưới dạng XML.

* Nhập chuyển đổi giữa 2 loại tiền tệ: FromCurrency và ToCurrency
* Click nút Submit (Alt+Enter)
* Sau khi click nút Run, SoapUI sẽ gửi request tới web service chuyển đổi tiền tệ cùng với các thông số đầu vào được cung cấp trong yêu cầu. Sau đó, web service sẽ nhận được các thông số đầu vào và xử lý chúng. Sau khi thực hiện, server sẽ gửi response cho SoapUI.
* Response XML sẽ được hiển thị cửa sổ bên phải.

* Đôi khi các response có thể chứa các thông báo lỗi. Ví dụ, trong khi xử lý yêu cầu đầu vào, xảy ra trường hợp down server hoặc mất kết nối Internet, trong thời gian đó, chúng ta sẽ nhận được một response là một exception. Ví dụ, để test một negative scenario, chúng ta hãy nhập GPB cho << >> FromCurrency và EU cho << >> ToCurrency và gửi request tới web service. Response nhận được như hình dưới đây:

Tạo TestSuite, TestCase và TestStep

1. Ở SoapUI, nhấn CTRL+T để tạo mới 1 TestSuite. 2. Click OK 3. Chọn TestDuiteDemo và nhấn CTRL+N để tạo mới 1 TestCase 4. Click OK 5. Click button + để mở rộng TestSuiteDemo và TestCaseDemon 6. Click chuột phải ở Test Steps(0) và chọn SOAP Request. 7. Nhập tên ở field name 8. Click OK 9. Chọn CurrencyConvertorSoap -> ConversionRate 10. Click OK 11. Click OK 12. Mở SOAP request vừa tạo ở step #7

  • Đổi giá trị ở 2 thẻ: web:FromCurrency?</web:FromCurrency> web:ToCurrency?</web:ToCurrency> thành : web:FromCurrencyGBP</web:FromCurrency> web:ToCurrencyEUR</web:ToCurrency> 13. Nhấn Alt +Enter để chạy TestStep 14. Click vào phần Assertions để xem kết quả request của Test Step bạn vừa submit Tương tự như vậy bạn có thể tạo nhiều Test Step cho Test Case của mình, sau đó submit và chờ kết quả trả về.

All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.