デザインワン・ジャパン Tech Blog

DesignOne Japan | Activate the World.

AWS 分散負荷テスト(Distributed Load Testing on AWS)でJMeterのシナリオを使ったテストについて

まえがき

なかなかゴルフが上手くならない インフラエンジニアの 冨田(@komitta)です。

今回はAWS 上の公式ソリューションサービスであるDistributed Load Testing on AWS*1上でJMeterのシナリオを使って、負荷試験を実施したときの内容をお話ししたいと思います。

Distributed Load Testing on AWS とは

Distributed Load Testing on AWSAWSが提供している負荷試験のためのソリューションサービスで、

CloudFormationテンプレートを使ってデプロイすることができます。

最大、50タスクのFargateインスタンスを起動することができるので、負荷試験を行う際クライアント側の負荷を意識する必要がないのが特徴です。

※導入方法については割愛します。クラスメソッドさんの下記記事を参考にしてください。

AWSの負荷テストソリューションを試してみた | DevelopersIO

JMeterのシナリオを使って実行が可能

JMeterApacheソフトウェア財団が提供するオープンソース負荷試験ツール*2です。

JMeterではテストシナリオを設定することができ、作ったシナリオは jmx ファイルとして保存することができます。

Distributed Load Testing on AWS上ではこのjmxファイルを使ってテストを行うことができます。

JMeterシナリオテストで外部ファイルを使う場合

JMeterで複雑なシナリオを作成することができます。

例えば複数のパスに対してテストを実行したいとき、CSV DATA Set Config*3を使うことで複数のパスに対してテストを実行することができます。

このようなシナリオの場合、csvファイルの指定はローカル上ファイルパスが指定されているため、そのままjmx ファイルをDistributed Load Testing on AWS にアップロードして実行をしてもcsvファイルが見つからないためエラーとなり実行することができません。

この場合、csvファイルとjmx ファイルを同一の階層に配置し、相対パス で指定する必要があります。

If you include JMeter input files with your JMeter script file, you must include the relative path of the input files in your JMeter script file. In addition, the input files must be at the relative path. For example, when your JMeter input files and script file are in the /home/user directory and you refer to the input files in the JMeter script file, the path of input files must be ./INPUT_FILES. If you use /home/user/INPUT_FILES instead, the test will fail because it will not be able to find the input files.

docs.aws.amazon.com

配置したファイルをzip で固めてDistributed Load Testing on AWSにアップロードすることで、csvファイルが読み込まれて負荷試験を実行することができるようになります。

まとめ

JMeterのシナリオファイルを使った Distributed Load Testing on AWS について紹介しました。

Distributed Load Testing on AWS 単体では1URLへのシンプルなテストしかできませんが、

JMeterのシナリオファイルを使うことでより複雑なテストを実行することができます。

AWS上で負荷試験を行う際の参考になれば幸いです。

おわりに

仲間を募集しております

募集中の職種については以下を御覧ください。

www.wantedly.com