Links
環境
serverless artillery 0.5.2
Serverless Framework 1.82.0
npm 6.13.4
※注意:2020/12/19現在Serverless Frameworkが最新だとserverless artillery動作せず
実行手順
インストール
$ npm install -g serverless-artillery
ディレクトリと設定ファイルの作成
$ mkdir my-test && cd $_
# 設定用ファイルの作成
$ slsart configure
$ touch script.yml
ファイルの編集
serverless.yml
- regionsの設定を追記(デフォルトだと
us-east-1
) - LambdaにVPCを紐付ける場合はvpc設定も追記
provider:
name: aws
region: ap-northeast-1
vpc:
securityGroupIDs:
- xxxxx
subnetIDs:
- xxxxx
script.yml
- URLやpayloadなどを追加
- 参考:Testing HTTP - Artillery.io Docs
config:
target: "http://api-host"
phases:
-
duration: 30
arrivalRate: 3
scenarios:
-
flow:
-
post:
url: "/sample"
headers:
Content-Type: "application/json"
json:
Name: "User Taro"
Age: 20
...
※注意:Content-Type
ヘッダを設定しているが、実際に実行するとヘッダ名がcontent-type
と小文字になるので、処理に影響する場合は対策が必要
デプロイとテストの実行
-
~/.aws/credentials
の設定は事前にしておく
$ AWS_PROFILE=your-profile slsart deploy --stage test
$ AWS_PROFILE=your-profile slsart invoke --stage test
※注意:VPC Endpoint経由でAPIを叩く場合、Lambdaからローカルに結果が返ってこないので、CloudWatch Logsを確認する必要がある(回避方法あるかも?)
リソースの削除
$ AWS_PROFILE=your-profile slsart remove --stage test1