App Engineerの開発ノート

AWS、Flutterや開発活動に役立つツール作りなど

JMeterを使用してLambdaの結合テストを実施する

f:id:Simoroid:20211207235707p:plain
Lambda(API Gatewayを紐づけ済み)に対して機能の単体試験が完了した後の、一連の流れを確かめたい、といった結合テストを実施する方法です。

Postman等の様々なリクエストツールがあるかと思いますが、今回はJMeterを使用します。リクエストパラメータ等の設定情報を記載したjmxファイルを用意することで、複数バリエーションのテストが簡易的に実行可能になります。それではJMeterを使用した一連のテストの流れを記載します。

JMeterをダウンロード

下記からダウンロードできます。※開発元はApacheなのでそれなりに信用できますね。
https://jmeter.apache.org/download_jmeter.cgi

テストしたいAPIを準備

適当にテスト用Lambdaを用意します。今回は下記で簡易的なものを作成します。
https://ikodatech.com/entry/2021/12/02/070000

API情報
リクエストurl:http://localhost:4566/restapis/j11ln8rnsl/test/_user_request_/hello
リクエストボディ:{"id":"001"}
メソッド:Post

jmxファイルの作成

まずは下記ファイルを実行してツールを起動します。<ダウンロードしたフォルダ\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin>
jmeter.bat

1.Thread Group を作成
Nameを右クリックして -> Add -> Threads (Users) -> Thread Group

2.Thread Group に対して右クリックし下記を作成
Add -> Sampler -> HTTP Request
Add -> Config Element -> HTTP Header Manager
Add -> Config Element -> User Defined Variables
Add -> Listener -> View Results Tree
※その他、適宜必要なパラメータを追加していく必要があります。
f:id:Simoroid:20211207234450p:plain

3.View Results Tree のconfigureから下記を設定し、出力結果を定義
f:id:Simoroid:20211207233257p:plain

jmxファイルの実行

「<ダウンロードフォルダ>\apache-jmeter-5.2.1\bin」 に移動し、下記コマンドを実行。

.\jmeter -n -t FucitonName_TestNo.jmx -l FucitonName_TestNo.log

リクエストに成功しました。下記のように設定したxmlの結果ファイルも出力されています。
f:id:Simoroid:20211207233703p:plain

負荷テストも可能らしく余裕があるときにそれもまとめたい。
ここまで 読んで頂きありがとうございました。
よければフォローお願いします!