📜  Cucumber-注释

📅  最后修改于: 2020-12-07 04:49:31             🧑  作者: Mango


注释是预定义的文本,具有特定的含义。它让编译器/解释器知道执行后应该做什么。黄瓜有以下几个注释-

  • 给定

    • 它描述了执行测试的前提条件。

    • 示例-给出我是Facebook用户

    • 它定义了任何测试方案执行的触发点。

    • 示例-当我输入“ <用户名>”时

  • 然后

    • 然后保留要执行的测试的预期结果。

    • 示例-THEN登录应该成功。

    • 它提供任何两个语句之间的逻辑AND条件。 AND可以与GIVEN,WHEN和THEN语句结合使用。

    • 示例-当我输入“ <用户名>”并且输入“ <密码>”时

  • 但是

    • 它表示任意两个语句之间的逻辑或条件。 OR可以与GIVEN,WHEN和THEN语句结合使用。

    • 示例-THEN登录应该成功。但是首页应该不会丢失。

  • 场景

    • 需要在关键字“方案:”之后捕获有关测试中方案的详细信息。

    • 示例-

      场景:

      给予我我是Facebook用户

      当我输入我的

      我输入我的

      然后登录应该成功。

      但是首页应该不会丢失。

  • 方案大纲-(稍后介绍)

  • 示例-(稍后介绍)

  • 背景

    • 后台通常会在每个方案运行之前说明如何设置。但是,它将在“ Before”钩子之后执行(稍后将介绍)。因此,当我们想要设置Web浏览器或想要建立数据库连接时,这是用于代码的理想选择。

      • 示例-

        背景:

        转到Facebook主页。

示例场景

让我们自动化一个场景,以便更好地理解注释。

第1步

创建一个名为AnnotationTest的Maven测试项目。

  • 转到文件→新建→其他→Maven→Maven项目→下一步。

  • 提供组ID(组ID将在所有项目中唯一标识您的项目)。

  • 提供工件ID(工件ID是不带版本的jar的名称。您可以选择任何小写的名称)。

  • 单击完成。

  • 打开pom.xml-

    • 转到Eclipse左侧的Package Explorer。

    • 展开项目AnnotationTest。

    • 找到pom.xml文件。

    • 右键单击并选择选项,使用“文本编辑器”打开。

  • 添加Selenium的依赖关系-这将指示Maven,哪些Selenium jar文件将从中央存储库下载到本地存储库。

    • 以编辑模式打开pom.xml,在项目标签内创建依赖关系标签( )。

    • 在依赖关系标签内,创建依赖关系标签( )。

    • 在依赖项标签中提供以下信息。

 
   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的包

  • 选择新创建的项目。

  • 右键单击并选择“新建”。

  • 选择选项为“包装”。

  • 将其命名为“注释”。

  • 保存。

第三步

创建一个名为注释文件的功能文件。

  • 选择并右键单击程序包轮廓。

  • 点击“新建”文件。

  • 给文件起一个名字,例如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步

创建亚军类文件。

  • 选择并右键单击程序包轮廓。

  • 点击“新建”文件。

  • 为文件命名,例如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 Web浏览器实例中打开。

  • TOM将作为输入传递到用户名字段。

  • JERRY将作为输入传递给密码字段。

  • 单击登录。

  • 将在浏览器上显示有关登录失败的消息。

  • 在控制台中,您将看到“ Test Pass”打印

  • 步骤结果1.至5.将重新执行用户名“”和密码“”。