LoginSignup
0
0

gRPCをJMeterで負荷試験するまでの必要なこと

Posted at

gRPCをJMeterで負荷試験するまでの必要なこと

gRPCの負荷試験をやるタスクが降ってきたのでやり方をメモします。

1. gRPCのサンプルをダウンロードしDockerで実行

@sugiyama404(sugi 404)さんが書かれているDockerで始めるgRPCが手軽だったのでそのまま使わせていただきました。

$ git clone https://github.com/sugiyama404/practice_grpc.git
$ cd practice_grpc
$ docker compose up
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[+] Running 3/3
 ⠿ Network practice_grpc_default  Created                                                                                                            0.1s
 ⠿ Container server-grpc          Created                                                                                                            0.3s
 ⠿ Container client-grpc          Created                                                                                                            0.3s
Attaching to client-grpc, server-grpc

2. JMeterをインストール

JMeter gRPC Request で gRPC リクエストを送る方法とハマった点を参考にJMeterとプラグインをインストール。

JMeter gRPC Requestのプラグインをダウンロードし、jmeterを展開したディレクトリで展開。

3. JMeterを実行。

$ $JMETER_HOME/bin/jmeter.sh
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

4. JMeter設定

テスト計画に 追加 > Threads > スレッドグループ でスレッドグループを追加。

スレッドグループで 追加 > サンプラー > GRPC Request でGRPC Requestを追加。

image.png

GRPC Requestを選択し、Proto Root Directoryに先ほど git clone したディレクトリ配下のpractice_grpc/server/go_grpc/proto を指定。
Listingボタンを押下して、helloworld.Greeter/SayHelloを選択。

image.png

Send JSON Format With the Requestにリクエストの中身が表示される。

docker psを実行してサーバーのポートを調べる。8080です。

$ docker ps
CONTAINER ID   IMAGE                  COMMAND   CREATED          STATUS          PORTS                    NAMES
f042f5d39bbd   practice_grpc-server   "bash"    54 minutes ago   Up 54 minutes   0.0.0.0:8080->8080/tcp   server-grpc
ff45f296cb40   practice_grpc-client   "bash"    54 minutes ago   Up 54 minutes

localhostの8080ポートでアクセスできるので、JmeterのWeb Server の Server Name or IPとPort Numberを設定してやる。

こちらのボタンを押すとリクエストが送信される。
image.png

送信されたことの確認はサーバーのコンテナに入り、

$ docker exec -it server-grpc /bin/bash

次のコマンドを実行しておく。

root@f042f5d39bbd:/practice-grpc# cd go_grpc/
root@f042f5d39bbd:/practice-grpc/go_grpc# go run server/main.go
2023/11/07 08:09:28 server listening at 172.18.0.2:8080
2023/11/07 08:10:04 Received: yuki
2023/11/07 08:38:14 Received: Hello
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