Artillery

負荷テストツールArtilleryの画像
引用元:GitHub(https://github.com/artilleryio/artillery)

Artilleryは、簡単に記述してテストを実行できる、開発者の生産性を重視した負荷テストツールです。ここでは、Artilleryの特徴や仕組み、使い方について解説します。

Artilleryの特徴

使いやすい

yamlファイルを使用することで、宣言的にシナリオを作成できる点がArtilleryの特徴です。シナリオの作成は簡単かつ直感的で、複雑な内容もyamlで記述できます。

その際、スクリプト言語を使用する必要がないため、プログラミングに対する高度な知識がなくても利用可能です。

幅広いアプリケーションのテスト

Webアプリケーション、HTTP API、GraphQLサービスなど、多様なアプリケーションで負荷テストを実行できます。

さらに、serverless-artilleryを活用することで負荷を高めることができます。通常の環境ではサーバスペックに制限があり、負荷テストの実行に限界がありますが、ArtilleryではAWSやAzureアカウント内で負荷テストを実行できるため、リソース不足を気にせず利用できます。

豊富な機能

Artilleryには、レポート共有やコラボレーションを支援する機能が搭載されており、テスト結果を簡単に共有できます。また、多様な統合機能を備えており、監視ツールや可観測性ツール、CI/CDパイプライン、IDEとの連携も可能です。

分散負荷テスト

分散負荷テストのサポートが組み込まれており、クラウドネイティブでの実行が可能です。そのため、専用インフラを準備する必要がなく、分散型の負荷テストを簡便に実行できます。

また、チームごとのアカウントでテストを実行できるため、運用コストを抑えられる可能性があります。現在はAWS Lambda、AWS Fargate、Azure ACIなどのランタイムプラットフォームに対応しており、今後Kubernetesのサポートも予定されています。

Artilleryの仕組みと使い方

Artilleryの仕組み

Artilleryには、serverless-artilleryが用意されています。これにより、サーバレス環境で負荷テストを実行できる仕組みを提供。Serverless Applicationを構成管理するために、内部でServerless Frameworkが使用されています。

負荷テストの実行時には、シームレスな操作を目指した仕組みが採用されています。実行結果は視覚的に確認することが可能で、シナリオの組み合わせや段階的なアクセス数増加なども柔軟に設定可能です。初めての方でも試しやすい仕組みになっています。

Artilleryの使い方

ローカルフォルダにnpmコマンドを利用して、serverless-artilleryのインストール・セットアップを行います。

AWSアカウントのクレデンシャルを設定すると、テストの実行が可能になります。CSVファイルからデータを読み込むことで、大量のリクエストを効率的に生成できます。

パフォーマンス低下に悩んだら、「改善提案型」負荷テストサービスに任せよう

社内の少数メンバーで使う小規模なシステムや、単発で済む程度の負荷テストであれば、フリーの負荷テストツールでも十分です。ただし負荷は一度解消したからといって二度と発生しないわけではなく、アップデートの度にテストが必要になるケースも多いのが実情。

負荷テストサービス会社の中には、検出したバグを分析した上で改善アクションまで踏み込んでくれるところがあります。依頼するなら、こういった改善までできる会社がおすすめです。というのも、エンジニアが本来の開発に集中でき、自動的に不具合やバグの報告が上がり適宜改善してくれる仕組みこそが、理想の開発環境と言えるからです。

当サイトでおすすめしている3社は、この要件を満たしています。あなたが抱えている課題を、それぞれの会社が持つ「独自の強み」で解決してくれますので、ぜひ依頼先選びの参考にしてみてください。

改善アクションまで任せられる
負荷テストサービス会社 3選を見る

Artillery利用の注意点

複数のYAMLファイルに分割される可能性

インストールする際には、互換性を事前に確認しておくことが重要です。ArtilleryとPlaywrightの互換性についても確認することで、トラブルを未然に防ぐことができます。

Artilleryの対応プロトコル

コアエンジン(本体に同梱)

エンジン 対応プロトコル/用途
HTTP REST/GraphQL/一般 API。GET/POST などの各種メソッドをサポート
WebSocket 双方向リアルタイム通信
Socket.IO Socket.IO 独自イベントベース通信
Playwright 本物のヘッドレスブラウザを VU として動かし SPA/PWA のフロントエンド性能を計測

公式ドキュメントで例示されている追加プロトコル

エンジン 実現方法
SOAP カスタム JS 関数を使った例が公式サンプルに掲載
AWS Kinesis artillery-engine-kinesis (公式 GitHub で紹介)
改善までお任せできる
負荷テストサービス3選

負荷テストサービス会社は数多くありますが、それぞれ得意とする領域は違います
原因特定力が高くスピーディに解決できる会社もあれば、アフターサポートが手厚い大手ソフトウェアテスト会社、インフラレベルの大規模テスト実績が豊富な会社など、強みも様々。
ここでは代表的な3つのニーズに分けて、おすすめの会社を紹介しています。

2週間でトラブルの原因特定
スピーディな負荷改善
を求めるなら
Airitech
おすすめの理由
  • トラブルシュートに強く、たった2週間で不具合を特定できる
  • 必要があれば前工程の性能改善に踏み込み、テストを実施してくれる
  • 多様な観点からシナリオを提示し、検証後の実装まで動いてくれる

\スピーディな負荷改善/

原因特定が早い
Airitechの負荷テストを
公式サイトで詳しく見る

Airitechの負荷テストについて
電話で問い合わせる

Airitechの負荷テスト
についてもっと詳しく見る

幅広いケースの改善実績あり
大手の安心サポート
を求めるなら
SHIFT
おすすめの理由
  • 改善実績が豊富で、自身のケースにおける適切な解答が分かる
  • 土日祝も対応の手厚いサポートで、安定稼働を実現できる
  • 第三者検証の老舗だから、複合的な機能テストも依頼できる

\安心サポート/

安定稼働を徹底サポート
SHIFTの負荷テストを
公式サイトで詳しく見る

SHIFTの負荷テストについて
電話で問い合わせる

SHIFTの負荷テスト
についてもっと詳しく見る

インフラレベルの不具合も改善大規模高負荷テスト
を求めるなら
ディーネット
おすすめの理由
  • JMeterのマスタ・スレーブ構成により、大規模負荷テストができる
  • 運用代行がメインの会社だから、テスト後の環境安定化に強い
  • 高負荷障害や大規模インフラなど、長大テストの改善にも対応できる

\大規模&高負荷/

大規模環境に強い
ディーネットの負荷テスト
を公式サイトで詳しく見る

ディーネットの負荷テストについて
電話で問い合わせる

ディーネットの負荷テスト
についてもっと詳しく見る

改善アクションまで
任せられる
負荷テストサービス会社3選を見る