我正在为一个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进行测试,而不是未加密。
答案 0 :(得分:2)
您应该能够通过在请求中创建具有主机头条件的存根来实现此目的。就这样,例如
的请求GET /你好 主持人:firsthost.example.com
并要求 GET /你好 主持人:secondhost.example.com
将匹配不同的存根,并返回不同的响应。