これならできそう?!ChromeとPostmanで始めるスモークテストの方法を紹介します!

Webアプリのテストの一つにスモークテストというものがあります。
(他のテスト手法の説明はこちらを参照ください。)

💡
スモークテストの役割は、システムが問題なく最小限の負荷を処理できることを確認することです。他には負荷テストなどのバリエーションがあります。

いざスモークテストを実施しようとしても、テストケースの作成が大変です。ChromeブラウザとPostmanを使用すると、簡単にテストケースの作成ができます。


用意するもの

特別なものはありません😝

💡
普段使っているツールですね。

手順

今回は試しに当ブログを巡回する手順を示してみます。

😅
画面キャプチャが今とだいぶ変わってますが気にしないでください

Chromeでの操作

  • Chromeを起動します。
  • DevToolsを表示します。(F12キー押下
  • Networkタブを選択します。
  • 「Preserve log」にチェックを入れます。

サイトにアクセスし、色々なサイトを巡回します。

右側のファイル名が出ているあたりを右クリックし、「Save all as HAR with content」を選択。保存します。

Chromeでの作業はここまでです。

💡
Preserve logにチェックを入れることで、画面遷移をしてもログが継続されます。

Postmanでの操作

  • Postmanを起動します。
  • [File]メニューから[Import]を選択します。
  • Chromeで保存したHARファイルをドラッグ&ドロップします。
  • 「Import」ボタンをクリックし、インポートします。
  • インポートした内容が左のツリーに表示されますので、一番上の階層を選択し、右側のメニューから「RUN」を選択します。

とりあえずこのままでRUNしてみましょう。

このような形で結果が表示されます。

💡
Chromeで操作したアクセスの再現がPostmanでできました。

ただ、今回はとりあえずリクエストを投げただけですので、テストにはなっていませんので、テストを追加してみましょう。

  • 左のメニュー最上位を選択し、右側のTestsタブを開きます。
  • テストコードを記述するエリアに以下のコードを記述します。
pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

テストコードの詳細は公式サイトを参照ください。

  • この状態で再度実行してみます。

今度はテストがPassしたかFailしたかが分かれるようになりました。

💡
Chromeでのアクセスの再現と、それぞれのステータスコードをチェックするテストケースの作成ができました。

Newmanで実行

PostmanにはCLI版のNewmanというものがあります。同じテストをNewmanで実行してみます。

  • テスト内容をPostmanからエクスポートします。左のメニュー最上位を選択し、Exportを選択します。
  • Newmanをインストールします。
  • Newmanを実行します。
npm install -g newman
newman run twelve.tk.postman_collection.json

(個人的に-gが嫌だったので、npxで実行しました。)

  • 実施結果とサマリー、エラーについては詳細がコンソールに出力されます。
┌─────────────────────────┬────────────────────┬───────────────────┐
│                         │           executed │            failed │
├─────────────────────────┼────────────────────┼───────────────────┤
│              iterations │                  1 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│                requests │                150 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│            test-scripts │                150 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│      prerequest-scripts │                150 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│              assertions │                150 │                 8 │
├─────────────────────────┴────────────────────┴───────────────────┤
│ total run duration: 32.5s                                        │
├──────────────────────────────────────────────────────────────────┤
│ total data received: 6.84MB (approx)                             │
├──────────────────────────────────────────────────────────────────┤
│ average response time: 176ms [min: 21ms, max: 5.5s, s.d.: 478ms] │
└──────────────────────────────────────────────────────────────────┘
💡
Newmanを使うとPostmanと同じ操作がコマンドのみで実行できます。

ここまでできれば、自動化や定期的なテストに使用できそうですね。


以上、ChromeとPostmanを使ったスモークテストの実施方法でした。