【问题标题】:How to simulate different location while testing in localhost?在本地主机中测试时如何模拟不同的位置?
【发布时间】:2012-09-03 23:47:09
【问题描述】:

如何在测试本地主机时模拟不同的位置?

我正在使用 java play 框架,当他发布表单时,我会在其中获取用户 IP 地址。在测试时,我保存了地址,我得到的只是 localhost 0:0:0:0:0:0:0:1%0。我希望能够在各种位置对此进行测试,并使用不同的 IP 地址对此进行测试并从 IP 地址获取用户的位置。

最好的方法是什么?

【问题讨论】:

    标签: java web-applications localhost playframework-2.0 ip-address


    【解决方案1】:

    如果您知道从中读取 IP 的结构,则可以对此进行模拟并使用您设置的不同 IPS 对其进行测试。但是你为什么需要那个?如果您的测试本地主机及其工作,您似乎可以以正确的方式读取 IP。

    如果您对 IP 进行任何操作,例如确定其来自的国家/地区,您可以使用常量 IP 进行测试,但使用不同主机测试 IP 是为了测试获取 IP 的功能,这实际上是一个基本的我不会亲自测试的东西。

    来自 cmets:

    你可以这样使用:hostip.info/use.html

    【讨论】:

    • 我需要 IP 来精确定位到该位置。例如旧金山、亚特兰大或达拉斯。
    • 如何定位 IP?是你自己的代码吗?如果不是,我认为您也没有责任对其进行测试,如果是,则使用虚拟 IP 测试您的逻辑。
    • 测试第 3 方库会在每次更改逻辑时与测试相匹配,例如,您可以尝试定位谷歌服务器或任何不更改其位置的已知服务器,但不要对每个库进行测试位置因为逻辑是一样的。
    • 这是一个有效的观点。 Twitter / Facebook 如何通过您的帖子获取您的位置?
    【解决方案2】:

    问题的答案首先取决于您如何检索 IP 地址。如果您使用反向代理(例如负载均衡器),则原始 IP 可能位于 HTTP 标头中。如果是这样,你可以如下测试:

    Result result = callAction(routes.ref.YourController.yourMethod(),
                new FakeRequest().withHeader(IP_ADDRESS, testIPAddress));
    

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 2012-02-07
      • 1970-01-01
      • 2012-07-13
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      相关资源
      最近更新 更多