2017-07-08 15 views
0

私は多種多様なHTTPSホストに接続するiOSアプリケーションのエンドポイントを模擬しています。 WireMockのドキュメントとメンテナーのthis answerからの私の理解に基づいて、WireMockは1つのホストだけをプロキシ/モックするように設計されています。私の現在の計画は、一度にWireMockで1つのホストを指すためにdnsmasqを使用することです。複数のホストとdnsmasqを持つWireMock?

         +----------+   +-------------------+ 
             |   |   |     | 
             | WireMock +-->Proxy+---> 123.example.com | 
             |   |   |     | 
             +----^-----+   +-------------------+ 
              | 
              |     +-------------------+ 
+-------+         +----+----+   |     | 
|  +---> https://123.example.com +--->   | +-----> xyz.example.com | 
|  |         |   | |  |     | 
| App +---> https://xyz.example.com +---> dnsmasq +---+  +-------------------+ 
|  |         |   | 
|  +---> https://9.different.com +--->   +---+  +-------------------+ 
+-------+         +---------+ |  |     | 
                 +-----> 9.different.com | 
                   |     | 
                   +-------------------+ 

これはかなり厄介なようですが、このような複数のホストをモックする良い方法がありますか?主な制約の1つは、これらをHTTPSでテストし、暗号化しないことです。

答えて

1

要求にホストヘッダー条件を持つスタブを作成することで、これを達成できるはずです。例えば、要求

にGET /ハロー ホスト:firsthost.example.com

そして GET /ハロー ホストへの要求:secondhost.example.com

が異なるスタブと一致して異なるが戻ってきます反応。

+0

すごくお返事ありがとう@Tom - 私はそのようなスタブにマッチするリンクされた質問を読んでいますが、レコードモードでWireMockを使用して最初にトラフィックをプロキシしてスタブを作成したいと考えています。一度それらをすべて持っていると、このソリューションは再生モードで動作します。私は誤解していますか? – suite22

+1

私はその答えでナンセンスを話していたかもしれません。トリックを行うかもしれない '--match-headers =" Host "'で記録を開始すると思う。 – Tom

+0

私はこれが再生モードやプレーンHTTP上でどのように動作するかを見ていますが、HTTPSでは複数のcertsをどのように指定できるか分かりません。複数のキーストアを渡すことができません: 'オプションhttps-keystoreに対して複数の引数が見つかりましたが、あなたは1つのみを要求しました。 – suite22

関連する問題