Visual Studio 2015 でのパフォーマンステスト
Visual Studio 自体に備わっているパフォーマンステスト機能を使用
MS 公式サイトで機能の比較を確認すると Enterprise でしか使用できない
今回は試用版をインストールして動作を確認する
参考にしたのは公式のここ
こちらに従い、プロジェクトの作成とパフォーマンステストのシナリオを作成する
追加>Web パフォーマンステスト とするとブラウザが起動
公式サイトでは、起動したブラウザ(?)で設定をやる説明だが
試した限りだと同じようにはならないので、ブラウザを落とす。
VS 側では「記録中です...」と表示されてるので、「記録の中止」で中止する。
シナリオにカーソルを合わせ、右クリックから要求の追加を行う
リクエストする URL が追加される
追加直後は URL が http://localhost/ なので修正
エディタ左上にある、ビーカーっぽいアイコンでテストの実行
結果が出力される
要求時間が出るので、どの程度時間がかかったのかがわかる。
続いてロードテスト(負荷テスト)を試したが、Visual Studio Online(VSO) に接続する必要があるらしく
ローカルだけで完結はできなさそう。
現状やりたい内容としては、API を連続実行して、メモリが右肩上がりに増えないこと
メモリリークが発生しないことを確認したい。
公式の説明にあるような、時間経過毎にアクセスユーザを増やすといった場合は
素直に VSO を使用するか、別のテストツールを使った方が良いと思う。
以下代替案の説明
Web パフォーマンステストと同じように、要求の追加前までを実施
右クリックから、「ループの追加」を選択
画面が起動するので、規則から「For ループ」を選択し、プロパティの設定をする
設定内容は For 文と考えればいいと思う。終わったら OK で閉じる
エディタ部分
ループ部分で右クリックし、「要求をループに追加」を選択
これは先程と同じなので、説明は割愛
設定したら実行する
リクエストが設定した通り 10 回実施されている
リクエストし続ける時間の設定は出来ないが、リクエスト回数を増やせば
メモリリーク確認くらいは出来ると思う。
POST 通信も可能で、エディタの要求で右クリックして
「フォームポストパラメータの追加」で、パラメータ名と値を設定すればOK。
要求のプロパティ、メソッドが POST になっているのが確認できる。
この要求を
以下の JAX-RS に対して実行すると
@POST @Path("/hoge") public String hoge(@FormParam("aa") String aa, @FormParam("bb") String bb) { System.out.println( aa ); System.out.println( bb ); return "hoge"; }
ちゃんとパラメータが取れる
2016-01-10T15:33:16.403+0900|情報: AAA 2016-01-10T15:33:16.403+0900|情報: BBB 2016-01-10T15:33:16.446+0900|情報: AAA 2016-01-10T15:33:16.446+0900|情報: BBB