WireMock有多个主机和dnsmasq?

时间:2017-07-08 15:54:55

标签: dnsmasq wiremock

我正在为一个iOS应用程序模拟端点,这个应用程序可以访问十几种不同的HTTPS主机。根据我对WireMock文档和维护者this answer的理解,WireMock旨在代理/模拟一个主机。我目前的计划是使用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  |
                                                              |                   |
                                                              +-------------------+

这看起来很笨重,有没有更好的方法来模拟这样的多个主机?其中一个主要限制因素是必须通过HTTPS进行测试,而不是未加密。

1 个答案:

答案 0 :(得分:2)

您应该能够通过在请求中创建具有主机头条件的存根来实现此目的。就这样,例如

的请求

GET /你好 主持人:firsthost.example.com

并要求 GET /你好 主持人:secondhost.example.com

将匹配不同的存根,并返回不同的响应。