SOAP là cách mà Web Server sử dụng để truyền tải dữ liệu. SOAP là giao thức sử dụng XML để định nghĩa dữ liệu dạng thuần văn bản, thông qua HTTP. Một request dạng SOAP gồm 2 phần: Header và Body. Header chứa địa chỉ của Web Service, Host, Content-Type, Content-Length tương tự như một thông điệp HTTP.
Config API dạng SOAP
Chúng ta sẽ thực hiện với một API cụ thể lấy từ trang web : http://www.dneonline.com/calculator.asmx
GET request method
- Open Apache JMeter
- Add Thread Group Để bắt đầu 1 Test Plan việc đầu tiên là phải add 1 Thread Group: Chuột phải vào Test Plan chọn Add > chọn Tiếp Threads (Users) > chọn tiếp Thread Group.
- Add HTTP Request Sampler
Sau khi đã có Thread Group, chúng ta tiếp tục chuột phải vào Thread Group, chọn Add, chọn tiếp Sampler sau đó chọn HTTP Request. HTTP Request chính là nơi chứa body của API SOAP.
- Add HTTP Request Manager
Sau khi đã add HTTP Request chúng ta tiếp tục add Header của API. Chuột phải vào HTTP Request chọn Add, chọn tiếp Config Element và sau đó chọn HTTP Header Manager.
- Add View Results Tree Listener
Để kiểm tra kết quả sau khi config và chạy API, chúng ta add thêm 1 Listener có tên là View Results Tree. Các bạn chuột phải vào Thread Group, chọn Add, chọn Listener và click vào View Results Tree.
- Thiết lập Body của API SOAP
Để thiết lập các thông tin của body API SOAP, chúng ta mở xem lại thông tin của request, click vào HTTP Request. URL của API SOAP đã đưa ra ở đầu bài là http://www.dneonline.com/calculator.asmx?op=Add, tương ứng với thông tin này chúng ta sẽ thiết lập ở JMeter như sau:
- Protocol: http
- Server Name or IP: www.dneonline.com
- Path: /calculator.asmx?op=Add
- Method: POST
Tiếp theo chúng ta config body data, mặc định của JMeter đang để dạng Parameters, chúng ta click vào tab Body Data bên cạnh sau đó copy và paste body data của link đã đưa ra:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Add xmlns="http://tempuri.org/">
<intA>int</intA>
<intB>int</intB>
</Add>
</soap:Body>
</soap:Envelope>
Đây là API thực hiện phép tính tổng cộng 2 số nguyên với nhau, vì vậy chúng ta sẽ thực hiện điền vào 2 số nguyên ở trong cặp và , ở đây tôi điền lần lượt 2 số là 10 và 20.
- Thiết lập header:
Sau khi đã hoàn thành bước thiết lập Body, chúng ta click vào HTTP Header Manager để config Header. Dựa vào yêu cầu của hệ thống đã đưa ra ban đầu, click button Add và thực hiện lần lượt điền các thông tin của Header như sau:
- Host : www.dneonline.com
- Content-Type: text/xml; charset=utf-8
- Content-Length: length
- SOAPAction: "http://tempuri.org/Add"
- Run API
Ở màn hình View Results Tree, click vào HTTP Request, mặc định sẽ hiển thị tab Sampler result thông tin của request sau khi chạy.
Click vào tab tiếp theo là Request sẽ là nơi hiển thị thông tin của request đã gửi lên server, bao gồm Request Body và Request Header là thông tin về Body và Header đã thực hiện gửi.
Click vào tab tiếp theo là Response data, nơi chứa thông tin mà server thực hiện response về các thông tin mà bạn vừa gửi bao gồm Response Body và Response Header. Ở bước 5, chúng ta đã thực hiện điền 2 số nguyên là 10 và 20 và chạy API thực hiện phép tính Cộng 2 số, kiểm tra giá trị trả về đúng là 30 như hình bên dưới.
JMeter cũng có cơ chế hiển thị vẫn là data ở trên nhưng dưới dạng XML thì ở Dropdownlist có chữ Text đang hiển thị, chúng ta click vào và kéo xuống bên dưới chọn XML.
Như vậy, chúng ta đã cùng nhau tìm hiểu cách config API dạng SOAP. Cùng đón xem cách config API dạng REST tại đây nhé.