Hits: 602

5/5 - (1 bình chọn)

Bài viết này mình sẽ hướng dẫn sử dụng JMeter test Websocket. Mục đích để kiểm tra hiệu năng của server khi có lượng lớn người truy cập vào chat group và thực hiện chat trong cùng một khoảng thời gian.

Test plan cần thực hiện

Chat group và thông tin kết nối websocket để thực hiện demo tại link: https://www.websocket.org/echo.html

Test plan đặt ra:

  • Thực hiện kết nối chat: wss://echo.websocket.org
  • Thực hiện chat
  • Số lượng request: 100
  • Thời gian: 10s
  • Report: Summary report, Tree report
websocket-demo
websocket.org
azdigi-wordpress-hosting

Các bước tạo plan JMeter test Websocket

1. Add, Config Thread Group

Click phải vào Test Plan > Chọn Add > Chọn Threads (Users) > Chọn Thread Group

JMeter Test Websocket – Add Thread Group
JMeter Test Websocket – Add Thread Group

Thiết lập Thread Properties:

  • Number of Threads (users): Số lượng users giả lập được gửi vào trang web
  • Ramp-Up Period (in seconds): Thời gian gửi lượng users vào trang web
  • Loop Count: Số lần lặp
  • Forever: Check để lặp không giới hạn, uncheck để lặp bằng số Loop Count
jmeter-websocket-config-thread-group
JMeter Test Websocket – Config Thread Group

2. Add Websocket Plugin

Chọn Options > Chọn Plugins Manager > Chọn Available Plugins > Search websocket, cài đặt WebSocket Sampler by Maciej ZaleskiWebSocket Samplers by Peter Doornbosch

jmeter-websocket-add-plugin
JMeter Test Websocket – Add Websocket plugins

3. Add, Config Websocket Sampler

3.1. WebSocket Open Connection
Đầu tiên để join vào chat group cần thực hiện open connection:
Click phải vào Thread Group > Chọn Add > Chọn Sampler > Chọn WebSocket Open Connection

jmeter-websocket-add-open-connection
Add WebSocket Open Connection

Config WebSocket Open Connection:

  • Server URL: chọn wss
  • Server name or IP: echo.websocket.org
  • Port: 443
  • Path: ?encoding=text
jmeter-websocket-config-open-connection
Config WebSocket Open Connection

Cách lấy các thông số trên từ trang web:
Vào trang demo https://www.websocket.org/echo.html > Nhấn F12 (Ctr + Shift + I) để chọn Inspect > Chọn Network > Chọn XHR > Thực hiện connect và chat để xem kết quả trả về

jmeter-websocket-get-info
Lấy thông số: Server URL, Server name or IP, Part
jmeter-websocket-get-info-port
Lấy thông số: Port

3.2. WebSocket request-response Sampler
Thêm WebSocket request-response Sampler để thực hiện gửi chat message:
Click phải vào Thread Group > Chọn Add > Chọn Sampler > Chọn WebSocket request-response Sampler

jmeter-websocket-add-request-response
Add WebSocket request-response Sampler

Config WebSocket request-response Sampler:

  • Connection: chọn use existing connection
  • Request data: nhập chat message this is a text message !
jmeter-websocket-config-sampler
Config WebSocket request-response Sampler

3.3. WebSocket Close
Thêm WebSocket Close để tắt websocket đang mở:
Click phải vào Thread Group > Chọn Add > Chọn Sampler > Chọn WebSocket Close

jmeter-websocket-add-websocket-close
Add WebSocket Close

* Thêm vào 1 WebSocket request-response Sampler nữa phía sau WebSocket Close để test kết quả trước và sau khi tắt websocket.

4. Add Listener

Thêm report thống kê để theo dõi kết quả test.
Click phải vào Thread Group > Chọn Add > Chọn Listener > Chọn Summary Report / View Results Tree

jmeter-websocket-add-listener
Add Listener

5. Start Test

Nhấn vào icon start / start no pause để bắt đầu chạy test

jmeter-start
jmeter-start-no-pause
jmeter-websocket-start-test
Start Test

6. Test Report

Sau khi start test thì bạn đã có thể xem được kết quả test đang chạy cho đến khi kết thúc.

Kết quả trả về cho ta thấy:
Request Chat (after Close) có tỉ lệ lỗi là 100% do không thể thực hiện chat sau khi đã Close Connection websocket.
Response data là this is a text message ! giống với kết quả trả về ở Network: send & receive message (hình bên dưới).

jmeter-websocket-summary-result
Summary report
jmeter-websocket-tree-result
View Results Tree
jmeter-websocket-send-receive
Network: send & receive message

Giải thích các thông số:

#Samples: Tổng số lần run của request. #Samples = Number of Threads (users) * Loop Count
Average: Thời gian phản hồi trung bình (Response Time) của request, tính cho đến lần gửi cuối cùng
Min: Respone Time thấp nhất của request đã gửi
Max: Respone Time cao nhất của request đã gửi
Std Dev.: Độ lệch chuẩn đo lường sự thay đổi của 1 tập hợp data, dựa trên thống kê.
Error %: % số lượng request bị lỗi
Throughput: Throughput = (Tổng số lượng requests) / (Tổng thời gian) * (Đơn vị chuyển đổi). Lượng requests được hệ thống (server) xử lý trong 1 đơn vị thời gian, có thể là giây, phút, hoặc giờ.
Received KB/sec: Dung lượng nhận được từ server
Sent KB/sec: Dung lượng gửi lên server
Avg. Bytes: Dung lượng trung bình của 1 lần response tính bằng bytes

7. Save Report

Sau khi chạy test plan xong bạn có thể lưu lại kết quả test về file .csv
Tại Summary Report nhấn vào Save Table Data > Nhập File Name > Nhấn Save

jmeter-websocket-save-report
Save Report

Lời kết

Như vậy qua bài viết bạn đã có thể tạo hoàn chỉnh test plan về JMeter test rồi.
Hẹn gặp lại các bạn trong những bài viết tiếp theo trong JMeter Series nhé.

Ủng hộ mình nếu cảm thấy bài viết có ích nhé. Cảm ơn bạn !

buy-me-a-coffe

Topics #hướng dẫn dùng jmeter #jmeter tutorial #sử dụng jmeter #websocket with jmeter