黄瓜 – 注释
黄瓜 – 注释
注释是预定义的文本,具有特定的含义。它让编译器/解释器知道在执行时应该做什么。黄瓜有以下几个注释 –
-
鉴于–
-
它描述了执行测试的先决条件。
-
示例 – 鉴于我是 Facebook 用户
-
-
当–
-
它定义了任何测试场景执行的触发点。
-
示例 – 当我输入“<用户名>”
-
-
然后–
-
然后保存要执行的测试的预期结果。
-
示例 – THEN 登录应该成功。
-
-
和–
-
它提供任意两个语句之间的逻辑 AND 条件。AND 可以与 GIVEN、WHEN 和 THEN 语句结合使用。
-
示例 – 当我输入“<username>”并输入“<password>”时
-
-
但是–
-
它表示任何两个语句之间的逻辑 OR 条件。OR 可以与 GIVEN、WHEN 和 THEN 语句结合使用。
-
示例 – THEN 登录应该成功。但是主页不应该丢失。
-
-
场景–
-
需要在关键字“Scenario:”后获取被测场景的详细信息
-
示例 –
设想:
鉴于我是 Facebook 用户
当我输入我的
然后我输入我的
那么登录应该就成功了。
但是主页不应该丢失。
-
-
场景大纲– (稍后介绍)
-
示例– (稍后介绍)
-
背景–
-
后台通常有关于在每个场景运行之前设置什么的说明。但是,它会在“Before”钩子之后执行(稍后会介绍)。因此,当我们想要设置 Web 浏览器或想要建立数据库连接时,这是用于代码的理想选择。
-
示例 –
背景:
转到 Facebook 主页。
-
-
示例场景
让我们自动化一个场景,以便更好地理解注释。
步骤1
创建一个名为AnnotationTest的 Maven 测试项目。
-
转到文件 → 新建 → 其他 → Maven → Maven 项目 → 下一步。
-
提供组 ID(组 ID 将在所有项目中唯一标识您的项目)。
-
提供 artifact Id(artifact Id 是没有版本的 jar 的名称。您可以选择任何小写的名称)。
-
单击完成。
-
打开pom.xml –
-
转到 Eclipse 左侧的包资源管理器。
-
展开项目 AnnotationTest。
-
找到 pom.xml 文件。
-
右键单击并选择选项,使用“文本编辑器”打开。
-
-
为 Selenium 添加依赖项 – 这将指示 Maven,哪些 Selenium jar 文件将从中央存储库下载到本地存储库。
-
在编辑模式下打开 pom.xml,在项目标签内创建依赖标签(<dependencies></dependencies>)。
-
在依赖项标签内,创建依赖项标签 (<dependency></dependency>)。
-
在依赖项标记中提供以下信息。
-
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.47.1</version> </dependency>
-
为 Cucumber-Java 添加依赖项 – 这将指示 Maven,哪些 Cucumber 文件将从中央存储库下载到本地存储库。
-
再创建一个依赖标签。
-
在依赖项标签内提供以下信息。
-
<dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>1.0.2</version> <scope>test</scope> </dependency>
-
为 Cucumber-JUnit 添加依赖项 – 这将指示 Maven,哪些 Cucumber JUnit 文件将从中央存储库下载到本地存储库。
-
再创建一个依赖标签。
-
在依赖项标记中提供以下信息。
-
<dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-junit</artifactId> <version>1.0.2</version> <scope>test</scope> </dependency>
-
为 JUnit 添加依赖项 – 这将指示 Maven,哪些 JUnit 文件将从中央存储库下载到本地存储库。
-
再创建一个依赖标签。
-
在依赖项标记中提供以下信息。
-
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency>
-
验证二进制文件。
-
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
第四步
创建步骤定义文件。
-
选择并右键单击包轮廓。
-
单击“新建”文件。
-
将文件名指定为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 网络浏览器实例中打开。
-
TOM 将作为输入传递给用户名字段。
-
JERRY 将作为输入传递给密码字段。
-
登录将被点击。
-
浏览器将显示有关登录失败的消息。
-
在控制台中,您将看到打印出“Test Pass”
-
步骤结果 1. 到 5. 将重新执行用户名为“”和密码为“”。