14

私はウェブサイト(基本的に公開サイト)を開発しています。複数のユーザーがサイトを閲覧し、さまざまなアクティビティを行っていることをシミュレートして、サイトがリアルタイム環境でどのように動作するかを理解するにはどうすればよいですか?

私はApacheサーバーとPHPを使用しています。

4

8 に答える 8

9

以前の投稿で述べたように、負荷テスト ツールが必要になります。良いニュースは、この分野には多くのツールとサービスがあることです。JMeter や Gatling などのオープン ソースの負荷テスト、Loadrunner や Neoload などの商用のツール、悪いニュースは、いくつかの質問に答えていくつかの決定を下さなければならないことです。

行う必要がある重要な決定の 1 つは、アプリケーションをラボでテストするかクラウドでテストするかです。

  • クラウドベースのテスト: Blazemeter、soasta、neustar ...
  • ラボ内テスト: JMeter、Gatling、Neoload、loadrunner、webperformer ....

さらに、次の質問に答える必要があります。

  • サーバーに負荷をかけるためにエミュレートする仮想クライアントの数

  • 予算はどのくらいありますか

  • Web アプリケーションの複雑さ

  • テスターがどの程度のスキルを持っているか。

高予算で複雑な Web アプリケーションと優れたスキルを持つテスター (開発者など) がいる場合は、Loadrunner、NeoLoad を検討できます。

予算が少ないがテスターのスキルが高い場合は、Jmeter と Gating を検討できます。

複雑な Web サイトに負荷をかけるために多数の仮想クライアント (たとえば 10000) をエミュレートする必要があり、テスターに​​開発者/プログラマーのスキルがない場合は、NetGendを検討することをお勧めします。パフォーマンス テストの複雑さ (HTML フォームへの入力、JSON メッセージからの値の抽出など) と、NetGend プラットフォームでのテストの容易さを知ることができるブログサイトがあります。ところで、NetGend に高い予算は必要ありません。

負荷/パフォーマンス テストで幸運を祈ります!

于 2014-01-12T23:56:36.833 に答える
2

必要なのは負荷テストツールです。いくつかありますが、Neoloadを確認してください。Seleniumを使用して、さまざまな方法で Selenium テストを自動的に実行することもできます

于 2013-10-10T08:00:19.987 に答える
2

このタスクに参加するのはこれが初めてなので、そこにいて、それを行い、この活動からの戦いの傷跡を発展させた人を見つけることをお勧めします. ソフトウェアのパフォーマンスをテストするのは簡単なことではありません。従来のソフトウェア ベンダーの話に耳を傾けると、「ビジネス アナリストなら誰でもこのツールを使用して効果を発揮できる」と言うでしょう。このツールは、アプリケーションのパフォーマンス テストを成功させるために必要なスキルの 85 ~ 95% を備えているかのようです。サイト。これは、販売の障壁を取り除くためのマーケティング foo です。

実際には、選択するツールは、成功するために必要なスキル セット全体の 5 ~ 15% の範囲です。また、失敗の経済的リスクがパフォーマンス テストを正当化するのに十分に高い場合、どのツールを選択するかはほとんど問題ではありません。ツールのコストと専門知識は、スケーリングしないという経済的リスクによって小さくなります。

