- 速度。アプリケーションがどれだけ速く応答するかを判断します。
- 安定性。変動する負荷条件下でアプリケーションが安定しているかを判断します。
- 信頼性。アプリケーションがフォールトトレランスとリカバリーを処理できるかを判断します。
- スケーラビリティ。アプリケーションが処理できる最大の同時ユーザー数を判断します。
セットアップからテスト実行までわずか数分で完了します。
パフォーマンステスト:アプリケーションを試験にかける
急激なトラフィックの増加に対して、アプリケーションのパフォーマンスが安定かつ信頼できることを確認するために、アプリケーションに集中的な負荷をかける同時ユーザー数に近いリアルタイム環境を設定する必要があります。これを実現するには、望ましいユーザー数でテストシナリオを実行し、アプリケーションの背後にあるインフラのボトルネックを特定できるパフォーマンスツールが必要です。
パフォーマンステストの要件がわかったら、次にそれらをサポートできる適切なソリューションを見つけることが重要です。多くのロードテストソリューションやツールがあり、無料のオープンソースツールから、実装と運用に大規模なリソースが必要な高度に複雑な商用オプションまで多岐にわたります。最適なものは自分で調査するのがベストですが、使いやすくすぐに開始でき、複数タイプのロードテストが実行可能で、人気技術との統合やサポートがあり、必要なレポートと指標をすべて提供するソリューションを見つけることが重要です。
この記事では、GatlingとLoadViewの一般的で基本的な違いを見ていきます。
パフォーマンステストツール:Gatling
Gatlingはオープンソースのパフォーマンステストツールです。GatlingフレームワークはScala、Akka、Nettyに基づいています。このツールは開発者がテストを構築し実行し、ローカルまたはクラウドでテストを簡単に管理できます。Gatlingでテストを書くにはDSL(ドメイン固有言語)を使用する必要があり、これはJMeterやTsungが提供するものとほぼ同等です。ただし、JMeterやTsungはXMLで特定のタグを使ってループなどの操作を実装しますが、Gatlingは同様の機能を提供するScalaクラスを定義可能で、より読みやすいです。
Gatlingの利点
- 互換性。ほぼすべてのオペレーティングシステムとブラウザで動作します。
- オープンソース。GatlingはオープンソースでScalaを利用し、読みやすいDSLを持つため、開発者がロードテストをより簡単に作成・実行できます。
- コード管理。Gatlingのバージョン管理により、チームはコードを追跡し再利用してより良いコラボレーションが可能です。
- マルチスレッド。NettyとAkkaツールキットを利用するマルチスレッド機能により、ユーザーごとに新しいスレッドを割り当てずに、単一スレッドで一連のユーザーパスをシミュレートします。
- Assertions API。開発者がテストに並行して多数の機能的チェックを実行可能にします。
- CI/CDツールとの統合。Gatlingの標準機能としてJenkinsなどのCI/CDツールと統合可能です。
- レポート。分析に有用なカラフルで情報豊富なグラフィカルレポートをサポートしています。
Gatlingの欠点
- プロトコルサポートの限定。HTTP、WebSockets、サーバー送信イベント、Java Message Service (JMS)など非常に限られたプロトコルのみサポートしています。
- 統合。独自のホストモニタリング統合がなく、サードパーティアプリケーションを使用して追跡することが多いです。
- ハードウェア要件。無料版を使用する場合、意図した負荷を生成できるサーバーが必要です。
パフォーマンステストツール:LoadView
LoadViewはクラウドベースのパフォーマンステストソリューションで、開発者やエンジニアがウェブサイト、ウェブアプリケーション、ウェブサーバー、ウェブサービスなどに対してロードテストを実行できます。EveryStep Web Recorderを利用して、ユーザーは当社のサイトやアプリケーションで迅速にシナリオをスクリプト化できます。その後、追加のハードウェアやリソースなしで複数の地理的位置からテストを実行可能です。LoadViewのパフォーマンステストはLoadViewが管理するクラウド上で実行され、LoadViewウェブサイトでテストシナリオを作成しテストを開始するだけです。テスト実行時には、AWSの地理的分散されたサーバーが立ち上がり、ロードテスト用の同時ユーザーを生成します。LoadViewのパフォーマンステストシナリオはJenkinsなどのCI/CDツールとも統合可能です。
LoadViewの利点
- 使いやすさ。LoadView上でテストシナリオを作成するには、ブラウザ上でいくつかの詳細を入力するだけで、テストスクリプトの実行、サーバー作成、テストホスティングの内部複雑さはLoadViewが処理します。
- EveryStep Web Recorder。ウェブベースのレコーダーはウェブアプリケーションやウェブサイト内のユーザーシナリオを記録する機能を提供します。多くのデスクトップおよびモバイルブラウザとデバイスをサポートし、動的アプリケーションの作成に使われる技術にも対応しています。
- 仮想ロードインジェクター。世界中の15以上のゾーンにあるAmazon Web Servicesのサーバーを利用しています。
- ユーザーロード分散。ユーザーの大多数がどこから来ているかに基づいて負荷を分散できます。
- レポーティング。実行計画、1分あたりのトランザクション数、平均応答時間、エラー検出の詳細で広範な概要を提供し、テスト履歴や詳細をいつでもレビュー可能です。
- CI/CD統合。Jenkinsとの統合をサポート。
- 簡単なプロキシ設定。ファイアウォールの内側にある内部アプリケーションのテストが可能です。
- 24時間365日のサポート。質問や問題に対応するサポートチームが24時間体制で利用可能です。
LoadViewの欠点
- オープンソースではない。LoadViewは商用ツールであり、クラウドでのテスト実行に料金が必要です。さらにツールの修正は適切なサポートチャネルを通じて行う必要があります。
比較:GatlingとLoadView
GatlingとLoadViewの主な違いのいくつかを見てみましょう。
| 項目 | Gatling | LoadView |
| ロードテストアプリケーションのサポート | GatlingはHTTP、WebSockets、JMSをサポートします。 | LoadViewはFlash、HTML5、Java、PHP、JavaScript、Ruby、Silverlightなどの複雑なアプリケーションをサポートします。 |
| ユーザーアクションのスクリプト作成 | ScalaとDSL言語の基本的な理解が必要です。 | ニーズに合わせたシナリオを記録するのに便利なユーザーフレンドリーなレコーダーがあります。 |
| テストの実行 | 自身のマシンまたは専用サーバー群からテストを実行します。 | 完全管理されたクラウドサーバー上で実行されます。 |
| 地理的分散ロードテスト | テスト用のロードインジェクターサーバーを専用場所に設定する必要があります。 | ユーザーがいる地域からトラフィックを簡単に分散させることができます。 |
| ドキュメンテーションとサポート | Gatlingはクイックスタートとユーザーガイドを提供します。 | LoadViewはサポート記事とドキュメントを網羅したナレッジベースを持ち、24時間365日の電話サポートもあります。 |
| 価格 | オープンソースのため無料で使用できます。 | LoadViewはニーズに応じた複数の料金プランがあります。 |
| CI/CDツールとの統合 | Jenkinsプラグインをサポートします。 | Jenkinsプラグインをサポートします。 |
| 本番後のモニタリング | サードパーティアプリケーションとの統合が必要で、リアルタイムモニタリングは提供していません。 | Dotcom-Monitorは本番後モニタリングソリューションを提供し、ウェブサイトやアプリケーションの健康状態をチェックします。 |
まとめ:パフォーマンステストツール Gatling vs LoadView
これはパフォーマンステストツールであるLoadViewとGatlingの概要です。もちろん、実際のシナリオをより良くシミュレートする旅を進める中で、多くの課題や新しい気づきに出会うでしょう。GatlingとLoadViewはそれぞれの要件やテストシナリオに基づいて役割を果たします。各ツールの利点と欠点、Jenkinsとの統合、そして各ツールの特徴を簡単に見てきました。多くの組織や開発者はGatlingのようなオープンソースのロードテストツールを利用していますが、LoadViewが提供する利点は非常に強力で、開発者やパフォーマンスエンジニアのニーズを満たすのにより適しています。
LoadViewをぜひお試しください。開始するための無料ロードテストが利用できます。また、無料ライブデモにサインアップし、パフォーマンスエンジニアとセットアップやロードテスト実行の説明を受けることも可能です。