📅  最后修改于: 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.将重新执行用户名“”和密码“”。