📜  Cucumber-命令行选项

📅  最后修改于: 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报告生成器。