【问题标题】:Cucumber/Ruby: is it possible to intercept HTTP requests/responses from browser?Cucumber/Ruby:是否可以拦截来自浏览器的 HTTP 请求/响应?
【发布时间】:2012-07-10 22:03:51
【问题描述】:

我从 Cucumber & Ruby 开始,想知道以下是否可行。

我在一个页面上,我知道当我点击链接时,会发送一个如下所示的请求: http://example.com?param1=value1&param2=value2

那么是否可以使用 Ruby 拦截该调用并检索其参数?或者如果没有,关于如何通过自动化测试获取这些值的任何其他想法?

【问题讨论】:

  • 你想拦截请求/响应,解析它,然后基于它自动构建自动化测试,我说得对吗?
  • 是的,情况正是如此,但无法考虑如何获得该请求/响应以创建所需的测试...
  • 你的这个问题也很相似:stackoverflow.com/questions/4487603/…

标签: ruby http browser automation cucumber


【解决方案1】:

您要做的就是所谓的测试录音。测试录音有很多缺点,使用它不是一个好主意,请参阅:

我怀疑有没有可以自动生成 Cucumber 特征的工具。 Cucumber 特性旨在用作需求存储、与利益相关者协作的机制和活文档。如果您不需要任何这些方面,则使用 Cucumber 会产生开销。我无法想象测试记录工具会生成看起来足以用于这些目的的功能。

也许有一个工具可以生成功能或纯 Ruby(例如 Capybara)测试。但我怀疑它是否需要,因为 Capybara 测试很容易编写,使用测试记录工具创建的测试很难维护。

【讨论】:

  • 我更多地考虑创建一些通用功能文件(对业务中的每个人都有用),然后在 ruby​​ 代码本身中实现很多逻辑。种类:假设我在主页中,然后跟踪用户交互,并在 ruby​​ 代码中,为我们想要跟踪的特定用户交互放置逻辑。我遇到的问题是我看不到 ruby​​ 是否可以捕获 HTTP 调用/响应以创建断言?
  • @mickael 为什么要捕获这些 HTTP 调用然后重现它们而不是使用 Capybara API?
  • 我说的对吗?你想写特征文件,在 step_defintions 写正则表达式。然后使用来自浏览器的拦截请求在步骤定义中生成代码。
  • 对不起安德烈,我没有在这里看到你的回复。你的第二条评论是我想要的。我不想用 Capybara 重现一些调用,我想捕获用户点击时完成的 HTTP 调用,然后检查从浏览器请求的调用是否确实是它们应该是的。这种情况目前仍然悬而未决,因为我还没有找到办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
相关资源
最近更新 更多