6

次の要件を使用して、Soap UI と Wiremock の機能を比較しようとしています (これは、私のプロジェクトのほとんどの場合に十分現実的です)。

目標は、通貨価格サービスのモックを作成することです。要求事項:

  • アクセス可能

    mytesthost/priceservice/getprice

  • currenypair を次のように定義する「cur」と呼ばれる 1 つのパラメータが必要です: cur=EURHUF

  • 以下のように呼び出されると、ファイル EURHUF.xml に保存された XML 応答で応答する必要があります。

    mytesthost/priceservice/getprice?cur=EURHUF

  • 以下のように呼び出されると、ファイル EURUSD.xml に保存された XML 応答で応答する必要があります。

    mytesthost/priceservice/getprice?cur=EURUSD

  • の通貨ペアで呼び出された場合、NOCURR.xml に保存されているエラー応答で応答する必要があります。

これを Soap UI に実装すると、応答を選択するために数行の Groovy コードを実装するよりも結果を準備することになります。

ワイヤーモックで問題に取り組むとき、私は 2 つの「ハッピー」パス ケースを照合できますが、フォールバック ケースを実現する方法がわかりません (NOCURR.xml を使用)。

マッチングの方法の例:

{
    "request": {
        "method": "GET",
        "url": "/priceservice/getprice?cur=EURUSD"
    },
    "response": {
        "status": 200,
        "bodyFileName": "EURUSD.xml"
    }
}

ワイヤーモックでこれを達成できますか? 私は主にJson構成を介してこれを行うことに興味がありますが、Java APIがその方法である場合も問題ありません。

4

1 に答える 1

13

解決策を見つけました。したがって、3 つの Json マッピング ファイルがあります。

  1. EURUSD マッチングの場合
  2. CHFHUF マッチングの場合
  3. 他のすべての場合 - 存在しない通貨ペアであっても

1 番目と 2 番目のマッピングは次のようになります。

{
    "priority": 1,
    "request": {
        "method": "GET",
        "url": "/priceservice/getprice?cur=CHFHUF"
    },
    "response": {
        "status": 200,
        "bodyFileName": "CHFHUF.xml"
    }
}

優先度=1に注意してください!

「else」の場合は次のようになります。

{
    "priority": 2,
    "request": {
        "method": "GET",
        "urlPattern": "/priceservice/.*"
    },
    "response": {
        "status": 200,
        "bodyFileName": "NOCURR.xml"
    }
}

これは優先度が低い (2) だけでなく、「url」の代わりに正規表現マッチング用に「userPattern」を追加しました。

于 2014-11-13T14:06:41.363 に答える