スキルを開発する時間がない場合や、堅実なパフォーマンス テスターを取得するための十分なリード タイムがない場合は、専門知識とバンドルされたツールを提供できる SOASTA など、市場で提供されているマネージド サービスの一部を検討することをお勧めします。契約内。以下は、テストの前に確認する必要のある事項です (一般的な問題)。

  • ロード バランサの構成ミスにより、1 つのノードへの負荷が歪む
  • 静的リソース (.jpg、.css など) のキャッシュの有効期間を適切に管理していないため、予想よりも高い負荷がかかる
  • データベースに対するすべてのルックアップ クエリは、最適化されたインデックスにする必要があります。これを確認するには、データベース プロファイラーを使用します。
  • リソースを保持しすぎる。95 パーセンタイルのページ間リクエスト遅延が 5 分の場合、HTTP セッションのタイムアウトを 30 分または 90 分に設定しないでください。これは、デッド セッションに対してリソースを保持しすぎることになります。経験則として、95 パーセンタイル値に 1.5 を掛けたものを使用します。
  • これがショッピング サイトの場合は、表示されるすべてのユーザーにデフォルトのカートを配布しないでください。カートを見たり、カートに何かを入れたりするなど、カートを渡す前に、彼らが収益経路上にいることを確認してください。それ以外の場合は、すべての顧客と 1 対 1 の関係を構築し、Web サーバーからアプリ サーバー、カートが作成および管理されるデータベース サーバーまで、アーキテクチャのほぼすべての部分を構築したことになります。
  • また、カートの前面に 100x100 ルールを実装します。誰かがカートに 100 個のアイテムを持っている場合は、電話を取り、電話して販売をパーソナライズします。有効期限が切れない永続的なカートがある場合は、その期間のカート項目から退避するか、その期間に触れられていないカートを完全に削除するための 100 日ルールを実装することを検討してください。これらの人々は、明らかに収益の道を歩んでいません。
  • e コマースのデザインを検討してください。カートに追加してからチェックアウトするまでのすべてのステップは、販売を放棄する機会です。ステップが少ないほど、コンバージョン率が高くなります。これは、Amazon のワンクリック チェックアウトの背後にある天才です。ステップ数を最小限に抑えると、結果としてより高い収益フローが得られます。
于 2014-01-03T15:49:34.700 に答える
1

単純。

  1. サーバー/アプリケーション監視のセットアップ- New Relic は最も簡単で強力です。14日間無料。
  2. 典型的なユーザーのアクティビティを記録する- JMeter を使用してラップトップにプロキシを設定し、それを介して Web リクエストやモバイル アプリの使用状況などをルーティングします。難しそうに聞こえますが、実は簡単です。JMeter は中間者として機能し、ブラウザ/アプリからサーバーに送信されたすべてのリクエストをキャプチャできます。
  3. ここで、上記のユーザーを必要な回数だけ「複製」し、サーバーを爆破します。最初に、開発マシンから負荷テストを実行します。私の場合、CPU/RAM がなくなる前に最大 80 人の同時ユーザーを使用できます。このレベルを超えると、BlazeMeter (無料の 50 同時ユーザー)、jmeter-ec2 スクリプト (無料)、flood.io などを探索できます。スクリプトをアップロードして、サーバーを爆破します。理想的には、サーバーで増分ストレス テストを実行する必要があります。10 ユーザー、50 ユーザー、100 ユーザー、200 ユーザーなど。
  4. 分析、問題の修正、ストレスの増加- 各ストレス ブラストの合間に、新しいレリックを確認します。アプリケーションとサーバーのパフォーマンスは? 何が失敗していますか?アラートはどのように機能していますか?
于 2015-04-12T14:31:49.413 に答える
1

負荷テストにはガトリングをお勧めします。これはスカラ ベースですが、ワークロード テスト ケースを生成するためのレコーダーが提供されています。

=> http://gatling-tool.org/

于 2013-10-10T18:51:09.577 に答える
0

UI テストも検索している場合は、Sahi Pro 6 自動テスト ツールを確認してください。Jenkins と統合することもできます。

==> http://sahipro.com/

任意のブラウザでユーザー アクションを記録し、記録したスクリプトを再生するのは非常に簡単です。複数のブラウザで同時にスクリプトを実行できるため、ページを閲覧する複数のユーザーをシミュレートできます。

https://sahipro.com/docs/using-sahi/playback-desktop.html#Distributed%20Runs%20-%20More%20情報

于 2015-11-21T04:42:01.490 に答える