【问题标题】:How to acceptance test captcha-protected web application functionality?如何验收测试受验证码保护的 Web 应用程序功能?
【发布时间】:2012-09-04 14:28:41
【问题描述】:

我想为我网站上的某个功能添加验证码,例如 reCaptcha。我该如何调整我的验收测试?

是在临时站点上禁用验证码的唯一解决方案吗?

澄清:

当然,我说的不是暴力破解我自己的验证码,而是例如一些从我的测试知道的服务器端向验证码注入状态的选项。

PS 我的服务器端代码使用 Pyramid 框架,我的测试是使用 Selenium 编写的

【问题讨论】:

    标签: selenium captcha pyramid recaptcha acceptance-testing


    【解决方案1】:

    是的,唯一的选择是禁用验证码 - 有一个很好的理由。如果使用 Selenium 很容易绕过它,那你为什么要首先使用 Captcha?

    【讨论】:

    • 现在我的分期是生产的精确副本。恐怕如果我添加一些检测我们是在暂存还是生产的逻辑,我会遇到风险。如果攻击者成功地让我的网站认为它正在登台怎么办?所有验证码都会消失。
    • +1 用于在硒测试期间禁用。我通常有一个用于验收的配置文件和一个用于生产的配置文件。这是我要为captcha = true/false 放置配置参数的地方
    • @JaspervandenBosch 你是对的,但如果攻击者可以做到这一点,那么担心 CAPTCHA 被禁用是你最不担心的事情。使用代码来检测您运行的环境是完全合乎逻辑和合理的。
    • 这将是 staging.ini 与 production.ini 的动机,其中一个具有(如 Antoine 建议的)captcha = false
    【解决方案2】:

    重点不是用您的 Selenium 测试来测试 Captcha —— 为什么要花费大量精力来测试第三方工具?

    相反,我会进行 Selenium 测试,以验证您的验证码是否出现。这可以验证您的验证码是否存在且处于活动状态。在那次测试之后,我会关闭验证码并继续进行其他验证测试。我还有最后一步是重新打开 Captcha 并重复测试检测 Captcha 是否处于活动状态。这样您就可以确保在重新激活验证码时不会错过任何内容。

    【讨论】:

    • 我更喜欢这种方法而不是完全禁用验证码,因为我可以依靠我的验收测试来确保验证码正常。但是我不确定如何实现这一点。在测试之间重新启动并重新配置应用程序?
    • 是的,您需要在测试之间有一个步骤来关闭验证码。我对该平台不够熟悉,无法说出您是否需要重新启动您的应用程序。显然,当您完成测试通过时,您需要启用并可能重新启动相反的操作。
    【解决方案3】:

    使用输入框中的测试代码禁用 CAPTCHA。如果验证码失败但与测试代码匹配,请继续。

    【讨论】:

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