👻

[小ネタ]大量の画面をチェックするのにPowerShellでちょっと楽をする

2023/03/16に公開

こんにちは。深緑です。

小ネタです。
タイトルの通りの状況があって、あまりにも大変なので苦肉の策を使いました。
やってみたら案外良かったので書き残しておきます。

状況

表示内容が複数のパラメータで決まる画面があります。
決定表を作ってパターンを洗い出したところ100を超えるパターンが見つかりました。
自動テストなどの機構は設けてないので、手動操作による目視しかテスト方法はありません。
とはいえ、一つ一つ画面を開いて見るのはあまりにも辛いです。

目的

そこまで時間はかけられないので画面の目視は短時間で全て終わらせたい。

行動(とった方法)

幸い画面はURLだけで開くことができるので、PowerShellのStart-Processコマンドでブラウザを立ち上げまくることにしました。
Start-Process(Microsoft Learn)

  1. 決定表をExcelで作り、各パターンに応じた画面を開くURLをExcelの式で生成する
  2. PowerShellのStart-Processコマンドで、それらのURLを一気に開く。
  3. ブラウザの各タブの中身をチェック。

こんな感じのコマンドを大量に用意して、PowerShellにコピペします。

start http://servername/controller/12345/00001/00001
start http://servername/controller/12345/00001/00002
start http://servername/controller/12345/00001/00003
start http://servername/controller/12345/00002/00001
start http://servername/controller/12345/00002/00002
start http://servername/controller/12345/00002/00003

結果

用意したコマンドをPowerShellにコピペすると、各画面が一気にタブで開きます。
タブを切り替えながら確認することでかなり効率よく確認ができ、無事目的の時間で確認完了しました。

補足とまとめ

この方法、curlとは異なり「ブラウザを起動しているだけ」というのがポイントです。

start URLした時、既にブラウザが起動していると「タブが増える」という動きをします。
従って、ログインが必要な画面でも最初のタブでログインしておけばstart URLで開けます。

curlではこうはなりません。
ログイン画面のHTMLが返ります。
ブラウザではない(セッション保持しない、ステートレス)からです。

そもそもこんな力技をしなくてはいけないシステムなのはよろしくないんですが、
現実問題やらざる得ないこともあります。
この記事が何かの役に立てば幸いです。

Discussion