- Cucumber - Ruby Testing
- Cucumber - Java Testing
- Cucumber - Debugging
- Cucumber - Reports
- Cucumber - JUnit Runner
- Cucumber - Command Line Options
- Cucumber - Hooks
- Cucumber - Comments
- Cucumber - Data Tables
- Cucumber - Tags
- Cucumber - Scenario Outline
- Cucumber - Annotations
- Cucumber - Scenarios
- Cucumber - Features
- Cucumber - Gherkins
- Cucumber - Environment
- Cucumber - Overview
- Cucumber - Home
Cucumber Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Cucumber - Tags
当我们只有一个、两个或可能是五个假设情景时,它就显得简单。 然而,在现实生活中,情况并非如此。 对于正在测试的每个特征,我们可能拥有10、20个,或者在一个单一特征档案中可能有更多的假设情景。 它们可能代表不同的目的(烟雾测试/回归测试)、不同的预期目标(Developer/QA/BA)、不同地位(执行/工作进展情况)等等。 如何管理这种大规模处决?
为此,Cucumber已经通过在物证上使用标签安排了你的设想执行。 我们可以用有用的主角来界定每一种情景。 后来,在案卷中,我们可以决定哪些具体主角(并因此,我们想要库茨克执行。 从“@”开始。 在“@”之后,你可以有确定主角的任何相关案文。 让我们以一个实例理解这一点。
假设情况是,在特征档案中有两个或两个以上情况。 我们只想实施一种情况,作为烟雾测试的一部分。 因此,首先要确定这一设想,其次是在设想方案开始时用“@Smoke 试验”文本加以标注。 让我们深入审视这个问题——
<Step 1——创建名为cucumberTag的Maven项目。
在档案中撰写以下案文并加以保存。 该专题文件载有两个假设情景,其中只有一个标注为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]—— 它说,需要执行与这两个方面相匹配的情景。