- Cucumber教程
- Cucumber - 首页
- Cucumber - 概述
- Cucumber - 环境
- Cucumber - 小Cucumber
- Cucumber - 特点
- Cucumber - 场景
- Cucumber - 注释
- Cucumber - 场景大纲
- Cucumber - 标签
- Cucumber - 数据表
- Cucumber - 评论
- Cucumber - 钩子
- Cucumber - 命令行选项
- Cucumber - JUnit 运行程序
- Cucumber - 报告
- Cucumber - 调试
- Cucumber - Java 测试
- Cucumber - Ruby 测试
- Cucumber有用资源
- Cucumber - 快速指南
- Cucumber - 有用的资源
- Cucumber - 讨论
Cucumber - 命令行选项
Cucumber 几乎可以用来测试任何计算机系统。到目前为止,我们已经了解了如何使用 Eclipse IDE 运行测试。我们还可以通过命令行界面运行 Cucumber 测试的另一种方法。那么这样做有什么好处呢?
从终端运行任何测试框架都有其自身的优点,例如覆盖代码中提到的运行配置。
为了使用命令提示符执行 Cucumber 测试,请在系统配置后执行以下步骤。
步骤 1 - 创建一个名为commandLine的 Maven 测试项目。
转到文件 → 新建 → 其他 → Maven → Maven 项目 → 下一步。
提供组 ID(组 ID 将在所有项目中唯一标识您的项目)。
提供artifact Id(artifact Id是没有版本的jar的名称。您可以选择任何小写的名称)。
单击“完成”。
打开 pom.xml -
转到 Eclipse 左侧的包资源管理器。
展开项目 CucumberTest。
找到pom.xml文件。
右键单击并选择选项“使用“文本编辑器”打开”。
添加 Selenium 的依赖项 - 这将指示 Maven,哪些 Selenium jar 文件将从中央存储库下载到本地存储库。
在编辑模式下打开pom.xml,在项目标签内创建依赖项标签(<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 下创建一个名为“outline”的包
步骤 3 - 创建一个名为“commandLine.feature”的功能文件。
选择并右键单击包轮廓。
单击“新建”文件。
为文件命名,例如“commandLine.feature”
在文件中写入以下文本并保存。
特征- 场景概要
场景大纲- 社交网站的登录功能。
假定用户导航至 Facebook
当我输入用户名“<用户名>”和密码“<密码>”时
那么登录应该不成功
例子
| username | password | | username1 | password1 | | username2 | password2 |
注意- 这里,示例注释描述了场景执行时要提供的输入范围。将为提供的每个输入执行测试场景。因此,在给定的示例中,测试场景将执行三次。
步骤 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 报告生成器。