Hướng dẫn kiểm thử dịch vụ web kèm ví dụ
⚡ Tóm tắt thông minh
Kiểm thử dịch vụ web xác nhận chức năng, độ tin cậy, hiệu suất và bảo mật của API cho phép các ứng dụng trao đổi dữ liệu, sử dụng giao thức SOAP hoặc REST, mô tả WSDL và các công cụ như... SoapUI hoặc tùy chỉnh Java Mã.

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.
Hãy tìm giá cổ phiếu cho Google (Ký hiệu: GOOG)
XML phản hồi cung cấp giá cổ phiếu.
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.
- SOAP (Giao thức truy cập đối tượng đơn giản)
- 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 là viết tắt của REpresentational State Transfer (Truyền trạng thái đại diện); nó là một kiến trúc thường chạy trên giao thức HTTP. Phong cách REST nhấn mạnh sự tương tác giữa máy khách và dịch vụ, được tăng cường bằng cách giới hạn số lượng các thao tác. REST là một lựa chọn thay thế cho SOAP (Simple Object Access Protocol) và thay vì sử dụng XML cho các yêu cầu, REST sử dụng các ngôn ngữ đơn giản. URL 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 sẵn của HTTP để truyền tải thông tin meta.
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 Số Điện Thoại 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ể
- Kiểm tra thủ công
- Tạo tự động hóa của riêng bạn Code
- Sử dụng một công cụ tự động hóa có sẵn như... SoapUI.
Kiểm thử tự động dịch vụ web bao gồm các bước sau –
- Hiểu tệp WSDL
- Xác định các hoạt động mà dịch vụ web cụ thể cung cấp
- Xác định định dạng yêu cầu XML mà chúng tôi cần gửi
- Xác định định dạng XML phản hồi
- 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.
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 thử dịch vụ web (WebService Test tools) có sẵn để kiểm thử dịch vụ web SOAP. SoapUI là một trong nhữ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
- Sử dụng Java
- 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.
- 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.
- 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.
- 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.
- 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'
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
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.
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.
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)
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ể.
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 thử bằng cách sử dụng SoapUI Dịch vụ web
In SoapUI
- Đi tới Tệp> Dự án xà phòng mới
- Nhập tên dự án và vị trí URI WSDL
- nhấn OK
- 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.
- Nhập Từ tiền tệ và Đến tiền tệ
- Bấm vào nút gửi
- XML phản hồi sẽ được hiển thị ở khung bên phải.
Như bạn có thể thấy, việc sử dụng các công cụ kiểm thử WebService như... SoapUI Nó giúp tăng tốc quá trình kiểm thử tự động hóa dịch vụ web của bạn. Do đó, SoapUI sẽ là trọng tâm của việc học tập trong các bài hướng dẫn tiếp theo.












