テスターちゃん【4コマ漫画】

ソフトウェアテストの用語、やり方などを4コマ漫画でわかりやすく説明する(予定の)ブログです。脱線も多いです。



勝手にサイトを回遊してランダムテストをしまくってくれるツールを作りました

こんにちは! 作者です。

 

久しぶりに時間に余裕ができたので、日曜大工ならぬ日曜プログラマーをしていました。

ふと思いついたツールがすぐに作れそうだったのでw

それで1日チャレンジ、と思ってテストツールを作ってみましたので公開したいと思います。

 

勝手にサイトを回遊してランダムテストをしてくれる「TestFish」

f:id:m_training:20190428235710p:plain

概要

指定したドメイン内のページに対して以下の動作を行いながら、色々なページを回遊します。

  • 該当ページ内にあるリンク(自ドメインのみ)についてのhttp status codeを取得する
  • ブラウザのログ(js errorやwarningなど)を取得する
  • ページ内のinputには「' or 'a'='a」を入力、あとボタン、リンク、ラジオボタンチェックボックスなどを適当にクリックする

つまり、ドメイン内のページを勝手に回遊して、入力を適当に行い、ボタンなどをポチポチ押しまくってエラーが出てないか確認してくれるツールです。

イメージとしては、大雑把な掃除をしてくれるルンバ、といった感じです(笑)

用途としては、本番環境を回遊させて致命的なエラー(400番台、500番台など)が出てないことの確認などに使えるかと思います。

 

ランダム操作の時ですが「何か操作をすると、画面の状態が変わるはずだ」という思想で作っています。よって、何も変化が起こらなかった時にエラーが表示されるようになっています。

 

使い方

ダウンロードは以下

https://github.com/testerchan/TestFish/raw/master/TestFish.zip

 

環境
使い方

特にseleniumpythonなどをインストールする必要はありません。

オールインワンにして作っているので「main.exe」をダブルクリックするだけで動く……はずです。

 

使う前に「settings.txt」で設定を変更してください。

  • TargetUrl……TestFishが回遊するドメイン。このドメイン以外につながるリンクなどはチェックしません。
  • ActuatingCycle……この回数分だけTestFishが行動を行います。5なら、5回だけ行動を行って終了します。
  • WaitTimeForAction……次の行動に移るまでの待ち時間です。初期値は5秒です。整数値で指定してください。
  • WaitTimeForLinkCheck……リンクをチェックするときの待ち時間です。小数が指定できます。サーバー負荷軽減のためと思って付けてみました。短時間で実行すると攻撃になりそうなので要注意。
  • LogDir……ログを保存するフォルダです。
  • IsHeadless……TrueにするとchromeをHeadlessモード(画面が見えないモード)で動かします。全画面キャプチャが欲しい場合はこのモードにする必要があります。Falseの場合はブラウザが起動して起動している様子が見えます。ブラウザが見える状態の場合、キャプチャはディスプレイサイズに依存します。
  • IsLinkCheck……Trueの場合、リンクのステータスチェックを行います。Falseの場合はチェックを行いません。リンクのチェックが邪魔なときはFalseにしてください。
  • IsBrowserCheck……Trueの場合、ブラウザに表示されるコンソールを取得します。Falseの場合は取得を行いません。ブラウザのログチェックが不要な場合はFalseにしてください。

ログ

f:id:m_training:20190429001424p:plain

 

  • 1行動ごとにまとめられています。
  • 「行ったアクション」で、行動したにも関わらずページに何の変化も起きなかった場合、エラーマークがタイトルに表示されます。
  • ブラウザログ、リンク先確認いずれかにメッセージがある場合は注意マークがタイトルに表示されます。
  • 左カラムに行動前の画像と行動後の画像が表示されます。
  • 行動については右カラムに表示されます。
  • ブラウザログには、ブラウザから吐かれたログが記録されます。
  • リンク先確認には、該当ページ内で400番台以上のhttp status codeだったリンクが表示されます。

 

github

1日でズビズダーと作ったので内容がアレですが、公開しています。

改造して使ってよいですw

github.com

githubのコードを使う場合は、"pip install selenium"でseleniumをインストールする必要があります。

 

作者はこれからまたマンガとイラストとマンガで忙しいので、バグ修正などは気が向いたときに実施します(^-^;