並列な(互いに独立している)複数のリクエストを一斉に検査する

# sWebMachineGun.exe実践編

それぞれが独立した置換したいリクエストが複数ある場合

## 診断対象

こんな感じ
<table border="1">
<tr><th align="center">入力画面</th><th colspan="2" align="center">確認画面</th><th align="center">入力画面に戻る</th></tr>
<tr><td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/fc0d201c-79b7-9a00-30b0-851bbe8962aa.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/fc0d201c-79b7-9a00-30b0-851bbe8962aa.png" width="70%" height="70%"></a></td>
<td colspan="2"><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/4133bb93-f9e6-da8b-0f29-6ffa4abcfb22.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/4133bb93-f9e6-da8b-0f29-6ffa4abcfb22.png" width="70%" height="70%"></a></td>
<td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/8e83c41a-27ed-b32f-9486-df6f94bc1565.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/8e83c41a-27ed-b32f-9486-df6f94bc1565.png" width="70%" height="70%"></a></td></tr>
<tr><td colspan="2" valign="top">
POST /sanaki/yourdata/testConfirmA.asp HTTP/1.0<BR>
Content-Type: application/x-www-form-urlencoded<BR>
Content-Length: 0<BR>
<BR>
Email=test@example.com&Tel=03-0000-0000</td>
<td colspan="2" valign="top">GET /sanaki/yourdata/testInputA.asp?Email=test@example.com&Tel=03-0000-0000 HTTP/1.0</td>
</tr>
</table>

入力画面→確認画面→入力画面に戻る

そして、入力画面に戻る際にはパラメータが(セッションオブジェクトに入らずに)そのまま引き継がれている、、、というような対象

    まぁ、セッションオブジェクトを使用していない簡単な問い合わせ画面とかの「入力画面→確認画面→完了画面」でも、同様なんだけど、、、

- 入力画面→確認画面(①)
- 確認画面→入力画面に戻る(②)

が完全に独立しているような場合、
つまり、①と②は平行/並列して(独立して)診断試験をしても差し支えないような場合、

## sWebMachineGun.exeの設定

メインの設定は、登録した複数のHTTPリクエストを個別/独立の設定にすること

### sWebMachineGun.exeの設定1

「Request」タブに、二つのHTTPリクエストを設定して、<B>【全て使用】</B>を外す

一つ目はこんな感じ

![082.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/099db44c-5380-15a7-c9f6-70d7d6cb57ed.png)

<B>「0のみ使う」</B>になっていることに注目してほしい

リクエストとしては「[一つのHTTPリクエスト(一番シンプル)](https://qiita.com/tomoki0sanaki/items/bf5425c33bab876b6287
)」と同じ。

二つ目はこんな感じ

![083.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/f6131002-504e-3d43-13c4-0f7dd78c1f1d.png)

<B>「1のみ使う」</B>になっていることに注目してほしい

あとの設定は、他の設定と同じ。

## sWebMachineGun.exeの実行(個別実行)

![084.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/2654d958-f29c-34c3-5150-b07540bd9af6.png)


この図の状態(<B>「0のみ使用」</B>)で<B>「Execute」</B>ボタンを押下すると、2つ登録されているHTTPリクエストのうち「PageNo=<B>0</B>」のリクエストだけ使って診断(スキャン)を実施する

![085.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/b64d9f81-3e71-52e7-0535-087db06a28d7.png)

結果としては、こんな感じ。
上部を見ると「PageNo=0」のURLだけだし、下部のリクエスト/レスポンスの詳細は、<i>(テンプレートとしては2つ登録されているけど)</i>一つだけとなっていることからわかるだろう。

<B>つまり、登録するだけ登録しておいて、後で一つずつ診断(スキャン)する</B>ことが可能となっている

## sWebMachineGun.exeの実行(連続実行)

本項目のメインテーマです。

![086.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/ce945781-03e0-829f-8179-27218258e084.png)

この図の状態(<B>「0のみ使用」</B>)で<B>「Execute」</B>ボタンではなくて<B>「AllSend」</B>を押下すると、<i>(フォーカスの当たっているPageIDは0以降なので)</i>2つ登録されているHTTPリクエストのうち「PageNo=0」のリクエストだけ使って診断(スキャン)を実施し、次は「PageNo=1」のリクエストだけ使って診断(スキャン)を実施し、、、、と登録された複数のリクエストを個別に連続実行することになる。

![087.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/a512e98a-b58e-c175-ade5-583282b18279.png)

こんな感じで、No0001～No0002は「testConfirmA.asp」(PageNo=0)のパラメータに対して実行していて、No0003～No0004は「testInputA.asp」(PageNo=1)に対して実行している。

<B>つまり、セッションレスな診断対象に対しては、登録するだけ登録しておいて、「AllSend」ボタン一発で診断終了</B>ということ
<i>(まぁ、スキャン後に大量のDataGridViewに登録されたレコードを眺める必要はあるんだけどね...)</i>

# sWebMachineGun.exe Index

[sWebMachineGun.exe のメインメニューに戻る](https://qiita.com/tomoki0sanaki/items/e2b7767551a576b1dbd3)