はじめに
負荷試験ツールとしてGatlingを初めて使用したので、インストールからGatling実行結果を確認するまでの手順をまとめました。
Gatlingとは
Gatlingはオープンソースの高性能負荷テストツールで、主にHTTPプロトコルを使用したWebアプリケーションを対象にしたものです。その設計により、高度なシナリオを記述し、テストの結果を分かりやすい形で表示できます。これにより、大量のユーザートラフィックを扱う能力がサーバーに備わっているか確認することが可能となります。
GatlingではScalaというプログラミング言語が利用されており、DSL(ドメイン特化言語)を使って負荷テストシナリオを定義します。このため、複雑なシナリオでも読みやすく、メンテナンスしやすいコードを書くことが可能となります。
Kotlinプロジェクトの構築について
Gatling自体はScalaをベースにしていますが、他のプログラミング言語でも使用可能です。KotlinとGradleを使用したプロジェクトであるgatling-gradle-plugin-demo-kotlinです。
このプロジェクトは、Kotlinで記述されたGatlingのシナリオを実行するデモンストレーションとなっています。Gradleプラグインを使用することで、Gatlingのシミュレーションを簡単に実行することが可能です。
1.クローン
git clone https://github.com/gatling/gatling-gradle-plugin-demo-kotlin.git
2.ディレクトリへの移動
cd gatling-gradle-plugin-demo-kotlin
3.Gatlingシミュレーションの実行
./gradlew gatlingRun
上記のコマンドを実行すると、GradleとKotlinを用いてGatlingのシミュレーションが実行されます。./gradlew gatlingRunコマンドはプロジェクト内の全てのGatlingシミュレーションを実行します。
Gatlingの負荷試験結果について
Gatlingの負荷試験が完了すると、詳細なレポートがHTML形式でresultsフォルダに生成されます。このレポートは非常に分かりやすく、パフォーマンスの各指標を視覚的に理解することが可能です。
以下に示すのは、典型的なGatlingの結果レポートのスクリーンショットです。
このレポートには以下の情報が含まれています。
・Response Time Ranges
レスポンス時間の範囲(レンジ)ごとにリクエストの数を集計したものです。
・Number of requests
負荷テスト全体で何回のリクエストが行われたかを示す数値です。
・Response Time X percentile
計測したデータの全体のX%に位置するレスポンスタイム(ms)
・Cnt/s
"counts per second"の略で、1秒あたりのリクエスト数を示しています。
以上の詳細なレポートにより、Gatlingを用いた負荷試験の結果を深く理解し、それに基づいてアプリケーションのパフォーマンス改善を行うことが可能となります。