Cucumber - 命令行选项

Cucumber可用于测试几乎所有计算机系统.到目前为止,我们已经了解了如何使用Eclipse IDE运行测试.还有一种方法可以通过命令行界面运行Cucumber测试.那么这样做有什么好处?

从终端运行任何测试框架都有自己的优势,例如覆盖代码中提到的运行配置.

要使用命令提示符执行Cucumber测试,请在系统配置后使用以下步骤.

步骤1 : 创建名为 commandLine 的Maven测试项目.

  • 转到文件→新建→其他→Maven →Maven项目→下一步.

  • 提供组ID(组ID将在所有项目中唯一标识您的项目).

  • 提供工件ID(工件ID是没有版本的jar的名称.您可以选择任何小写的名称).

  • 点击完成.

  • 打开pom.xml :

    • 转到Eclipse左侧的包浏览器.

    • 展开项目CucumberTest.

    • 找到 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下创建名为"outline"的包

步骤3 : 创建一个名为"commandLine.feature"的功能文件.

  • 选择并右键单击包大纲.

  • 点击"新建"文件.

  • 为文件命名,例如"commandLine".功能"

  • 在文件中写下文字并保存.

    功能号;场景大纲

    场景大纲 : 社交网站的登录功能.

    鉴于用户导航到Facebook

    当我输入用户名为"< username>"时密码为"<密码>"

    然后登录失败

示例

| 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报告生成器.