そこで、負荷テストを考えています。
もしかしたら、現在使用しているソリューションに不満を感じていて、テストを作成して保守するのが難しすぎると感じているかもしれません。あるいは、初めて負荷テストを実行しようと考えているかもしれません。いずれにせよ、これは負荷テストについて考えるための素晴らしい第一歩です。多くの企業は負荷テストを行わず、その結果に苦しんでいます。
アプリのパフォーマンスと、収益、顧客サインアップ、またはより一般的な顧客満足度などの重要なビジネス指標との間には、確立された関連性があります。 Web 上でビジネスを行うすべての企業は、パフォーマンスがこれらの重要な指標に悪影響を与えないようにする必要があります。これらの対策が改善されている場合でも、消費リソースを減らすことでアプリの実行が改善され、その過程であなたとユーザーのお金を節約できる可能性があります。
負荷テストを初めて行う場合でも、この分野での経験がある場合でも、作業を完了するために利用できるツールやアプローチが目まぐるしく存在することをご存じでしょう。今日は、私の新しいお気に入りの負荷テスト ツールであるFlood Elementについてお話したいと思います。
一般的なツールの多くはプロトコル レベルで動作し、ネットワーク リクエストを発行することでアプリ上でのユーザーの動作を近似しようとします。しかし、今日の World Wide Web では、Web アプリはますます洗練されており、増え続けるブラウザーの機能リストをこれまで以上に多く活用しています。
オンライン ショップのような一見単純なアプリでも、ユーザーのオンラインでの商品選択、注文、支払いのエクスペリエンスをできるだけスムーズにするために、豊富なブラウザ機能が使用されています。
そのため、この Web の現代では、プロトコル レベル ユーザー (PLU) テストでは、アプリのパフォーマンスの全体像を知ることしかできません。対照的に、Flood Element のような新しいツールは、実際の Web ブラウザを使用してユーザーの動作をシミュレートすることによってテストします。このアプローチをブラウザ レベル ユーザー (BLU) と呼びます。
Flood Element では、リンクやボタンのクリック、Web フォームへの入力などの単純で自然なアクションを使用して、シミュレートされたユーザーの動作が定義されます。動作を定義したら、flood.io で大規模に実行するのは簡単です。大規模とは、世界中の数千のユーザーを意味します。
Flood Element を使用した負荷テストは、ユーザーが体験するアプリのパフォーマンスの全体的で直感的なビューを開発するのに役立ちます。ユーザーとして考えることは、私たち自身がユーザーであるときに誰もが自然に行うことであることを考えると、従来の PLU ツールよりも Element BLU テストを始める方がはるかに快適です。
全体的な視点
Flood Element を使用してユーザーの観点からアプリ全体のパフォーマンスを測定することは、アプリのパフォーマンスの全体的なビューを作成し、一時的な異常であれ、コードの回帰であれ、説明できない変更を防ぐための優れた方法です。
Flood Element BLU テストは、ユーザー エクスペリエンスに非常に近いパフォーマンスのビューを提供します。これらは、ユーザーが経験するパフォーマンスのあらゆる部分を考慮します。ネットワーク パフォーマンスだけでなく、ページ上のスクリプトのパフォーマンスや、分析や広告アドインなどのサードパーティ スクリプトも考慮されます (実際、私たちのテストは非常に現実的であるため、 Google Analytics に虚偽のデータが作成されないように措置を講じる必要があります。)
Element を使用して BLU 負荷テストを実行すると、ある時点でのアプリのパフォーマンスを全体的に把握できる場合、定期的にテストを実行すると、アプリが速くなっているのか、遅くなっているのかを直感的に把握できるようになります (サインアップ ウィジェットのシナリオのように突然起こる可能性があります)。 。
テストを書く
ここで、Flood Element を使い始めるのがいかに簡単かを見てみましょう。
要素スクリプトはTypeScriptまたは最新の JavaScript で記述されます。最高のエクスペリエンスを得るには、VS Code を使用して編集された TypeScript の優れた組み合わせを使用することをお勧めします。これは、テストの開発に多くの役立つ支援を提供するためです。
こちらの開始手順に従って Element をインストールできます: https://element.flood.io/
インストールしたら、スクリプトをローカルで編集してテストし、flood.io にアップロードする準備ができたら、ここでトライアルにサインアップして本格的な負荷テストを実行します: https://flood.io/load-performance-テストツール/フリーロードテスト-トライアル/
上記のサインアップ シナリオの基本的な Element BLU テストは次のようになります。
プロトコル レベルでのテストに慣れている場合は、すべてのタイミングが要求と応答のトランザクションを中心に配置されていることをご存知でしょう。ブラウザ レベルでのテストの方法を学ぶ場合、テストを調整する際に考慮すべき点がいくつかあります。特に、実際には組み込みのタイミング グループがないため、テストの構造に独自のタイミング グループを導入する必要があります。
タイミングをグループ化するための最も簡単なアプローチは、ユーザーと同じように、必要な要素がページに表示されるのを待つことです。
上記のシナリオから、サインアップのユーザー エクスペリエンスのタイミングに興味がありますが、ページの読み込みにはあまり興味がありません。したがって、最初のステップでは、URL にアクセスし、ページが既知の状態に達するまで、つまりタイトルが表示されるまで待ちます。
次に、注目したい動作、つまりサインアップに記入して送信します。
次に、スクリプトをローカルに保存して、スクリプトを Flood にアップロードし、数百、さらには数千の同時ユーザーで実行できるようにします。
- (まだお持ちでない場合は) Flood にサインアップしてください。
- プロジェクトを作成する
- 新しいプロジェクトで「フラッドの作成」オプションをクリックします。
- Flood Element オプションを使用してテストを作成する
- テストに名前を付けます
- 作成した .ts スクリプトをアップロードします。
- ブラウザー (ユーザー) の数と地域の数を設定して、ユーザーの合計数 (ブラウザーの数 * 地域の数) を取得します。また、テスト期間を設定することを忘れないでください。
- テストを開始し、結果が届くまで待ちます。
- 結果が得られたら、グラフを表示し、問題が浮き彫りになる可能性のある領域にジャンプします。
結論
これで、Flood Element を使用してブラウザ レベル ユーザーでテストする理由 (および方法) がわかりました。この新しいアプローチにより、負荷テストを作成する際の煩わしさの多くが解消され、同時に結果がより現実的なものになりました。
何千人ものユーザーを使ってテストするのは気が遠くなるように思えるかもしれませんが、各部分を一度に 1 ステップずつ進めるのは簡単です。
- ダウンロード要素
- 主要なシナリオ (チェックアウトなど) をカバーする簡単なテストをローカルで作成します。
- 「element run」を使用してローカルでテストを実行し、テストが完全に実行されることを確認します。
- テストを Flood にアップロードし、最大負荷の 5 ~ 10% で実行します (つまり、最大負荷が 5,000 ユーザーの場合は、250 ~ 500 ユーザーから始めます)。
- 結果を評価し、必要に応じてスクリプトとアプリを調整します
- テストを Flood にアップロードし、最大負荷の 50 ~ 100% で実行します (つまり、最大負荷が 5,000 ユーザーの場合は、2,500 ~ 5,000 ユーザーで実行します)。
- 希望するテスト カバレッジに達するまで、必要な追加シナリオをカバーするためにテスト カバレッジを増やします。
テスト シナリオの複雑さによっては、1 日以内に数千人のユーザーを立ち上げて実行できる場合があります。時間を無駄にしないでください。https: //element.flood.ioにアクセスして、今日から Flood Element の実験を始めてください。