このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。
ラベル JSON の投稿を表示しています。 すべての投稿を表示
ラベル JSON の投稿を表示しています。 すべての投稿を表示

2013年4月1日月曜日

第4回:REST API テスト効率化 - テストのバッチ実行

自動化したテストを夜間実行する - SOAtest のバッチ実行機能で継続的なテストを実施!

前回、回帰テストの自動生成について紹介致しましたが、本日は、この作成したテストをバッチ実行する方法を紹介します。

バッチ実行は文字通り、テストの開始を人が行うのでなく、システムから起動させるという意味になります。たとえば、Windows のタスクマネージャーにタスクを登録し、毎晩 1:00 AM にバッチ処理を実行させるようなイメージです。

このような仕組みで、毎朝、出勤時にテストレポートを受け取ることや、受け入れ時にのみ実施していたテストを毎日実行することで、どの(ソースをコミットした)時点で問題が発生したのか判別できるようになります。

いわゆる、継続的なテストの自動化は、APIの更新が頻繁に発生したり、提供するサービスのリリースサイクルが短い場合において、早期の品質確保と問題発見を可能にしますので、リリース スピードの向上や手戻りコストの低減において効果を発揮します。

継続的なテストと言えば、Jenkins と連携させた CI 環境の構築も最近では一般的になりつつありますが、勿論、SOAtest もこの仕組みに組込んでご利用頂けます。

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動実行(バッチ実行)する方法を紹介します。

※前回のおさらいは、こちらからご参照頂けます。
第3回:REST API テスト効率化 - 回帰テストの自動生成

2013年2月22日金曜日

第3回:REST API テスト効率化 - 回帰テストの自動生成

皆様、ご存知の通り Web API 開発においてもデグレード対策は必須です。
※ REST API および SOAP API の総称として、Web API という言葉を用いています。

たとえば、公開中の Web API 数が増加傾向にある場合や、異なるバージョンの Web API が複数ある場合、それらに対する回帰テストの規模やシナリオ テストの工数は増加し続けます。

これらは、サービスのリリース スピードや作成コストに大きく影響します。

回帰テストを自動生成し、テストを自動化できれば、これは素晴らしいことだと思いませんか?

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動生成する方法をサクッと紹介します。
前回のおさらいは、こちらからご参照頂けます。

・ 第1回:REST API テスト効率化 - テスト作成/実行
第2回:REST API テスト効率化 - テスト結果の自動検証

2013年1月29日火曜日

第2回:REST API テスト効率化 - テスト結果の自動検証

今回は、SOAtest を使用して REST API のテスト結果を自動検証する方法をサクッと紹介します。
前回のおさらいは、 『第1回:REST API テスト効率化 - テスト作成/実行』 を参照してください。

■目的
・REST API テスト結果の自動検証

手順:
 ・テスト結果検証ツールの追加
 ・テスト結果の検証項目の設定
 ・テスト実行/検証結果の確認

■テスト概要
郵便番号検索APIを開発していると仮定し、この機能のテストを Parasoft SOAtest を使用して行います。
今回は、例として、Yahoo Japan 様が公開している REST API (郵便番号検索API)をテストします。

郵便番号 '108-8588' で検索し、結果の検証を行います。
テスト結果で取得する値は、弊社(テクマトリックス 株式会社)の名前や住所などの情報です。
※2013.01.24時点での Yahoo Japan 様のAPI 仕様に基づいて記載しています。

■それでは、早速はじめましょう。

1. SOAtest の起動

 1-1. SOAtest を起動します。

2. テスト結果検証ツールの追加

2-1. テストクライアントの実行結果に対して、検証ツールで検証を行うようにします。
 [Test 1: REST Client] を右クリックし、シュートカット メニューより [出力の追加] を選択します。




 2-1. ダイアログが開きますので、次の項目を選択し、[終了] ボタンをクリックしてツールを追加します。


■ 左欄 : [レスポンス] より [トラフィック] を選択
このダイアログからは、これから追加するツールを [Test 1: REST Client] のリクエスト、レスポンス、または両方の何処に対して適用するのかを選択できます。
今回は、テスト結果を検証したいので、[レスポンス] を選択します。

■ 右欄 : [Validation] より [JSON Assertor] を選択
今回、検証するメッセージ形式は JSON なので、JSON Assertor を選択します。
仮に、検証するメッセージ形式が XML である場合は、 XML Assertor を選択します。

 2-2. [JSON Asserot] が [Test 1: REST Client] に連結されていることを確認します。


ここまでの操作で、テストクライアントと検証ツールの連結は完了です。

3. テスト結果の検証項目設定

3-1. 追加した JSON Assertor (検証ツール)を開き、[Test 1: REST Client] テスト結果の検証項目を設定していきます。
[設定] タブを選択して [追加] ボタンをクリックします。





 3-2. ダイアログから様々な種類の検証方法を選択できますが、
今回は、テスト結果(レスポンス)の値を検証するため [Value Assertion] より [Value Assertion] を選択し、[次へ] をクリックします。

 3-3. 次に、ツリー ビューで表示されたテスト結果(レスポンス)の要素の一覧から、検証対象とする項目を選択します。
今回は、[PostalName] を選択し、[終了] をクリックします。

3-4. 今回は、テスト結果(レスポンス)の [PostalName] の期待値として、[期待値] に 'test' と入力し、故意にテストを失敗させるように設定します。

4. テスト実行

4-1. [Test 1: REST Client] を選択し、テストを実施します。


4-2. 想定通り、テストが失敗していることを確認します。


5. テスト結果の確認

5-1. [Test 1: REST Client] を右クリックし、[タスクの表示] を選択します。

 5-2. [品質タスク] ビューに問題の詳細が表示されますので、エラー メッセージをダブルクリックします。

 5-3. [詳細] ビューに問題の詳細が表示されます。

次の理由でテストが失敗したことが解ります。
 ・ 検証ツールの期待値: test
 ・ 実際のテスト結果: テクマトリックス 株式会社


いかがでしたか?


■ まとめ

今回は、REST API のテスト結果を自動検証する方法を紹介しました。
サクッと完了ですね。

■ 次回予告

次回は、回帰テストの作成方法について紹介しますのでお楽しみに!