📅  最后修改于: 2020-12-07 04:51:24             🧑  作者: Mango
在进行自动化工作时,我们可能会遇到各种情况。每个方案都有不同的含义和需求。
从一开始,我们就一直以一个社交网站的登录功能为例,在该网站上,我们只传递了两个输入参数。让我们考虑更多可能性。 “新用户注册”功能如何?通常,在为社交网站注册新用户时输入的参数是什么?类似于以下内容-
功能-新用户注册。
传递错误的输入后,验证新用户注册不成功。
鉴于我在新的用户注册页面上。
当我输入用户名和电子邮件地址作为电子邮件地址和密码作为,然后重新输入密码作为和Birthdate作为,性别作为和电话号码作为用户注册时,用户注册应该会失败。
乍一看似乎有些混乱。那么,有没有更好的方法来管理这些输入呢?答案可以是“数据表”。数据表是为单个标签提供的一组输入。此标签可以是GIVEN,WHEN或THEN。
让我们在数据表的帮助下编写上面的场景,它看起来像下面的样子:
鉴于我在新的用户注册页面上
当我在页面上输入有效数据时
| Fields | Values |
| First Name | Tom |
| Last Name | Kenny |
| Email Address | someone@someone.com |
| Re-enter Email Address | someone@someone.com |
| Password | Password1 |
| Birthdate | 01 |
然后,用户注册应该成功。
让我们自动化一个数据表示例。
步骤1-创建一个名为“ DataTableTest”的Maven测试项目。
转到文件→新建→其他→Maven→Maven项目→下一步。
提供组ID (组ID将在所有项目中唯一标识您的项目)。
提供工件ID (工件ID是不带版本的jar的名称。您可以选择任何小写的名称)。
单击完成。
打开pom.xml-
转到Eclipse左侧的Package Explorer。
展开项目CucumberTest。
找到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下创建一个名为dataTable的包
步骤3-创建功能文件。
在包dataTable中创建一个名为dataTable .feature的功能文件(有关更多详细步骤,请参阅方案大纲部分)。
写下以下文字。
功能-数据表
传递错误的输入后,验证新用户注册不成功。
场景:
鉴于我在新用户注册页面上
当我在页面上输入无效数据时
| Fields | Values |
| First Name | Tom |
| Last Name | Kenny |
| Email Address | someone@someone.com |
| Re-enter Email Address | someone@someone.com |
| Password | Password1 |
| Birthdate | 01 |
那么用户注册应该不成功
保存文件。
步骤4-创建步骤定义文件。
在包dataTable内创建名为“ dataTable.java”的步骤定义文件(有关更多详细步骤,请参阅方案概述部分)。
编写以下代码。
package dataTable;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.table.DataTable;
public class stepdefinition {
WebDriver driver = null;
@Given("^I am on new user registration page$")
public void goToFacebook() {
//Intiate web browser instance. driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter invalid data on the page$")
public void enterData(DataTable table){
//Initialize data table
List data = table.raw();
System.out.println(data.get(1).get(1));
//Enter data
driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));
driver.findElement(By.name("reg_email_confirmation__")).
sendKeys(data.get(4).get(1));
driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1));
Select dropdownB = new Select(driver.findElement(By.name("birthday_day")));
dropdownB.selectByValue("15");
Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
dropdownM.selectByValue("6");
Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
dropdownY.selectByValue("1990");
driver.findElement(By.className("_58mt")).click();
// Click submit button driver.findElement(By.name("websubmit")).click();
}
@Then("^User registration should be unsuccessful$")
public void User_registration_should_be_unsuccessful() {
if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
保存文件。
步骤5-创建亚军类文件。
在包内创建名为runTest.java的运行器类。
编写以下代码。
package dataTable;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
保存文件。
使用选项运行测试
从包资源管理器中选择runTest.java文件。
右键单击并选择选项“运行方式”。
选择JUnit测试。
成功执行后,您可能会观察到以下内容。
Facebook网站已加载。
数据将在注册页面上输入。
提交按钮将被点击。
我们将看到不会显示主页,并且将在控制台上写入“ Test Pass”。