API のロード テストを行う方法

1595 ワード

プログラマーとして、作成したソフトウェアが高負荷時に十分に機能するかどうかを知ることは役に立ちます.多数のユーザーが同時にファイルをアップロードするとどうなるでしょうか?例外的な負荷とは何ですか?いつクラックしますか?

パフォーマンス テストとは、負荷をシミュレートし、ソフトウェアが負荷を処理する方法を測定することです.これらのテストは、バグ、脆弱性、セキュリティ ホットスポット、またはコードの匂いを見つけるためのものではありません.

負荷テスト



負荷テストから開始することをお勧めします.負荷テストは、毎日の使用中に予想される負荷でのパフォーマンスをテストすることです.これは、他のテスト (ストレスとスパイク) でシステムをどこまでプッシュできるかをベンチマークして判断するための出発点です.

負荷テストの目的は、環境を壊すことではなく、高負荷下でのシステム パフォーマンスの指標を見つけることです.

テストツール



この場合、 k6 from Grafana Labs を使用します.複数のオペレーティング システムに簡単にインストールできます.

k6 がインストールされている場合は、load_test.js という名前の JavaScript ファイルを作成します.

import http from `k6`/http;

export const options = {
    vus: 10, // max. number of virtual users
    duration: '30s', // max. duration in seconds
};

export default function () {
    http.get('http://your_api.com/my_endpoint');
}


このスクリプトを実行するには、ターミナルの JavaScript ファイルのルートに次のコマンドを入力します.

$ k6 run script.js


出力



可能な出力は次のようになります.



主にこれら 2 つの変数をチェックして何が起きているかを確認しますが、私は次のように言います.

ボーナス



Apache Web サーバーを実行していて、ログに「内部ダミー接続」というメッセージが表示される場合は、Apache の設定で「ワーカー」を確認してください.デフォルトでは、「vus」と同様に最大 2 に設定されています.