web-dev-qa-db-ja.com

AngularJS Webアプリケーションのパフォーマンステスト方法

私は主にJMeterスクリプトを使用してWebサイトのパフォーマンステストを行っていました。

ただし、AngularJSなどのフロントエンドMVCを使用してビルドされるプロジェクトが増え、現在のプロジェクトはangularビューファイル、REST呼び出しを介してすべてのコンテンツをロードしています残念ながら、JMeterはjavascriptを実行しないため、ロードテストでホームページが(400ミリ秒)だけ返されます。実際には、ブラウザにロードするのに実際に数秒かかります。まだAngularによるデータ。

ネットワークトラフィックを調査し、各コンポーネントを個別にロードする代わりに(たとえば、profile.html、notification.html、REST呼び出しなど)。市場に製品があるか、私が従うことができるいくつかの最良のケースはありますかこれは、JMeterスクリプトの実行に似ていますが、javascriptの実行と、javascriptによる外部リソースの読み込みを考慮していますか?

(javascriptの実行時間をプロファイルするつもりはありません。これは、背後のインフラストラクチャがxyz同時ユーザーに対応できるかどうかをテストするためです)

14
jens

JMeterはクライアント側のJavaScriptを実行できませんが、関連するリクエストを HTTP(S)Test Script Recorder 経由で記録できます。記録されると、JMeterの Transaction Controller を使用して、すべてのスタンドアロンリクエストを1つの「集約」に結合できるはずです。

何らかの理由でこの簡単なアプローチが役に立たない場合は、 JMeterでAJAX/XHR対応サイトのテストをロードする方法 オプションとヒントを確認してください。

6
Dmitri T

Chrome devツールを使用して、Webアプリでこの種のパフォーマンステストを行います。Chromeプロファイリングドキュメント(- https: //developer.chrome.com/devtools/docs/javascript-memory-profiling )。goolgeドキュメントのパフォーマンスとプロファイリングのすべてのセクションは本当に良いです!

4
farolfo

https://github.com/kidk/felt この特定の目的のためにビルドされています。

PhantomJS/SlimerJSを使用してWebサイトへの負荷を生成するため、通常のブラウザーでのように取得するすべてのAPI/JS/CSSおよび画像呼び出しを取得します。それはまだ若いプロジェクトですが、あなたが探しているソリューションかもしれません。

(これは私の個人的なプロジェクトです)

2
kidk

テストから起動したリクエストに対して、オプション「モニターとして使用」を使用してみてください。

http://jmeter.Apache.org/usermanual/build-monitor-test-plan.html

しかし、彼らはパフォーマンスキラーです。もう1つのオプションは、リスナー「ファイルへの応答の保存」を使用して、終了HTMLが配信されるかどうかを確認することです。理想的な結果は得られないはずですが、役に立つかもしれません。

1人のユーザーのXHRのパフォーマンスを追跡する場合、SeleniumとBrowserMob Proxyを試してみることができますが、ストレステストではなく機能テストの下にあります。

2
Neill Lima