第4章Scenario Outline操作实例
来源:互联网 发布:快走丝编程 编辑:程序博客网 时间:2024/05/21 16:23
4.1 Scenario Outline简介
Scenario Outline基本上用表中的值替换变量/关键字。表中的每一行都被认为是一个场景。
继续使用Facebook登录功能的例子。到目前为止,一直在执行一个场景:提供正确的用户名,登录成功。现在,假设我们要检查所有三种可能的输入类型的登录是否成功,这三种类型的输入是用户名,电子邮件地址或电话号码。为了实现这一点,将需要写三个不同的场景,其中每个场景将随输入类型而变化,登录成功。在这种情况下,情况将如下所示。
Scenario: Given user navigates to Facebook When I enter correct username and password Then login should be successful Scenario: Given user navigates to Facebook When I enter correct email address and password Then login should be successful Scenario: Given user navigates to Facebook When I enter correct phone number and password Then login should be successful
在这里,如果仔细看,对于上述三种情况:语句是相同的,只有输入参数(用户名/电子邮件地址/电话号码)正在改变。这就是Scenario Outline的重要性。当用Scenario Outline定义任何场景时,可以指定一个测试场景,在它的底部,提供一些输入。场景将执行与提供的输入数一样多的次数。
4.2 Scenario Outline操作实例
继续使用之前创建好的Cucumber环境。
Step_1:在/src/test/java路径下创建一个outline包。
Step_2:创建feature文件:outline.feature。创建步骤,右击outline包,选择New file,输入文件名:outline.feature。
Step_3: 打开outline.feature文件,输入如下信息:
Feature: Scenario Outline Scenario Outline: Login functionality for a social networking site. Given user navigates to CSDN When I enter Username as "<username>" and Password as "<password>" Then login should be unsuccessful Examples: |username |password | |username1 |password1 | |username2 |password2 |
注意:Examples注释描述了在场景执行时提供的输入范围。将为所提供的每个输入执行测试场景。因此,在给定的Examples中,测试场景将执行三次。
Step_4:创建step定义文件:outline.java。创建步骤,右击outline包,选择New file,输入文件名:outline.java。
Step_5: 打开outline.java文件,输入如下信息:
package outline; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.annotation.en.Given; import cucumber.annotation.en.Then; import cucumber.annotation.en.When; public class outline { WebDriver driver = null;@Given("^user navigates to CSDN$") public void goToFacebook() { driver = new ChromeDriver(); driver.navigate().to("https://passport.csdn.net/account/login?ref=toolbar"); } @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("username")).sendKeys(arg1); driver.findElement(By.id("password")).sendKeys(arg2); driver.findElement(By.className("logging")).click(); } @Then("^login should be unsuccessful$") public void validateRelogin() { if(driver.getCurrentUrl().equalsIgnoreCase("http://my.csdn.net/my/mycsdn")){ System.out.println("Test Pass"); } else { System.out.println("Test Failed"); } driver.close();} }
注意:在上面的代码中,必须定义一个具有两个输入参数的函数:一个用户名和另一个用于密码。因此,对于Examples标记中提供的每组输入,将执行GIVEN,WHEN和THEN的设置。
Step_6:创建runner类文件:runTest.java。创建步骤,右击outline包,选择New file,输入文件名:runTest.java。
Step_7: 打开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 {}
Step_8:运行test的选项:进入左侧包浏览,选择runTest.java,右击选择“Run as”,在弹出框选择“JUnit test”。运行结果如下:
运行此类文件时,将观察以下事项:
1.Csdn在一个新的Chrome Web浏览器实例中打开。
2.username1与password1将作为用户名与密码的输入传递。
3. 将单击登录。
4. 在登录失败时,浏览器上将显示信息。
5. 在控制台中,您将看到打印的“测试通过”。
6. 步骤结果1.至5.将重新执行用户名为“”和密码为“”。
简而言之,当场景不更改,但只有数据值更改时,建议使用场景大纲数据表。
- 第4章Scenario Outline操作实例
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
- outline
- outline
- outline
- outline
- outline
- outline
- ccah-500 第46题 Which scenario will go undetected
- 第6章创建函数-----------(select命令操作实例)
- 第3章Cucumber场景与附注实例---------------Cucumber简单操作实例
- Business Scenario
- Sharding Scenario
- 第3章 shell结构化命令------------( 双圆括号命令及操作实例)
- 第3章 shell结构化命令------------( 双方括号命令及操作实例、case命令)
- 第4章 网络设备操作基础
- 第4章 jQuery之dom操作
- PHP进阶 第4章 字符串操作
- Objective - C 进行代码混淆
- Java设计模式----命令模式(command)
- android用户空间的启动过程
- eclipes的SVN插件的配置问题
- 学习笔记一、Python pip包安装
- 第4章Scenario Outline操作实例
- linux mysql安装
- magento中header设置问题
- HTTP请求java组装
- hammer.js学习
- oracle名词解释
- Testin云测&云层天咨众测学院开课了!
- 序列化Serializable
- 常用的SCH和PCB设计软件导出DXF图