黄瓜Selenium Java运行场景概述有多个示例

时间:2017-10-09 10:07:07

标签: selenium cucumber scenarios

任何人都可以帮我找到以下用例的解决方案:

目前我正在使用Cucumber开发Selenium Automation,我有以下问题。

我需要在Web应用程序中自动化场景。

CanExecute

在这里,我需要看到9次为每个用户运行相同的场景直到(选项3)。

我的意思是当Arun登录时他应该结账并选择第一个选项(EG:他下订单没有输入描述)然后Arun应该再次登录并且应该结账并选择选项二(这次他输入描述并下订单)然后再次登录为选择选项3(EG:输入说明并选择一些复选框并下订单)。

这也需要为Ajay和Ashok重复。我如何在Cucumber中实现这一目标。我可以将多个示例用于单个场景大纲。

或者是否可以在后台使用示例。

这是我需要自动化并尝试使用Cucumber中的各种选项的重要用例之一。但没有任何作用。

先谢谢

3 个答案:

答案 0 :(得分:1)

您可以编写方案大纲,如下所示。它可能有用。

Scenario Outline: Login as <user> and Purchase item with the option <option>
When I login as <user>
And I enter the description <description> 
And I checkout the item using the option <option>

Examples:
|user|description|option|
|Arun |Some Desc|One  |
|Arun |         |One  |
|Arun |Some Desc|two  |
|Ajay |         |three|
|Ajay |Some Desc|two  |
|Ajay |Some Desc|three|
|Ashok|         |One  |
|Ashok|Some Desc|two  |
|Ashok|Some Desc|three|

这将运行具有不同用户,描述和选项的所有步骤。

答案 1 :(得分:0)

一个想法是这样的:

pd.read_csv(r'C:\Users\user\Desktop\Workbook1.csv')

这将为每个用户运行每个选项。我不知道您的代码看起来如何,但使用上述格式应该很容易适应。查看documentation以及how to write good Gherkin

答案 2 :(得分:0)

您的步骤和场景大纲似乎做得太多了。

如果用户具有明显不同的权限,或者对于3个用户中的每个用户进行结帐更改的方法,那么当然,测试可能需要9个方案,否则,您可能只需要编写3个方案来测试这个。

我写这个测试的方式:

Background:
   Given I am logged in as "Arun"
     And I have gone to the checkout after selecting various products
   When I purchase the items

Scenario Outline: Checkout descriptions
   Then I should be able to checkout <with?> a description

 Examples:
   | with?   |
   | with    |
   | without |

Scenario: Checkout with description and accept the terms of service*
   Then I should be able to checkout with a description
     And I should be able to accept the terms of service*

*替换&#34;接受服务条款&#34;具有选中复选框背后的含义。

Gherkin可以弥合开发团队和业务之间的对话差距,因此确保非技术业务人员可以理解所使用的语言是必不可少的。将实现细节留在特征文件之外,因为它只是描述系统的行为方式。

修改

如果在其他2个用户中运行测试时有实际商业利益(并且它不仅仅是为了设置测试数据而运行,应该在之前的挂钩中完成),那么也许你需要做更多这样的事情:

Scenario Outline: Checkout descriptions
   Given I am logged in as "<user>"
     And I have gone to the checkout after selecting various products
   When I purchase the items
   Then I should be able to checkout <with?> a description

 Examples:
   | user  | with?   |
   | Arun  | with    |
   | Ajay  | with    |
   | Ashok | with    |
   | Arun  | without |
   | Ajay  | without |
   | Ashok | without |

Scenario Outline: Checkout with description and accept the terms of service*
   Given I am logged in as "<user>"
     And I have gone to the checkout after selecting various products
   When I purchase the items
   Then I should be able to checkout with a description
     And I should be able to accept the terms of service*

 Examples:
   | user  |
   | Arun  |
   | Ajay  |
   | Ashok |