English 中文(简体)
Cucumber - Tags
  • 时间:2024-03-24 14:28:30

Cucumber - Tags


Previous Page Next Page  

当我们只有一个、两个或可能是五个假设情景时,它就显得简单。 然而,在现实生活中,情况并非如此。 对于正在测试的每个特征,我们可能拥有10、20个,或者在一个单一特征档案中可能有更多的假设情景。 它们可能代表不同的目的(烟雾测试/回归测试)、不同的预期目标(Developer/QA/BA)、不同地位(执行/工作进展情况)等等。 如何管理这种大规模处决?

为此,Cucumber已经通过在物证上使用标签安排了你的设想执行。 我们可以用有用的主角来界定每一种情景。 后来,在案卷中,我们可以决定哪些具体主角(并因此,我们想要库茨克执行。 从“@”开始。 在“@”之后,你可以有确定主角的任何相关案文。 让我们以一个实例理解这一点。

假设情况是,在特征档案中有两个或两个以上情况。 我们只想实施一种情况,作为烟雾测试的一部分。 因此,首先要确定这一设想,其次是在设想方案开始时用“@Smoke 试验”文本加以标注。 让我们深入审视这个问题——

<Step 1——创建名为cucumberTag的Maven项目。

src/test/java下设立一个名为cucumberTag的一揽子计划。

创建名为cucumberTag.feature的特辑。

在档案中撰写以下案文并加以保存。 该专题文件载有两个假设情景,其中只有一个标注为Smoke Test

Feature − Cucumber Tag

Scenario Outpne − Login functionapty for a social networking site.

Given user navigates to Facebook

When I enter Username as "<username>" and Password as "<password>"

Then login should be unsuccessful

Examples

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

scenario缩的情景被gged为oke,应当加以执行。 @Smoke 试验

Scenario:

Given user navigates to Facebook

When I enter Username as "<>" and Password as "<>"

Then the user should be redirected to login retry

    在一揽子大纲中选择和右翼。

    Cpck on "New' file.

    cucumberTag.java

    在档案中撰写以下案文,并予以保存。

package cucumberTag;
 
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; 
import cucumber.annotation.en.When; 

pubpc class cucumberTag { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   pubpc void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter Username as "([^"]*)" and Password as "([^"]*)"$") 
   pubpc 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")).cpck(); 
   } 
	
   @Then("^login should be unsuccessful$") 
   pubpc void vapdateRelogin() { 
      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(); 
   } 
	
   @Then("^User should be redirected to login retry$") 
   pubpc void loginRetry() { 
      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(); 
   } 
}

Step 5——创建经营人班级档案。

    创立一个称为run Test.java的班轮。 在包裹内。

    撰写以下法典。

    Save the file.

package cucumberTag;
 
import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

pubpc class runTest { }

    执行试验方案。

    右翼和选用Omun as'

    选择JUSG测试。

在你管理这一类档案时,你将观察下列情况。

    Facebook在新的网上浏览器中开放。

    用户名和密码领域不提供价值。

    将点击Login。

    日志将装上。

在特征档案中,对标签没有限制。 根据你们的需要,你可以找到要使用的标签和要执行的情景。

主要分为两类:

    Default tag-Default tag有其预先界定的含义。 Example @Dev,@Ignore

    Custom tag——习俗标签为你提供了充分的灵活性,可以选择适当的案文来界定标签。

也可以在特征一级界定“包租”。 一旦你在特征层次上界定一个标签,它就确保该特征档案中的所有假设情景都继承该标签。 根据设想方案的性质,我们可以对单一特征使用不止一个标签。 每当Cucumber找到适当的电话时,就会执行具体的设想。

umber也为反对tag择提供了途径。 认为在25种确定的假想中,有10种是烟雾检测。 我们只需要执行回归试验情景。

为此,我们可以在Junnit操作员中使用“~”办法,排除烟雾试验情景。 它将考虑如下。

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, tags = {"~@SmokeTest"}) 

pubpc class runTest { }

在界定多个方面的同时,我们也能够确定逻辑或/和逻辑及行动。

    界定逻辑或操作类别——@dev,@wip 它说,需要执行与其中任何部分相匹配的情景。

    界定逻辑或操作类别——[@dev,~@wip]—— 它说,需要执行与这两个方面相匹配的情景。

Advertisements