Hướng dẫn kiểm tra dịch vụ web: Cách kiểm tra? Học với ví dụ

Dịch vụ web là gì?

Dịch vụ Web là cơ chế hoặc phương tiện truyền thông mà qua đó hai ứng dụng/máy tính sẽ trao đổi dữ liệu bất kể kiến ​​trúc cơ bản và công nghệ của chúng.

Kiểm tra dịch vụ web là gì?

Kiểm tra dịch vụ web là một loại thử nghiệm phần mềm xác nhận các dịch vụ Web. Mục đích của Kiểm thử dịch vụ web là kiểm tra chức năng, độ tin cậy, hiệu suất và tính bảo mật của API (Giao diện chương trình ứng dụng). Kiểm tra dịch vụ web tương tự như kiểm tra đơn vị trong một số trường hợp. Bạn có thể kiểm tra Dịch vụ web theo cách thủ công hoặc tạo mã tự động hóa của riêng mình hoặc sử dụng công cụ tự động hóa có sẵn như Postman.

Tại sao cần có WebService?

Nói chung, các ứng dụng phần mềm được phát triển để con người sử dụng, trong đó một người gửi yêu cầu đến một dịch vụ phần mềm, dịch vụ này sẽ trả về phản hồi ở định dạng mà con người có thể đọc được.

Trong thời đại công nghệ hiện đại, nếu bạn muốn xây dựng một ứng dụng phần mềm, bạn không cần phải xây dựng mọi thứ từ đầu. Có rất nhiều dịch vụ làm sẵn mà bạn có thể cắm vào ứng dụng của mình và bạn có thể bắt đầu cung cấp các dịch vụ đó trong ứng dụng của mình.

Ví dụ: bạn muốn hiển thị thông tin dự báo thời tiết mà bạn không cần thu thập, xử lý và hiển thị dữ liệu trong ứng dụng của mình. Bạn có thể mua dịch vụ từ những người đã có kinh nghiệm xử lý và xuất bản loại dữ liệu đó.

Các dịch vụ web cho phép chúng tôi thực hiện những loại triển khai này.

Ví dụ, hãy xem xét WebService sau đây

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Nó mang lại giá trị cổ phiếu cho một công ty.

Cùng tìm giá cổ phiếu Google (Ký hiệu: GOOG )

Kiểm tra dịch vụ web

XML phản hồi cung cấp giá cổ phiếu.

Kiểm tra dịch vụ web

Dịch vụ web này có thể được gọi bởi Ứng dụng phần mềm bằng giao thức SOAP hoặc HTTP.

Giao thức dịch vụ web

Dịch vụ Web có thể được triển khai theo nhiều cách khác nhau, nhưng sau đây là hai cách triển khai phổ biến.

  1. SOAP (Giao thức truy cập đối tượng đơn giản)
  2. REST (Kiến trúc chuyển giao trạng thái biểu diễn)

XÀ BÔNG TẮM

SOAP là một giao thức chuẩn được xác định bởi Tiêu chuẩn W3C để gửi và nhận các yêu cầu và phản hồi dịch vụ web.

SOAP sử dụng Định dạng XML để gửi và nhận yêu cầu và do đó dữ liệu là dữ liệu độc lập với nền tảng. Các thông báo SOAP được trao đổi giữa các ứng dụng của nhà cung cấp và ứng dụng nhận trong các phong bì SOAP.

Vì SOAP sử dụng giao thức truyền tải http đơn giản nên các tin nhắn của nó không bị tường lửa chặn.

REST của

REST có nghĩa là REpresentational State Transfer; đây là một kiến ​​trúc thường chạy trên HTTP. Phong cách REST nhấn mạnh vào các tương tác giữa máy khách và dịch vụ, được tăng cường bằng cách có số lượng hoạt động hạn chế. REST là một giải pháp thay thế cho SOAP (Giao thức truy cập đối tượng đơn giản) và thay vì sử dụng XML để yêu cầu, REST sử dụng URL đơn giản trong một số trường hợp. Không giống như SOAP, các ứng dụng RESTFUL sử dụng các tiêu đề tích hợp HTTP để mang thông tin siêu dữ liệu.

Có nhiều mã khác nhau mà REST sử dụng để xác định xem người dùng có quyền truy cập vào API hay không như mã 200 hoặc 201 cho biết tương tác thành công với nội dung phản hồi trong khi 400 cho biết yêu cầu không hợp lệ hoặc URI yêu cầu không khớp với các API trong hệ thống. Tất cả các tham số yêu cầu API và tham số phương thức có thể được gửi qua một trong hai POST or GET biến.

API còn lại hỗ trợ cả định dạng XML và JSON để kiểm tra API dịch vụ web. Nó thường được ưu tiên cho di động và ứng dụng web vì nó giúp ứng dụng hoạt động nhanh hơn và mượt mà hơn

