Kiểm thử Web Service với SoapUI

1. Tổng quan về Web Service

  • Web Service một công nghệ cho phép client truy xuất để thực hiện mọi tác vụ như một Web Application. Về bản chất, Web service dựa trên XML và HTTP, trong đó XML làm nhiệm vụ mã hóa và giải mã dữ liệu và dùng SOAP để truyền tải. Web Service không phụ thuộc vào platform nào, do đó bạn có thể dùng Web Service để truyền tải dữ liệu giữa các ứng dụng hay giữa các platform.
  • Sơ đồ tương tác giữa User và Web Service: webservice-soap-html-xml-diagram1.png
  • Nền tảng của WS:
  • WSDL - Web Service Description Language: WSDL là ngôn ngữ được sử dụng để mô tả đầy đủ về Web Service theo chuẩn XML như các phương thức, kiểu dữ liệu,… dựa trên XML schema.
  • SOAP - Simple Object Access Protocol: SOAP là một chuẩn giao thức được định nghĩa bởi W3C, là giao thức sử dụng XML để định nghĩa dữ liệu thông qua HTTP. SOAP là cách mà Web Service sử dụng để truyền tải dữ liệu. Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kỳ ngôn ngữ nào.
  • UDDI - Universal Description, Discovery and Integration

2. SOAP UI

  • 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.

  • Một số tính năng quan trọng của SoapUI:

  1. Kiểm thử chức năng:
  • 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.
  1. Kiểm thử bảo mật:
  • 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ụ.
  1. Kiểm thử tải:
  • 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.
  1. Hỗ trợ các giao thức và công nghệ:

010915_0948_Introductio2.png

3. Cài đặt SoapUI

  • B1: Download SoapUI free version:

  • B2. Thực hiện cài đặt

    • Chạy file cài đặt:
    • Trong Setup Winrar click vào nút Next để chuyển sang trình hướng dẫn cấp giấy phép. Chấp nhận các điều khoản và điều kiện, chọn thư mục mà soapUI có thể truy xuất các tập tin hỗ trợ và cài đặt. Nhấn Next để chọn các component. Xem ảnh chụp màn hình dưới đây để bạn tham khảo:

813daade065308c639d3b0f3aaa5275b.png

  • Trong ảnh chụp màn hình, chúng ta có thể thấy một số các thành phần ngoài soapUI:

    • Source component: Có chứa mã nguồn hoàn chỉnh cho các công cụ soapUI. Bạn có thể cài đặt thành phần này và phân tích mã nguồn soapUI.

    • Tutorials component: Cung cấp các hướng dẫn.

    • HermesJMS component: Sử dụng cho việc gửi và nhận tin nhắn thông qua Java Messaging Service, được cấu hình trong trường hợp của các dịch vụ liên quan kiểm tra JMS.

  • Để cài đặt HermesJMS component, lựa chọn chấp nhận các điểu khoản. Vì vậy, hãy nhấp vào nút Next.

  • Sau khi hoàn thành, cuối cùng sẽ hiển thị cửa sổ này:

f29217c3045ed69b60baee6a63600678.png

  • Nhấn vào nút "Finish" để hoàn tất quá trình cài đặt và khởi động soapUI.

b7d57e407623b45e65f3dd8f58f82e83.png

4. Làm việc với Project: Tạo Project, Test Suite, Test Case

a. Tạo SoapUI Project:

  • B1. Mở ứng dụng SoapUI

  • B2. Nhấn New Project SOAP từ menu File hoặc nhấn phím tắt CTRL + N.

  • B3: Nhập tên Project và url WSDL hợp lệ

  • B4: 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.

26-Jul-15 5-35-26 PM.png

  • Khi URL được WSDL xử lý thành công, SOAP Project sẽ được tạo ra:

26-Jul-15 5-38-40 PM.png

  • 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ó.

26-Jul-15 5-42-21 PM.png

  • 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.

26-Jul-15 5-44-38 PM.png

Demo: Tạo request tới Web Service

  • B1. Tạo New Request tới Web Service

26-Jul-15 5-52-18 PM.png

  • B2. 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 26-Jul-15 8-50-42 AM.png

    • 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.

26-Jul-15 8-45-29 AM.png

  • Đô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 US cho << >> FromCurrency và VND cho << >> ToCurrency và gửi request tới web service.

Response nhận được như hình dưới đây:

26-Jul-15 9-00-50 AM.png

b. Tạo Test suite:

  • B1. Trong project hiện tại, chúng ta có thể tạo ra Test suite bằng cách click chuột phải vào thư mục gốc của project -> New Testsuite hoặc nhấn phím tắt Ctrl + T:

  • Đặt tên Testsuite và nhấn OK, Test suite sẽ được hiện thị bên thanh navigator:

26-Jul-15 1-33-43 PM.png

c. Tạo Testcase

  • B1. Tạo Testcase trong Testsuite bằng cách ấn chuột phải vào Testsuite, chọn New Testcase hoặc nhấn Ctrl + N

  • B2. Đặt tên testcase và ấn OK để tạo testcase. Testcase được tạo gồm Test steps, Load tests và Security tests được hiển thị trên thanh navigator như sau:

26-Jul-15 1-44-39 PM.png

  • Chúng ta có thể chèn test step bằng cách nhấn chuột phải vào test case và lựa chọn một test step thích hợp như hình dưới đây. Ví dụ với Test Soap Request:

26-Jul-15 1-51-05 PM.png

  • Nhập thông tin đầu vào chuyển đổi giữa 2 loại tiền tệ: FromCurrency và ToCurrency

Trong phần này tôi đã giới thiệu với các bạn cơ bản về Web Service và công cụ test Web service - SoapUI, tính năng của SoapUI và cách làm việc với Project, tạo test suites, test cases, test steps. Phần tiếp theo tôi sẽ giới thiệu với các bạn về SOAPUI Assertions và Working with Operators trong SoapUI.

Cám ơn các bạn đã theo dõi bài viết.