ip - 创建特定于区域的 IP 地址以进行测试

标签 ip cucumber watir

对于我正在从事的项目,我需要伪造一个 IP 地址以显示我来自另一个国家/地区。

基本上,如果检测到的 IP 来自英国,则显示弹出窗口 A,如果检测到的 IP 来自英国以外,则显示弹出窗口 B。

我希望能够自动执行此操作。目前我们所有的浏览器自动化测试都是用 Cucumber/watir 编写的,我想得到一个使用相同框架的解决方案。

有谁知道一种可能的方法来做到这一点?

谢谢!

最佳答案

一般来说,如果您关心 HTTP 请求返回给您的结果,则 IP 欺骗是不可能的。

http://en.wikipedia.org/wiki/IP_address_spoofing

如果这是为了测试,您可以在本地网络上为“在英国”和“不在英国”的每个用例运行虚拟机。为每个不会更改的 VM 分配一个本地 IP 地址。

在每个 VM 中运行 HTTP 代理服务器,并根据测试用例通过不同的代理服务器连接单元测试。

将覆盖逻辑添加到您的地理位置代码,以将这些众所周知的本地 IP 地址视为其各自测试位置的一部分。请注意,行为良好的代理服务器将在请求中同时包含代理服务器的 IP 地址和原始 IP 地址。确保在此单元测试中使用代理服务器的 IP 地址进行地理定位(通常,您会希望使用原始 IP 地址可用于生产地理定位)。

请注意,任何想规避此类控制的人都非常容易。有可能以很少的费用访问英国的 HTTP 代理服务器,该服务器故意不转发原始 IP 地址。

关于ip - 创建特定于区域的 IP 地址以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866546/

相关文章:

Ruby:获取本地 IP (nix)

javascript - CucumberJS 2.0.0 如何从 Before Scenario Hook 中获取场景名称

jquery - Click 方法不适用于 Cucumber Phantomjs

ruby - 防火墙不工作

powershell - 解析具有多个IP的DNS地址

linux - DNS 错误列表

javascript - 在 Node.js 中输入 pincode 值时需要获取国家、州、城市和地区

ruby-on-rails - 在 Ruby on Rails 中用 cucumber/capybara 测试弹出窗口

ruby - 使用 Watir Webdriver 测试 Highcharts

cucumber - 使用 Gems 或 Jenkins(或两者)在多台机器上并行 Cucumber BDD 测试