BDD传递Recaptcha和null值 - 最佳实践

时间:2017-09-04 20:34:33

标签: cucumber bdd gherkin

我对使用Cucumber与最佳实践相关的BDD有两个疑问。

我有一个页面可以自动注册用户。

您输入个人数据,例如:姓名,电子邮件和确认 之后,您选择您感兴趣的网站选项(有10个组合框,可以是您想要的多个)。 插入recaptcha并发送。

我需要验证所有成功案例以及失败案例。

所以,这是我的问题:

1)带recaptcha的页面。 由于无法自动执行重新接收,并且此步骤自然会进入我的测试,我是否应该制作无效重新验证验证的方案?

2)我是否有任何聪明的方法来编写探索所有可能的网站兴趣选项组合的场景?

在我的页面中: ()经济 ( ) 教育 ()运动 ()娱乐 ()旅行 ()......

我希望能够通过测试1个选项,2个选项,3个选项,......,所有选项来多次提交测试。 但是,如果有一种精益的方式,我只想这样做。

换句话说:在场景大纲示例中,我可以在这种情况下传递空值吗?

2 个答案:

答案 0 :(得分:1)

与Thomas在Captcha上提到的内容一致,我会说这是无法自动测试的少数几件事之一(负面路径除外)。

我也同意Thomas的观点,你不应该使用可执行规范测试选项的每一种可能性,而是使用集成测试或甚至单元测试,如果这部分代码的体系结构允许的话。

对于Gherkin格式的实际可执行场景,我看到了以下功能:

Given Paul supplied the incorrect Captcha
When he wants to register himself
Then he should not be registered
  • 您可能想知道我们是否应该在场景中使用实施词Captcha,因为当我们在实现中用其他东西替换Captcha时它将是不正确的。

可能存在潜在的其他情况,具体取决于在未选择任何选项时是否允许某人注册:

Given Paul has not chosen any of the possible interest topics
When he wants to register himself
Then he should not be registered
  • 注意重复使用句子的时间,然后部分允许更少的测试代码。

答案 1 :(得分:0)

关于captcha,我可能会验证一个破损的验证码会阻止用户。验证正路径显然很难,因为验证码可以阻止机器人,自动验证与机器人相同。

关于验证所有选项,我会看看是否可以在表面之下进行验证。使用浏览器从UI执行此操作很慢,您正在谈论2 ^ 10种组合。那是很多案例。如果需要测试所有组合,请改为对照控制器进行测试。在这种情况下,像Cucumber这样的工具可能不是您的最佳选择。编程语言可能比Gherkin更好。

如果您仍想使用Cucumber,至少要快速并避免使用浏览器。我写了一篇blogpost关于正确的工具。它可以帮助您理解为什么您不必在所有场景中都使用UI。