wsdl

WSDL (Dịch vụ web Description Ngôn ngữ) là ngôn ngữ dựa trên XML sẽ được sử dụng để mô tả các dịch vụ được cung cấp bởi dịch vụ web.

WSDL mô tả tất cả các hoạt động được cung cấp bởi dịch vụ web cụ thể ở định dạng XML. Nó cũng xác định cách gọi các dịch vụ, tức là chúng ta phải cung cấp giá trị đầu vào nào và định dạng của phản hồi mà nó sẽ tạo ra cho từng loại dịch vụ.

Làm cách nào để kiểm tra một Dịch vụ Web?

Để kiểm tra dịch vụ web, bạn có thể

  1. Kiểm tra thủ công
  2. Tạo mã tự động hóa của riêng bạn
  3. Sử dụng công cụ tự động hóa sẵn có như SoapUI.

Kiểm thử tự động dịch vụ web bao gồm các bước sau –

  1. Hiểu tệp WSDL
  2. Xác định các hoạt động mà dịch vụ web cụ thể cung cấp
  3. Xác định định dạng yêu cầu XML mà chúng tôi cần gửi
  4. Xác định định dạng XML phản hồi
  5. Sử dụng công cụ hoặc viết mã để gửi yêu cầu và xác thực phản hồi

Giả sử chúng tôi muốn thử nghiệm dịch vụ web cung cấp Cơ sở chuyển đổi tiền tệ. Nó sẽ tính tỷ lệ chuyển đổi hiện tại giữa đồng tiền của các quốc gia khác nhau. Dịch vụ này chúng tôi có thể sử dụng trong các ứng dụng của mình để chuyển đổi các giá trị từ loại tiền này sang loại tiền khác.

Bây giờ hãy xem các bước trên

Bước 1 đến 4: Tìm hiểu WSDL và xác định các hoạt động & định dạng XML

Tiền tệ Convertor Có thể thấy tệp WSDL @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) sẽ cung cấp thông tin về Tiền tệ Convertor các phương thức dịch vụ web mà nó sẽ hỗ trợ, tham số mà chúng ta cần truyền và loại tham số… v.v.

WSDL và xác định các hoạt động & định dạng XML

WSDL và xác định các hoạt động & định dạng XML

Bước 5: Sử dụng công cụ hoặc viết code để gửi yêu cầu và xác thực phản hồi

Có rất nhiều công cụ Kiểm tra WebService có sẵn để kiểm tra dịch vụ web SOAP. SoapUI là một trong những ứng dụng phổ biến công cụ API điều này sẽ giúp chúng ta kiểm tra các dịch vụ web SOAP. Trên thực tế, bạn có thể sử dụng bất kỳ ngôn ngữ lập trình nào có khả năng gửi yêu cầu XML đến ứng dụng của nhà cung cấp dịch vụ web qua http và có thể phân tích cú pháp cũng như xác thực XML phản hồi theo kết quả mong đợi. Trong hướng dẫn Kiểm tra dịch vụ web này, chúng tôi sẽ kiểm tra WebService

  1. Sử dụng Java
  2. Sử dụng SoapUI

PHẦN 1) Kiểm tra dịch vụ web bằng API Apache Axis2 (Java).

Nói chung, dịch vụ web nhận yêu cầu và gửi phản hồi ở định dạng XML.

Dự án API Apache Axis2 là một Java API triển khai, sẽ được sử dụng để tạo các dịch vụ Web cho cả phía máy chủ (nhà cung cấp dịch vụ) và phía khách hàng (người tiêu dùng dịch vụ).

Axis2 có khả năng gửi tin nhắn SOAP và nhận & xử lý tin nhắn SOAP. Chúng ta có thể viết một đoạn nhỏ Java chương trình sử dụng API để tạo dịch vụ web. Axis2 sẽ tạo WSDL từ Java chương trình sẽ được sử dụng để truyền đạt các dịch vụ được cung cấp bởi dịch vụ web. Chúng ta có thể sử dụng cùng Axis2 để tạo ra Java class (sơ khai) từ tệp WSDL mà chúng tôi có thể sử dụng làm chương trình máy khách để tạo yêu cầu dịch vụ web, gửi yêu cầu đến điểm cuối dịch vụ và xử lý phản hồi.

  1. Về cơ bản chúng ta sẽ tạo một cái đơn giản Java chương trình trong đó chúng ta sẽ khởi tạo lớp sơ khai.
  2. Bằng cách sử dụng stub, chúng ta sẽ gọi phương thức yêu cầu bằng cách chuyển tất cả thông tin được yêu cầu.
  3. Chương trình sơ khai sẽ chuyển đổi yêu cầu đó thành định dạng yêu cầu XML và gửi nó đến điểm cuối dịch vụ sẽ đọc yêu cầu và xử lý yêu cầu cũng như gửi phản hồi ở định dạng XML.
  4. Phản hồi XML sẽ được chuyển đổi thành Java từng lớp còn sơ khai và quay trở lại chương trình thực tế.

