【发布时间】:2016-03-18 07:40:27
【问题描述】:
我正在为包含Google's "recaptcha" human check 的主干视图编写夜班测试。显然,测试是一个机器人,所以它不能通过测试。所以我试图找出一种方法来绕过测试中的人工检查。谁能提出一种优雅的方法来做到这一点?
目前,我能看到的唯一可能性是在 nightwatch 用来加载页面的 url 上设置一个查询参数,然后在 Backbone 视图的逻辑中检查该查询参数,但这似乎很糟糕。我不想在代码本身中包含有关测试的逻辑。就是乱七八糟。
想法?
【问题讨论】:
-
我不会创建 URL 参数。这是默默无闻的安全教科书示例。另一方面,您自己的服务器不参与验证验证码的过程吗?在这种情况下,您可以使用环境变量来指示您正在运行测试,检查它并忽略挑战的结果。它仍然不漂亮,但与 URL 参数不同,它现在至少包含在您的服务器端,并且客户端无法覆盖验证码。
-
@ivarni 好主意。这有点混乱,但这里没有那么多其他可能性。我很惊讶没有更好的解决方案存在,因为我认为这种情况经常发生。我们仍在研究如何最好地做到这一点。
-
这不是我的想法,NODE_ENV 用于许多节点模块(例如express)以根据上下文更改某些行为。前段时间我才看到,觉得使用系统环境比使用系统环境的大多数替代方案要好,并且在我遇到这样的事情的大部分时间都使用它。
标签: testing backbone.js nightwatch.js