ソフトウェア ストレス テストは、すべての重要なソフトウェア テスト作業の一部である基本的な品質保証動作です。したがって、ストレステストは非常に重要ですが、ストレステストをどのように行うか?今回は超実用的なストレステストツール「abツール(Apache bench)」を紹介しますので、お役に立てれば幸いです。
推奨される関連ビデオ チュートリアル: 「 数千万のデータ同時実行ソリューション (理論的実践) 」
書き込み内容前回
ab ツールを学ぶ前に、ストレス テストに関するいくつかの概念を理解する必要があります
スループットレート (1 秒あたりのリクエスト数)
概念: サーバーの同時処理能力の定量的な説明。単位は reqs/s で、一定数の同時ユーザーに対して単位時間あたりに処理されるリクエストの数を指します。一定の同時ユーザー数の下で単位時間あたりに処理できるリクエストの最大数を最大スループット率と呼びます。
計算式: リクエストの総数 / これらのリクエストの処理にかかった時間、つまり
1 秒あたりのリクエスト = 完了したリクエスト / テストにかかった時間
同時接続数
概念: ある時点でサーバーによって受け入れられるリクエストの数、簡単に言えば、セッションです。
同時ユーザー数 (同時実行レベル)
概念: この概念と同時接続数の違いに注意してください。同時に複数のセッション、つまり接続の数を持ちます。
ユーザーの平均リクエスト待ち時間 (リクエストあたりの時間)
計算式: すべてのリクエストの処理にかかった時間 / (リクエストの合計数 / 同時ユーザー数) )、つまり、
リクエストあたりの時間 = テストにかかった時間 / (リクエストの完了 / 同時実行レベル)
サーバーの平均リクエスト待機時間 (リクエストあたりの時間: すべての同時実行全体)
計算式: すべてのリクエストを完了するのにかかる時間/リクエストの総数、つまり
Time Take for /testsCompleterequests
ご覧のとおり、これは逆数です。スループットレートの。
同時に、= ユーザー リクエストの平均待機時間 / 同時ユーザー数、つまり
リクエストあたりの時間 / 同時実行レベル
##Abツール紹介
abの正式名称は: apache bench
ab は、Apache Hypertext Transfer Protocol (HTTP) のパフォーマンス テスト ツールです。その設計意図は、現在インストールされている Apache の実行パフォーマンスを描写することであり、主に、インストールされている Apache が 1 秒あたりに処理できるリクエストの数を示すことです。
ab は、Apache 独自のストレス テスト ツールです。 ab は非常に実用的で、Apache サーバー上で Web サイトのアクセス ストレス テストを実行できるだけでなく、他の種類のサーバー上でもストレス テストを実行できます。 nginx、tomcat、IIS など。
ab ツールをダウンロード
Apache 公式 Web サイト http://httpd.apache.org/ にアクセスし、 apache をダウンロード
ab ツールを開始します
Windows 環境では、Apache のインストール パスを C:\apache\Apache24\ として取得します。例として
ターミナルを開いてコマンド cd C:\apache\Apache24\bin
を入力して ab
# を開始します。 ##テストを開始
ab -n 100 -c 10 http://test.com/ を入力します。 -n はリクエストの数を表します。 - c は同時実行数を表します。
##テスト結果の分析
上記のコマンドを実行すると、テストレポートが出力されますテストを完了しますレポート
サーバー情報
文書情報
重要な指標
Concurrency Level: 100 //并发请求数 Time taken for tests: 50.872 seconds //整个测试持续的时间 Complete requests: 1000 //完成的请求数 Failed requests: 0 //失败的请求数 Total transferred: 13701482 bytes //整个场景中的网络传输量 HTML transferred: 13197000 bytes //整个场景中的HTML内容传输量 Requests per second: 19.66 [#/sec] (mean) //吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值 Time per request: 5087.180 [ms] (mean) //用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值 Time per request: 50.872 [ms] (mean, across all concurrent requests) //服务器平均请求处理时间,大家最关心的指标之三 Transfer rate: 263.02 [Kbytes/sec] received //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
ネットワーク消費時間
回答
ログインに関する質問
ストレス テストではユーザーがログインする必要がある場合があります。どうすればよいですか?
次の手順を参照してください。
アカウントとパスワードでログインした後、開発者ツールを使用して、このセッションを識別する Cookie 値 (セッション ID) を見つけて書き込みます。
Cookie を 1 つだけ使用する場合は、コマンド ab -n 100 -C key=value http://test.com/ を入力するだけです。
複数の Cookie が必要な場合は、ヘッダーを直接設定します: ab -n 100 -H "Cookie: Key1=Value1; Key2=Value2" http://test. com/
概要
# 一般的に、ab ツール ab は小さく、シンプルなのですぐに始めて学ぶことができ、必要な基本的なパフォーマンス指標を提供できますが、結果はグラフ表示されず、監視できません。したがって、ab ツールは一時的な緊急タスクや簡単なテストに使用できます。
同じ種類のストレス テスト ツールには、Webbench、Siege、http_load などがあります。
推奨される学習: nginx チュートリアル
以上が超実用的!ストレス テストの成果物を共有する: ab ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。