📅  最后修改于: 2020-12-07 04:52:44             🧑  作者: Mango
黄瓜可用于测试几乎所有计算机系统。到目前为止,我们已经看到了如何使用Eclipse IDE运行测试。还有另一种方法可以通过命令行界面运行Cucumber测试。那么这样做的好处是什么?
从终端运行任何测试框架都有其自身的优势,例如覆盖代码中提到的运行配置。
为了在命令提示符下执行Cucumber测试,请在系统配置后使用以下步骤。
步骤1-创建一个名为commandLine的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下创建一个名为“ outline”的包
步骤3-创建一个名为“ commandLine.feature”的功能文件。
选择并右键单击程序包轮廓。
点击“新建”文件。
为文件命名,例如“ commandLine.feature”
在文件内的下方写上文字并保存。
功能-方案大纲
方案大纲-社交网站的登录功能。
给定用户导航到Facebook
当我输入用户名作为“ <用户名>”和密码作为“ <密码>”时
然后登录应该失败
| username | password |
| username1 | password1 |
| username2 | password2 |
注–这里的示例注释描述了场景执行时要提供的输入范围。将针对提供的每个输入执行测试方案。因此,在给定的示例中,测试方案将执行3次。
步骤4-创建步骤定义文件。
选择并右键单击程序包轮廓。
点击“新建”文件。
将该文件命名为commandLine.java
在文件中写入以下文本并保存。
package Outline;
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; i
import cucumber.annotation.en.When;
public class stepdefinition {
WebDriver driver = null;
@Given("^user navigates to facebook$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$")
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^login should be unsuccessful$")
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
注-在代码中,我们必须定义有两个输入参数的函数:一个用户名和其他将是密码。因此,对于示例标记中提供的每组输入,将执行GIVEN,WHEN和THEN的设置。
步骤5-创建亚军类文件。
选择并右键单击程序包轮廓。
点击“新建”文件。
为文件命名,例如runTest.java
在文件中写入以下文本并保存。
package Outline;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
打开命令提示符。
转到此包“ commandLine”所在的目录。 e:\ Workspace \ LoginTest \ src> cd test \ java
运行命令mvn test:您将看到功能文件中描述的所有场景均已执行(如果没有任何错误)。最后,在底部,您将找到以下信息。
This describes the total test run, along with failure if any.
前面的命令运行JUnit Runner类中提到的所有内容。但是,如果我们要覆盖Runner中提到的配置,请参考以下几个示例。
现在,在命令提示符下运行命令mvn test-Dcucumber.options =“-help”。运行此命令将打印所有可用选项。
要仅运行特定标记,请在命令提示符下运行命令mvn test -Dcucumber.options =“-tags @SmokeTest”。它仅运行带有@SmokeTest标记的标签。
为了更改结果的格式,请在命令提示符下运行命令E:\ Workspace \ LoginTest> mvn test -Dcucumber.options =“-plugin junit:target / cucumber-junit-report.xml”格式化为JUnit报告生成器。