我一直在为Ruby on Rails开发的应用程序编写黄瓜测试 . 应用程序提供服务器(vm)并等待结果(如成功或失败)并显示结果 . 配置服务器有7-8种不同的情况(或场景) .
我有两个问题
-
如何将这2个不同的场景轮廓分成一个 . 所以我不需要重复示例部分中的表格 . 我想为所有场景(示例)创建一个provsioning请求,然后等待15分钟直到所有请求都被配置,并在15分钟后检查所有场景是否通过或失败 .
-
由于这些测试需要更多时间才能完成,因此当我运行运行所有功能文件的"bundle cucumber"时,如何跳过它们 . 我不想每次都运行以下测试 .
我已经使用场景概述和示例编写了黄瓜测试,如下所示 .
Scenario Outline: Create A New Server Request
Given user is on create new server request page
When user enters follwing data
| Datacenter | <Datacenter> |
| Cores |<Cores> | |
| Memory | <Memory> |
Then he should see request submitted
Examples:
|DataCenter |Cores| Memory|
| ABC | 2 | 1 GB |
| DEF | 4 | 2 GB |
| GHI | 8 | 4 GB |
| JKL | 4 | 2 GB |
Scenario: Wait till provisioning happens
Given user waits for 15 minutes
Scenario Outline: Verify a New Server Request
Given user is on provision server page
When user check the request with follwing data
| Datacenter | <Datacenter> |
| Cores |<Cores> | |
| Memory | <Memory> |
Then he should see servers are provisioned
Examples:
|DataCenter |Cores| Memory|
| ABC | 2 | 1 GB |
| DEF | 4 | 2 GB |
| GHI | 8 | 4 GB |
| JKL | 4 | 2 GB |
1 回答
Anupam,我相信背景是您需要的关键 . 设置您的服务器集以使用后台作为变量使用,然后在您的方案中简单地引用它们 . 我还将结合“给定用户在____页面上”,因为您可以将该实现细节隐藏在stepdef中以供应,检查队列并检查结果 .
要在步骤中保留背景数据,只需将其设置为World对象上的实例变量即可 . 我可能会使用Cucumber :: Ast :: Table.hashes将数据转换为更易于使用的数据格式 .
至于每次都不运行这些测试,我会设置一个黄瓜@tag,用于排除花费太长时间的场景 . 您还可以设置yaml配置文件来处理此问题,然后在测试中调用相应的配置文件 . 有关示例,请参阅黄瓜文档 . https://github.com/cucumber/cucumber/wiki/cucumber.yml
编辑:你也可以在你的第一步def设置varioable,但我喜欢使用你不想重复的“数据”的背景 .