見出し画像

負荷テストツールLocust学習4:LocustのGUIとCLI

はじめに

こんにちは、SHIFT DevOps推進2グループの李です。前回はLocustのパラメータについて紹介しました。今回は前回で紹介したパラメータを実際使って、GUIとCLIの操作方法を紹介しようと思います。

下記が今回使用するソフトウェアです。

内容を5つのシリーズに分けて紹介したいと思います。

連載目次:

  1. 負荷テストツールLocust学習1:Locustとは

  2. 負荷テストツールLocust学習2:Locustを書いてみる

  3. (前回)負荷テストツールLocust学習3:Locustのパラメータ

  4. (今回)負荷テストツールLocust学習4:LocustのGUIとCLI

  5. 負荷テストツールLocust学習5:Locustの分散モード

LocustのGUI

学習2で「locust -f locust_test.py」コマンドを紹介しました。
今回はもっと長いパラメータをためしてみましょう、まずはターミナルを開いて「locust -f locust_test.py -H https://api.open-meteo.com/v1 -P 8080 -u 10 -r 5」を入力してください。
このパラメータはホスト(-H)、ポート(-P)、ユーザ数(-u)と毎秒起動するユーザ数(-r)という4つのパラメータを指定します。

ブラウザのURLでに「http://localhost:8080/ 」を入力して、LocustのGUIテスト画面を開きます。
すでに画面中にユーザ数と毎秒起動するユーザ数とテスト対象は入力しているので、毎回入力する必要はないです。

※実行中のスクリプトを中止する場合はターミナルで「Ctrl+C」を入力します。

LocustのCLI

ここからはLocustのCLIパラメータを紹介します。
ターミナルで「locust -f locust_test.py --headless -H https://api.open-meteo.com/v1 -u 10 -r 5 --run-time 2m --csv test」を入力してください。
このパラメータはCLIモード(--headless)、ホスト(-H)、ユーザ数(-u)と毎秒起動するユーザ数(-r)の4つのパラメータを指定して、実行時間(--run-time)を2分間に設定します。
実行時間についてはs(秒)、m(分)、h(時間)で指定することが可能です、例えば30s、10m、3h30mなどの形式で指定します。
最後にレポート(--csv)をtestという名前で保存します。

注意:CLIで実行する場合に、実行時間を指定しないとスクリプトが終了されないので、実行時間の設定を推奨します。

終了しましたら、Visual Studio Codeのファイル一覧に下記の4つCSVファイルが追加されます。

  1. test_exceptions.csv:実行時に例外処理したケースが記録されます。

  2. test_failures.csv:実行時に失敗したケースが記録されます。

  3. test_stats_history.csv:実行中の1秒ごとの統計情報が全て記録されます。

  4. test_stats.csv:サマリーレポートです、リクエスト数、平均レスポンス、中央値、最大値などが記録されます。

CLIモードではUIの操作がないので、自動化テストかCI/CDに連携するのは簡単です。
例えばPowerShellやGitLabと連携したら、新たなバージョンをリリースされた際に、自動的にテストすることもできます。

次回のお知らせ

今回はLocust(ロウカスト)GUIとCLIのパラメータの使用方法について、簡単に紹介しました。Locustのパラメータにはまだ色んなパラメータがあって、興味がある方は是非Locustのドキュメントを確認してみてください。

次回は最終回です。
Locustの特長の分散モードについて紹介したいと思います。

最後までお読みいただきありがとうございました。
また次回の記事でお会いしましょう!

参考資料

  1. https://docs.locust.io/en/latest/

  2. https://note.com/shift_tech/n/n77be58376523#ツール自体の性能はどのくらいだろう?


執筆者プロフィール:李 嘉興
社会人になって以来、数年間システムエンジニアとして多数のプロジェクトの開発(要件定義~リリース)を経験したのち、2021年7月にSHIFTに入社。
システムエンジニアの仕事と全く違う分野の自動化とCICDを経験しつつ、未来のキャリアのため日々奮闘中。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/