sWebMachineGun.exeの動作モード(タイムアウトチェック)
今さら(2019年)、HTTP セッションのタイムアウトなんか気にすることはないんだけど、一応実装した。
リクエストの例
以下のリクエストを例とする。
リクエストタブで、送信メッセージを準備する
画面は、「Request」タブで、送信するリクエストのテンプレートを準備する
1発目は、「/login.cgi」へ送るリクエスト
2発目は、「/home.cgi」へ送るリクエスト
この「1→2」「/login.cgi→/home.cgi」を "セッション" と呼ぶことにする。
つまり、「/login.cgi」で認証情報渡してログイン。次の「/home.cgi」のリクエストを遅延させてHTTPセッションがタイムアウトしたかどうかを確認する。
ということ。
つまり、上図では判定対象は「1」なので「/home.cgi」のレスポンスの変化でHTTPセッションがタイムアウトしたかどうかを評価する。
タイムアウトチェックのモードにする
タイムアウトチェックのモードにするには、こんな感じ
指定するのは、最小値(分)と最大値(分)
上図では4分から120分の間で調べるという事になる
タイムアウトチェックの判定方法を設定する
他のモードと異なり、専用のタブを用意した
こちらの図はタイムアウトしたかどうかを判定する方法を決める画面(TimeoutCheckタブ)。
単純な文字列比較や、正規表現、スクリプトによる判定、方法は3つある。
実行
後は「Execute」ボタンを押すだけ
- インターバル無しで、アクセスして、タイムアウトしていないレスポンスを取得
- 最小値のインターバル(例では「/home.cgi」に4分スリープして)でアクセス。
- 倍にしてアクセス。
- タイムアウトしていなければ、3に戻る
- タイムアウトしていれば、これを最大値、直前の値を最小値にして、その中間値のインターバルでアクセス。
というのを繰り返して、1分単位まで絞り込む。
注意事項
判定結果が出るまで、時間がかかるので、(診断用のテストアカウントとは別に)タイムアウトチェック用の専用のアカウントを用意してもらった方がいいだろうね。