Cucumber 场景大纲 Scenario Outlines
引用链接:https://github.com/cucumber/cucumber/wiki/Scenario-Outlines
- script/cucumber --i18n zh-CN
- | feature | "功能" |
- | background | "背景" |
- | scenario | "场景" |
- | scenario_outline | "场景大纲" |
- | examples | "例子" |
- | given | "* ", "假如" |
- | when | "* ", "当" |
- | then | "* ", "那么" |
- | and | "* ", "而且" |
- | but | "* ", "但是" |
- | given (code) | "假如" |
- | when (code) | "当" |
- | then (code) | "那么" |
- | and (code) | "而且" |
- | but (code) | "但是" |
Copying and pasting scenarios to use different values quickly becomes tedious and repetitive:
Scenario: eat 5 out of 12
Given there are 12 cucumbers
When I eat 5 cucumbers
Then I should have 7 cucumbers Scenario: eat 5 out of 20
Given there are 20 cucumbers
When I eat 5 cucumbers
Then I should have 15 cucumbers
Scenario outlines allow us to more concisely express these examples through the use of a template with placeholders, using Scenario Outline
, Examples
with tables and < >
delimited parameters:
Scenario Outline: eating
Given there are <start> cucumbers
When I eat <eat> cucumbers
Then I should have <left> cucumbers Examples:
| start | eat | left |
| 12 | 5 | 7 |
| 20 | 5 | 15 |
The Scenario Outline steps provide a template which is never directly run. A Scenario Outline is run once for each row in the Examples
section beneath it (not counting the first row).
The way this works is via placeholders. Placeholders must be contained within < >
in the Scenario Outline's steps. For example:
Given <I'm a placeholder and I'm ok>
The placeholders indicate that when the Examples row is run they should be substituted with real values from the Examples
table. If a placeholder name is the same as a column title in the Examples
table then this is the value that will replace it.
You can also use placeholders in Multiline Step Arguments.
IMPORTANT: Your step definitions will never have to match a placeholder. They will need to match the values that will replace the placeholder
So when running the first row of our example:
Examples:
| start | eat | left |
| 12 | 5 | 7 |
The scenario that is actually run is:
Scenario: controlling order
Given there are 12 cucumbers # <start> replaced with 12
When I eat 5 cucumbers # <eat> replaced with 5
Then I should have 7 cucumbers # <left> replaced with 7 ---------------------------------------------------------------------------------------- 场景大纲:输入产品ID并验证
假如 打开首页
而且 输入<<ProdID>> #双尖括号
例子:产品ID #"产品ID"是自定义的
|ProdID|
|111111|
|222222|
|333333|
|444444|
Cucumber 场景大纲 Scenario Outlines的更多相关文章
- Cucumber capybara 每个Scenario登陆一次
hook.rb中添加: After do |scenario| Capybara.current_session.instance_variable_set(:@touched, false)end ...
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...
- 场景设计以及Manual Scenario和Goal-OrientedScenario的区别
Manual Scenario 手工场景 主要是设计用户变化,通过手工场景可以帮助我们分析系统的性能瓶颈.手动方案:如果要生成手动方案,请选择此方法.通过创建组并指定脚本.负载生成器和每组中包括的 V ...
- uiautomator+cucumber实现自动化测试
前提 由于公司业务要求,所以自动化测试要达到以下几点: 跨应用的测试 测试用例可读性强 测试报告可读性强 对失败的用例有截图保存并在报告中体现 基于以上几点,在对自动化测试框架选型的时候就选择了uia ...
- 行为驱动:Cucumber + Selenium + Java(一) - Cucumber简单操作实例
场景(Scenarios) 场景是Cucumber结构的核心之一.每个场景都以关键字“Scenario:”(或本地化一)开头,后面是可选的场景标题.每个Feature可以有一个或多个场景,每个场景由一 ...
- cucumber java从入门到精通(1)初体验
cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...
- uiautomator+cucumber实现移动app自动化测试
前提 由于公司业务要求,所以自动化测试要达到以下几点: 跨应用的测试 测试用例可读性强 测试报告可读性强 对失败的用例有截图保存并在报告中体现 基于以上几点,在对自动化测试框架选型的时候就选择了uia ...
- Cucumber常用关键字
常用关键字(中英文对应) 对应的测试用例 Feature(功能) test suite (测试用例集) background(背景) Scenario(场景) test case(测试用例) Sc ...
- cucumbe无法识别中文场景的问题
import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucu ...
随机推荐
- Jumony.Core非常厉害的一个开源项目!
简单的说,就是解析html文档的,以前发送一个get请求获取一个页面的html文本后,想要获取里面的数据都是使用正则表达式.(非常的苦逼), 现在用这个获取就very easy! 安装的话在Nu Ge ...
- SVN使用技巧和参考文档总结
以下文章为网上收集: myEclipse 8.5下SVN环境的搭建(重点推荐) SVN建立版本库,配置用户和权限 Tortoise SVN使用方法,简易图解 版本控制软件SVN使用方法详解 学习笔记 ...
- CSS 布局_如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?
实现一个浮动布局,红色容器中每一行的蓝色容器数量随着浏览器宽度的变化而变化,就如下图: 要实现这样一个布局,我们首先需要如下的 HTML: <div id="float-contain ...
- python变量、类型、运算、输出
1.变量.类型.运算.输出等 # -*- coding: utf-8 -*- a=2 b=3 c=a+b print u'结果是=%i'%c #加u显示中文 str=unicode(s,"u ...
- PAM认证
PAM认证 摘自: http://www.cnblogs.com/shenxm/p/8451889.html PAM(Pluggable Authentication Modules) Sun公司于1 ...
- IDEA拷贝git上的最新项目资源
File->new ->project version control->git-> 进入项目git对应的网址,选择第一个backstop,复制url: 输入git用户名和密码 ...
- Struts学习第一课 使用Filter作为控制器的MVC应用
MVC设计模式概览 实现MVC(Model,View,Controller)模式的应用程序由3大部分构成: -模型:封装应用程序的数据和业务逻辑(POJO,Plain Old Java Object) ...
- 高考是最后一次拼智商的事了。(beacuse 大多数人的努力程度之低根本轮不到拼天赋!)
高考是最后一次拼智商的事. —因为大多数人的努力程度之低 根本轮不到拼天赋 在这个不起眼的小公司实习也有两周了,周四经理说说为了增加IOS开发小组和安卓开发小组之间的交流,准备每周开一次这种报告会. ...
- 以后尽量不用cin、cout啦
cout输出有问题(对于double,不同OJ处理的结果不一样),cin读入机制较scanf繁琐.慢!!!!!!!!
- System.Threading.Thread的使用及传递参数等总结
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...