Selenium webdriver 如何在Cucumber中编写正确的特征文件
我试图学习BDD cucumber,并试图为登录场景编写一个功能文件,其中包含有效和无效的用户名。 对于有效的用户,将被登录并注销。但是,对于无效的用户名,将要求用户再次转到登录页面,并要求用户写入正确的凭据 我想问一下,在“情景大纲”中,我们能同时有积极和消极的情景吗? 你能帮我为这个简单的场景编写完美的功能文件吗? 看看我的功能文件代码(PS,我是初学者:)Selenium webdriver 如何在Cucumber中编写正确的特征文件,selenium-webdriver,cucumber,bdd,feature-file,Selenium Webdriver,Cucumber,Bdd,Feature File,我试图学习BDD cucumber,并试图为登录场景编写一个功能文件,其中包含有效和无效的用户名。 对于有效的用户,将被登录并注销。但是,对于无效的用户名,将要求用户再次转到登录页面,并要求用户写入正确的凭据 我想问一下,在“情景大纲”中,我们能同时有积极和消极的情景吗? 你能帮我为这个简单的场景编写完美的功能文件吗? 看看我的功能文件代码(PS,我是初学者:) 功能:登录操作 描述:此功能将测试登录和注销功能 场景大纲:使用有效和无效凭据登录 给定用户位于主页上 当用户导航到登录页面时 然后
功能:登录操作
描述:此功能将测试登录和注销功能
场景大纲:使用有效和无效凭据登录
给定用户位于主页上
当用户导航到登录页面时
然后用户输入“”和“”
并保持案件的有效性
然后用户应该登录
并显示登录成功的消息
然后用户输入“”和“”
并将案件视为无效
然后用户将被要求返回到登录页面
并提供正确的凭证
示例:
|用户名|密码|大小写|
|abc@gmail.com|12345 |有效|
|abc1@gmail.com|dfsd2 |无效|
场景:成功从应用程序注销
当用户从应用程序注销时
然后显示消息“注销成功”
并由驱动程序退出浏览器
“完美”-没有这样的事
你写的情景大纲非常混乱,可能是对情景大纲工作原理的错误解释。基本上,您使用示例表的每一行登录两次,即相同的用户名和密码(SO中的第3行和第7行)。在情景大纲中,所有步骤都将在示例中提供的每一行数据中重复。请参阅多个可用教程
为什么要混淆有效登录和无效登录?将它们放在不同的场景中。易于理解。将注销移动到单独的功能文件。 然后,您可以将登录场景的前3个步骤移动到后台。减少重复 在检查多个数据的有效案例的登录功能时,您将遇到问题。一旦有效用户登录,那么大多数web应用程序将登录凭据存储在cookie等中。因此,当对登录页面发出新请求时,它可能会跳过登录页面,并进入主页。然后,当selenium代码查找userid输入框时,您将得到NoSuchElementException。因此,对于有效的情况,您也需要注销
@Login
Scenario Outline: Login with valid and Invalid Credentials
Given User is on Home Page
....
....
@Valid
Examples:
|username|password|Case|
|abc@gmail.com|12345|Valid|
@InValid
Examples:
|username|password|Case|
|abc@gmail.com|12345|Valid|
要运行有效登录案例,请使用runner中的标记选项作为
{“@Login”、“@Valid”}
,或者如果在Cucumber2上@Login和@Valid
。对于无效的一个替换为@Invalid.'Perfect'-不是这样的事情
Scenario: Good sign in
Given I am registered
When I sign in
Then I should be signed in
Scenario: Not registered sign in
Given I am not registered
When I sign
Then I should not be signed in
And ...
Scenario: Registered with wrong password
Given I am registered
When I sign in with a bad password
Then I should not be signed in
And ...
你写的情景大纲非常混乱,可能是对情景大纲工作原理的错误解释。基本上,您使用示例表的每一行登录两次,即相同的用户名和密码(SO中的第3行和第7行)。在情景大纲中,所有步骤都将在示例中提供的每一行数据中重复。请参阅多个可用教程
为什么要混淆有效登录和无效登录?将它们放在不同的场景中。易于理解。将注销移动到单独的功能文件。 然后,您可以将登录场景的前3个步骤移动到后台。减少重复 在检查多个数据的有效案例的登录功能时,您将遇到问题。一旦有效用户登录,那么大多数web应用程序将登录凭据存储在cookie等中。因此,当对登录页面发出新请求时,它可能会跳过登录页面,并进入主页。然后,当selenium代码查找userid输入框时,您将得到NoSuchElementException。因此,对于有效的情况,您也需要注销
@Login
Scenario Outline: Login with valid and Invalid Credentials
Given User is on Home Page
....
....
@Valid
Examples:
|username|password|Case|
|abc@gmail.com|12345|Valid|
@InValid
Examples:
|username|password|Case|
|abc@gmail.com|12345|Valid|
要运行有效登录案例,请使用runner中的标记选项作为{“@Login”、“@Valid”}
,或者如果在Cucumber2上@Login和@Valid
。对于无效的一个,替换为@Invalid
Scenario: Good sign in
Given I am registered
When I sign in
Then I should be signed in
Scenario: Not registered sign in
Given I am not registered
When I sign
Then I should not be signed in
And ...
Scenario: Registered with wrong password
Given I am registered
When I sign in with a bad password
Then I should not be signed in
And ...
小贴士:
- 保持简单
- 不要使用轮廓
- 将你如何做的细节保留在场景之外
- 每个路径有一个场景
- 10个简单的场景比一个复杂的场景要好
- 这只是一个人的意见
- 您需要能够以这种方式编写代码(当您将如何完成事情的所有细节从cucumber推送到helper代码中时)
- 注册是登录的先决条件
- 保持简单
- 不要使用轮廓
- 将你如何做的细节保留在场景之外
- 每个路径有一个场景
- 10个简单的场景比一个复杂的场景要好
- 这只是一个人的意见
- 您需要能够以这种方式编写代码(当您将如何完成事情的所有细节从cucumber推送到helper代码中时)
- 注册是登录的先决条件