0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JMeterでWebSocket通信

Last updated at Posted at 2025-01-27

概要

負荷テストのためのツール検証を実施していた際、JMeterでWebSocket通信ができるか検証した結果をまとめました。

環境

検証では、JMeterのバージョン5.6.3を利用しました。
通信先はMattermostコンテナを利用しています。環境構築手順は以下の記事を参照してください。

検証手順

WebSocket通信用プラグインの追加

以下のサイトから最新版のWebSocket通信用プラグインをダウンロードします。

上記サイトで検索すると、WebSocket通信に対応したプラグインは以下の2種類がありますが、
今回の検証では後者の「WebSocket Samplers by Peter Doornbosch」を利用しています。

ダウンロードしたプラグインファイル(jmeter-websocket-samplers-X.X.XX.jar)をJMeterのlib/extフォルダ配下に配置し、
ファイル読込のためJMeterを再起動すると、以下のようにWebSocket用のサンプラーが追加されます。
jmeter_websocket_001.JPG

WebSocket接続の開始

WebSocket通信を開始するには、WebSocket Open Connectionサンプラーを使用します。
Server URLにプロトコル、通信先ドメイン名/IPアドレス、ポート番号、Pathを設定します。
jmeter_websocket_002.JPG

本サンプラーを実行すると、HTTPからWebSocketへのスイッチが行われます。
jmeter_websocket_004.JPG

WebSocket通信

WebSocketでデータのやりとりを行う場合、以下のサンプラーを利用します。

  • WebSocket Ping/Pong
    WebSocketセッション維持のためのハートビート通信を行います。
    jmeter_websocket_005.JPG
  • WebSocket Single Read Sampler
    新規/既存WebSocketセッションを指定して、データの受信を行います。
    jmeter_websocket_006.JPG
  • WebSocket Single Write Sampler
    新規/既存WebSocketセッションを指定して、データの送信を行います。
    jmeter_websocket_007.JPG
  • WebSocket request-response Sampler
    新規/既存WebSocketセッションを指定して、データの送受信を行います。
    jmeter_websocket_008.JPG

WebSocket接続の終了

WebSocket接続を終了する場合は、WebSocket Closeサンプラーを使用します。
クローズ時のステータスコードを設定します。デフォルト値は1000(通常のクローズ)です。
jmeter_websocket_009.JPG

Mattermostの通信内容を分析して、以下のようなJMeterシナリオを作成・実行してみましたが、WebSocket接続の開始~終了までエラーなく再現できました。
jmeter_websocket_010.JPG

参考

https://qiita.com/nkns165/items/8cd82bf8b93826dfdca2
https://www.alibabacloud.com/help/ja/pts/performance-test-pts-3-0/use-cases/how-to-perform-pressure-measurement-of-websocket-protocol

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?