Apache-bench-testing-our-sample-application
サンプルアプリケーションのテスト
前の章では、サードパーティのWebサイトをテストするためのApacheベンチの基本的な使用法を理解しました。 このセクションでは、このツールを使用して、独自のサーバーでWebアプリケーションをテストします。 チュートリアルを可能な限り自己完結型に保つために、デモ用にPythonアプリケーションをインストールすることを選択しました。専門レベルに応じて、PHPやRubyなどの他の言語を選択できます。
Pythonをインストールする
通常、PythonはデフォルトでLinuxサーバーにインストールされます。
Bottle Frameworkのインストールと簡単なアプリケーションの作成
Bottleは、Webアプリケーションを作成するためにpythonで書かれたマイクロフレームワークであり、pipはpythonパッケージマネージャーです。 ターミナルに次のコマンドを入力して、ボトルをインストールします-
ここで、小さなボトルアプリケーションを作成しましょう。 そのために、ディレクトリを作成し、その中に移動します-
webappディレクトリ内に新しいPythonスクリプト app.py を作成します-
さて、app.pyファイルに次のコードを書きます-
上記の行を追加したら、ファイルを保存して閉じます。 ファイルを保存したら、Pythonスクリプトを実行してアプリケーションを起動できます-
出力
この出力は、アプリケーションがホスト http://localhost のローカルマシンで実行され、ポート 8080 でリッスンしていることを示しています。
アプリがHTTPリクエストに適切に応答しているかどうかを確認しましょう。 このターミナルは、Bottleアプリケーションのサービスを終了しないと入力を受け取れないため、別のターミナルでVPSにログインする必要があります。 別の端末でVPSにログインした後、新しい端末で次のコードを入力して、アプリケーションに移動できます。
Lynxはコマンドラインブラウザーであり、通常はDebianやUbuntuなどのさまざまなLinuxディストリビューションにデフォルトでインストールされます。 次の出力が表示される場合、アプリが正常に機能していることを意味します。
出力
上記の出力が表示された場合、それはアプリケーションが稼働しており、テストの準備ができていることを意味します。
開発用Webサーバーを使用したアプリケーションのテスト
abにはバグがあり、ローカルホストでアプリケーションをテストできないことに注意してください。 したがって、app.pyファイルでホストをlocalhostから127.0.0.1に変更します。 したがって、ファイルは次のように変更されます-
lynxコマンドを実行したのと同じ端末で次のコマンドを入力して、アプリをテストしましょう-
出力
最初の端末の出力は次のようになります(100回)-
最初のテストと比較して、ab結果のさまざまな値がどのように変化したかを観察できます。
マルチスレッドWebサーバーを使用したアプリケーションのテスト
abの以前のテストでは、BottleフレームワークにバンドルされているデフォルトのWebサーバーを使用しました。
次に、シングルスレッドのデフォルトWebサーバーをマルチスレッドサーバーに変更します。 したがって、 cherrypy や gunicorn などのマルチスレッドWebサーバーライブラリをインストールし、Bottleに使用するように指示してみましょう。 ここでは、デモンストレーションの目的でgunicornを選択しました(他のgunicornも選択できます)-
そして、ファイルを変更します。つまり、デフォルトのWebサーバーからgunicornに変更します-
2番目のターミナルでアプリをテストしてみましょう。
出力
1秒あたりのリクエスト数が493から3252にどのように増加したかを確認します。 これは、gunicornがPythonアプリの実稼働サーバーとして適していることを意味します。