注释是预定义文本,具有特定含义.它让编译器/解释器知道在执行时应该做什么.黄瓜有以下几个注释;
给定 :
它描述了要执行的测试的先决条件.
示例 : GIVEN我是Facebook用户
何时 :
它定义了任何测试场景执行的触发点.
示例 : 当我输入"< username>"
然后 :
然后保存要执行的测试的预期结果.
示例 : 然后登录应该成功.
和 :
它提供任意两个语句之间的逻辑AND条件. AND可以与GIVEN,WHEN和THEN语句一起使用.
示例 : 当我输入"< username>"时我输入"< password>"
但是 :
它表示任何两个语句之间的逻辑OR条件. OR可以与GIVEN,WHEN和THEN语句一起使用.
示例 : 那么登录应该是成功的.但不应缺少主页.
情景 :
关键字"情景:"之后需要捕获有关测试场景的详细信息
示例 :
场景:
GIVEN我是Facebook用户
当我输入我的
并输入我的
那么登录应该会成功.
但不应缺少主页.
情景大纲 : (稍后介绍)
例子 : (稍后介绍)
背景 :
示例 :
背景:
转到Facebook主页.
后台通常具有在每个场景运行之前设置的内容的说明.但是,它会在"Before"挂钩之后执行(稍后介绍).因此,当我们想要设置Web浏览器或者我们想要建立数据库连接时,这非常适合用于代码.
示例场景
让我们自动化场景以便更好地理解注释.
第1步
创建一个名为 AnnotationTest的Maven测试项目.
转到文件→新建→其他→Maven→Maven项目→下一步.
提供组ID(组ID将在所有项目中唯一标识您的项目).
提供工件Id(artifact ID是没有版本的jar的名称.您可以选择任何小写的名称.)
单击Finish.
打开 pom.xml :
转到包装e Eclipse左侧的xplorer.
展开项目AnnotationTest.
找到pom.xml文件.
右键单击并选择"使用"文本编辑器"打开选项.
为Selenium和minus添加依赖关系;这将指示Maven,将Selenium jar文件从中央存储库下载到本地存储库.
打开pom .xml处于编辑模式,在项目标记内创建依赖项标记(< dependencies>).
在依赖项标记内,创建依赖关系标记(< dependency>).
在依赖关系标记中提供以下信息.
org.seleniumhq.selenium selenium-java 2.47.1
为Cucumber-Java添加依赖关系;这将指示Maven,其中Cucumber文件将从中央存储库下载到本地存储库.
再创建一个依赖标记.
在依赖标记中提供以下信息.
info.cukes cucumber-java 1.0.2 test
为Cucumber-JUnit添加依赖项;这将指示Maven,将Cucumber JUnit文件从中央存储库下载到本地存储库.
创建一个更多依赖关系标记.
在依赖关系标记中提供以下信息.
info.cukes cucumber-junit 1.0.2 test
为JUnit添加依赖项;这将指示Maven,哪些JUnit文件将从中央存储库下载到本地存储库.
再创建一个依赖标记.
在依赖标记中提供以下信息.
junit junit 4.10 test
验证二进制文件.
成功编辑pom.xml后,保存.
转到项目→清除去;这将需要几分钟.
第2步
在 src/test/java
下创建名为Annotation的包
选择新创建的项目.
右键单击并选择"新建".
选择选项作为'套餐'.
将其命名为'注释'.
保存.
第3步
创建名为 annotation.feature 的要素文件.
选择并右键单击在包装大纲上.
点击"新建"文件.
给出提交一个名称,例如 outline.feature .
在文件中写下以下文字并保存.
Feature: annotation #This is how background can be used to eliminate duplicate steps Background: User navigates to Facebook Given I am on Facebook login page #Scenario with AND Scenario: When I enter username as "TOM" And I enter password as "JERRY" Then Login should fail #Scenario with BUT Scenario: When I enter username as "TOM" And I enter password as "JERRY" Then Login should fail But Relogin option should be available
步骤4
创建步骤定义文件.
选择并右键单击在包装大纲上.
点击"新建"文件.
给出文件名为 annotation.java
在文件中写下以下文字并保存.
package Annotation; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.annotation.en.Given; import cucumber.annotation.en.Then; import cucumber.annotation.en.When; public class annotation { WebDriver driver = null; @Given("^I am on Facebook login page$") public void goToFacebook() { driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter username as (.*)$") public void enterUsername(String arg1) { driver.findElement(By.id("email")).sendKeys(arg1); } @When ("^I enter password as (.*)$") public void enterPassword(String arg1) { driver.findElement(By.id("pass")).sendKeys(arg1); driver.findElement(By.id("u_0_v")).click(); } @Then("^Login should fail$") public void checkFail() { if(driver.getCurrentUrl().equalsIgnoreCase( "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ System.out.println("Test1 Pass"); } else { System.out.println("Test1 Failed"); } driver.close(); } @Then("^Relogin option should be available$") public void checkRelogin() { if(driver.getCurrentUrl().equalsIgnoreCase( "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ System.out.println("Test2 Pass"); } else { System.out.println("Test2 Failed"); } driver.close(); }}
第5步
创建一个runner类文件.
选择并右键单击包大纲.
点击"新建"文件.
为文件命名,例如 runTest.java
在文件中写下以下文字并保存.
package Annotation; import org.junit.runner.RunWith; import cucumber.junit.Cucumber; @RunWith(Cucumber.class) @Cucumber.Options(format = {"pretty", "html:target/cucumber"}) public class runTest { }
第6步
使用选项 :
从包资源管理器中选择runTest.java文件.
右键单击并选择选项'运行方式'
选择JUnit测试.
当您运行此类文件时,您将观察到以下内容 :
Facebook在新的Firefox网络浏览器实例中打开.
TOM将作为输入传递到用户名字段.
JERRY将作为输入传递给密码字段.
点击登录.
关于登录失败,浏览器会显示消息.
在控制台中,你会看到印有"测试通行证"
步骤结果1.至5.将用户名重命名为"",密码重写为"".