この記事は、ZOZOテクノロジーズ #4 Advent Calendar 2019 5日目の記事になります。
昨日は、@tkani さんの「spring-graal-nativeでSpring BootをGraalVM native imageにしてみる」でした。
本記事では、Postmanを利用した301リダイレクトのテストについてご紹介します。
#はじめに
Webサイト開発でURLが変わることってときどきありますよね。
「旧URLでのアクセスがある程度想定されるので301リダイレクトさせてください。」
といった感じで。そんなときは手軽にテストケースが作成でき、回帰テストにも利用できるPostmanをおススメです。
#301リダイレクト
301リダイレクトについておさらいします。
WSCとWikipediaのHTTPステータスコードをみると、301 Moved Permanentlyと記載されています。つまり恒久的な移動です。
恒久的とは「いつまでもその状態が続くさま」になります。goo国語辞典より
#Postmanとは
PostmanはPostman,Incが開発し、800万人の開発者と40万以上の企業が利用しているAPIのテストツールです。800万人の開発者が利用しているってかなりすごいですね。
#テスト
301リダイレクトのテストにはいろいろな方法があると思いますが、Postmanを利用して301リダイレクトのテストをしてみます。
##設定
まずSettingsにあるAutomatically follow redirectsをOFFにします。
こうすることでStatus codeが301の場合を判断できるようになります。
※DefaultはONで設定されています。
##テストパターン
ここでは下記の簡易的なダミーURLをテストパターンとして利用します。
aaaがbbbに変わった想定ですね。
・301リダイレクト対象のURL
https://xxxx.jp/aaa/bbb/?ccc=1
・301リダイレクト先のURL
https://xxxx.jp/aaa/eee/?ccc=1
##テストケース
テストケースには下記の2つをチェックするテストコードを記述します。
- Status codeが301か?
- 指定のURLへリダイレクトしているか?
console.log("Redirect URL:[" + pm.response.headers.get("Location") + "]" )
pm.test("Status code is 301", function () {
pm.response.to.have.status(301);
});
pm.test("Body matches string", function () {
pm.expect(pm.response.headers.get("Location")).to.include("/aaa/eee/?ccc=1");
});
Postmanの画面イメージはこんな感じです。
URL入力欄に「 https://xxxx.jp/aaa/bbb/?ccc=1 」を入力し、Sendボタンをクリックすることでテストが実行されます。PSAAと表示されればテスト結果はOKです。
※画像はダミーURLのためFAILと表示されていますので、ご注意ください。
##便利機能
左下のPostman Consoleをクリックすることでコンソール画面を表示し、ログの確認が可能です。
ログはconsole.log("xxxx")とコーディングすることでコンソール画面に出力されます。
#おわりに
Postmanを利用するととても簡単にテストが実施できましたね。
複数のテストケースを連続して走らせることも可能なため、ちょっとしたテストをするときはとても便利です。
慣れてくるとUI上でのテストが煩わしくなってきますので、そんなときはPostmanのコマンドラインツールであるNewmanがおススメです。
明日のZOZOテクノロジーズ #4 Advent Calendar 2019 6日目は、@yskurさんの投稿になります。