API仮想化でアプリケーションをテスト

APIを利用するアプリケーションをテストするために、REST、SOAP、MQなどで公開しているAPIをVirtualize機能で仮想化できます。※ SOAtest/Virtualize の対応プロトコルの一覧は、こちらをご参照ください。

APIを仮想化することで利用するAPIの完成やテスト環境の構築を待つ(テスト環境を奪い合う)必要もなく、あたかも実環境のAPIを利用しているかのように、アプリケーションをいつでもテストできるようになります。

いつでもテストできる環境を素早く提供

SwaggerやWSDLなどのIF定義ファイルからスタブを自動生成

Virtualizeは、SwaggerやWSDLなどのIF定義ファイルからスタブを自動生成し、APIを仮想化します。自動生成したスタブのテンプレートに任意のレスポンスデータを設定することで、APIを利用するテスト対象のアプリケーションからのリクエストを処理できます。EXCELなどの外部ファイルで用意したレスポンスデータを流し込むことでバリエーションのあるスタブへと拡張できます。

例)書籍を購入するWebアプリケーションが利用するAPIを仮想化するために、WSDLからSOAPのスタブを自動生成。書籍の検索時に利用する[getItemByTitle]がレスポンスするデータとして、おいしいメキシコ料理の作り方などを設定
例)[getItemByTitle]を利用するリクエストの[title]の値が[mexican]の場合にスタブがメキシコ料理に関する書籍の情報をレスポンスするように応答(相関)条件をGUIから直観的に設定(応答条件は複数の条件を組み合わせることや正規表現を利用することも可能)
例)[getItemByTitle]を含むスタブを利用するためのエンドポイントを設定

トラフィックのキャプチャ

Virtualizeのプロキシ機能を使用するとAPIを利用するアプリケーションと公開中のAPIの間で送受信するメッセージをキャプチャできます。

※SOAtest/VirtualizeはHTTP(S)MQ JMSのトランスポートで送受信するメッセージをキャプチャできます。

キャプチャしたトラフィックからスタブを自動生成

Virtualizeはキャプチャしたトラフィックからスタブを自動生成できます。キャプチャ時の操作で呼び出したAPIへのリクエストに含まれる動的なパラメータを解析してレスポンスの応答条件を自動的に設定するため、素早くテストに必要な環境を用意することができます。

例)自動生成時にデータソース化したレスポンスデータを[データリポジトリ]機能に格納。メッセージの階層構造を解析し、親子要素の関係性を持たせてデータを管理。書籍を[Java]で検索した時は、配列を2つ持つレスポンスを行う応答条件を自動的に設定。
例)本を購入するシナリオ(書籍の検索、カートに追加、カートの中身を確認、注文)で4つのAPIを利用する操作をキャプチャし、キャプチャしたトラフィックからスタブを自動生成。Virtualizeは動的なパラメーターを[パラメータライズ]と定義してデータソース化した値を使用するように自動的に設定

データ駆動型のスタブへの拡張

EXCELなどの外部ファイルで用意したレスポンスデータを投入

EXCELなどで予め用意したレスポンスデータをスタブに設定することで容易にスタブを拡張してバリエーションを持たせることもできます。

例)応答条件の値も設定したEXCELを用意。リクエストの[title]の値が[mexican]の場合はメキシコ料理の本を設定し、[japanese]の場合は和食の本を動的に設定してレスポンス

作成済みのスタブからデータソースの自動生成

Virtualizeはレスポンスデータを固定値で設定して作成したスタブからCSVやデータリポジトリなどのデータソースを自動生成できるため、素早くスタブを拡張して値のバリエーションを持たせることを可能にします。

例)メキシコ料理に関するデータをデータソースに出力し、データソースを利用するスタブに自動的に拡張。出力したデータソースの値を編集することで容易にバリエーション化が可能

仮想化したAPIでシナリオテスト

個々のスタブを組み合わせてシナリオ化

Virtualizeは個々のスタブを直観的に組み合わせてシナリオテストをするためのスタブへと拡張することを可能にします。スタブを追加する場合はドラッグ&ドロップやコピー&ペーストで素早く編集できます。シナリオテストに対応するスタブへと拡張することで正常系・異常系を含めて様々なケースのテストを実行するための環境を提供できます。

例)書籍検索で利用するAPI(getItemByTitle)にカートに追加(placeOrder)、カートの中身を確認(getPendingOrder)、注文(confirm)で利用するAPIも加えることでシナリオテストを実行するためのスタブへと拡張

APIのテスト自動化とサービス仮想化を1ツールで SOAtest/Virtualizeに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

CONTACT

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。