黄瓜:嵌套方案大纲周期

时间:2019-11-13 18:48:17

标签: cucumber gherkin

自动化方案:

 Given  <precondition> was fulfilled
 And <user> is authorized
 When user requests <endpoint>
 Then user should receive <code> response

测试数据矩阵:

      | precondition       | endpoint          | user1 | user 2    | ....
      |                    | /users            | OK    | Not Found |
      |                    | /roles            | OK    | OK        |
      |                    | /create_user      | OK    | OK        |
      | object user exists | /update_user      | OK    | OK        |
      | object user exists | /delete_user      | OK    | OK        |
      |                    | /create_data_role | OK    | Not Found |
      | data role exists   | /update_data_role | OK    | Not Found |
  ....

大约有20个用户具有不同的角色组合和大约20个端点。 需要验证每个用户的每个端点-因此它应该是一个嵌套循环。 我该怎么办?

2 个答案:

答案 0 :(得分:2)

不要在黄瓜中这样做-原因

1)将所有这些路线和条件放到小黄瓜中并没有任何好处。没有人可以阅读并理解它们,特别是如果您尝试组合的东西

2)Cuke方案运行缓慢,并且您希望运行许多方案,因此可以通过编写快速的单元测试来大大减少运行时间。

3)如果您使用代码编写此测试,则可以比在Gherkin中编写的更加优雅。

4)处理错误很痛苦(正如您已经指出的那样)

您为此任务使用了错误的工具,请使用其他工具。

答案 1 :(得分:0)

但是我想出了这个选项,但是它没有遵循小黄瓜的约定,因为“何时”和“然后”会卡在一个选项中  1.前提条件移至@Before钩子  2.场景

Given <user> is authorized
Then <user> requests functionality appropriate response code should be received
| ENDPOINT                          | USER1 | USER2|
| /users                            | 200   | 404  |
| /create_user                      | 200   | 404  | 
| /update_user                      | 200   | 404  |
Examples:
| username |
| USER1    |
| USER2    |

这也很不方便,因为当测试失败时,识别出故障端点需要花费时间