Hãy xem xét các bước trên một cách chi tiết

Bước a) Tải xuống API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Đặt biến môi trường 'AXIS2_HOME'

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Bước b) Tạo một thư mục để giữ tất cả các tạo phẩm được tạo

Ví dụ: C:\Axis\Projects\CurrencyConverter

Bước c) Mở dấu nhắc lệnh và điều hướng đến cấu trúc thư mục mà bạn muốn tạo ra các hiện vật và chạy lệnh sau để tạo ra các stub

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Bước d) Khi lệnh được chạy thành công, bạn sẽ thấy thư mục chứa các tệp được yêu cầu.

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Bước e) Trong bước tiếp theo của hướng dẫn Kiểm tra dịch vụ web này, chúng ta phải tạo chương trình máy khách, qua đó chúng ta sẽ gửi yêu cầu thực tế bằng cách sử dụng các stub đã tạo. Mở eclipse và tạo mới Java project và chọn thư mục mà chúng tôi đã tạo ở trên.

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Bước f) Thêm tất cả các lọ liên quan đến axis2 vào đường dẫn xây dựng dự án, sẽ có trong thư mục lib của thư mục phần mềm axis2

(ví dụ: C:\Axis\axis2-1.6.2\lib)

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Bước g) Tạo một cái mới Java lớp (ví dụ: Client.Java) và khởi tạo đối tượng sơ khai. Sử dụng đối tượng sơ khai, chúng ta có thể gọi tất cả các phương thức được hỗ trợ của WebService cụ thể.

Kiểm tra dịch vụ web bằng API Apache Axis2 (Java)

Client.Java Program
package org.apache.axis2.currencyconvertor;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;

public class Client {
 public static void main(Java.lang.String args[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

PHẦN 2) Cách kiểm tra bằng dịch vụ web SoapUI

Trong SoapUI

  1. Đi tới Tệp> Dự án xà phòng mới
  2. Nhập tên dự án và vị trí URI WSDL
  3. nhấn OK

Kiểm tra bằng dịch vụ web SoapUI

  1. Mở rộng yêu cầu đầu tiên và nhấp đúp vào 'Request1'. Nó sẽ hiển thị yêu cầu SOAP theo định dạng XML.
  2. Nhập Từ tiền tệ và Đến tiền tệ
  3. Bấm vào nút gửi
  4. XML phản hồi sẽ được hiển thị ở khung bên phải.

Kiểm tra bằng dịch vụ web SoapUI

Như bạn có thể kết luận, việc sử dụng các công cụ Kiểm tra dịch vụ web như SoapUI sẽ đẩy nhanh nỗ lực kiểm tra tự động hóa dịch vụ web của bạn. Do đó SoapUi sẽ là trọng tâm học tập của chúng ta trong các hướng dẫn tiếp theo.

Tổng kết

  • Các ứng dụng phần mềm giao tiếp và trao đổi dữ liệu với nhau bằng WebService
  • SOAP và REST là 2 giao thức phổ biến để tạo WebService
  • SOAP hỗ trợ trao đổi dữ liệu dựa trên XML
  • REST hỗ trợ XML, Json hoặc trao đổi dữ liệu trong URL đơn giản để kiểm tra API dịch vụ web.
  • WSDL là ngôn ngữ dựa trên XML sẽ được sử dụng để mô tả các dịch vụ được cung cấp bởi một dịch vụ web. SOAP được xác định bằng WSDL.
  • Để kiểm tra WebService bạn có thể
    • Tạo mã của riêng bạn. Ví dụ: sử dụng API Axis2 cho Java
    • Sử dụng các công cụ Tự động kiểm tra WebService như SoapUI
  • Các công cụ tự động hóa như SoapUI sẽ khởi động lại nỗ lực Kiểm tra tự động hóa dịch vụ web của bạn, sẽ yêu cầu ít nỗ lực mã hóa hơn so với việc tạo mã của riêng bạn bằng API Axis2

Câu Hỏi Thường Gặp

Dịch vụ web API web
Được xác định bởi W3C, tất cả trao đổi dữ liệu và truyền thông đều dựa trên XML Trao đổi dữ liệu và giao tiếp API Web có thể là XML, JSON hoặc dữ liệu thuần túy
Nó đã xác định các tiêu chuẩn – WSDL Không có tiêu chuẩn xác định
Bạn không thể nén dữ liệu nhưng bạn có thể nén yêu cầu HTML Bạn có thể nén dữ liệu
Ví dụ: SOAP Ví dụ: REST

Tìm hiểu thêm về Kiểm tra API Web

Hướng dẫn Kiểm tra Dịch vụ Web này được thực hiện với sự đóng góp của Ông Narender Reddy Nukala