- Behave教程
- Behave - 主页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 功能测试设置
- Behave - 小Cucumber关键词
- Behave - 功能文件
- Behave - 步骤实施
- Behave - 第一步
- Behave - 支持的语言
- Behave - 步骤参数
- Behave - 场景大纲
- Behave - 多行文本
- Behave - 设置表
- Behave - 一步一步
- Behave - 背景
- Behave - 数据类型
- Behave - 标签
- Behave - 枚举
- Behave - 步骤匹配器
- Behave - 正则表达式
- Behave - 可选部分
- Behave - 多种方法
- Behave - 阶跃函数
- Behave - 步骤参数
- Behave - 运行脚本
- Behave - 排除测试
- Behave - 重试机制
- Behave - 报告
- Behave - 钩子
- Behave - 调试
- Behave有用的资源
- Behave - 快速指南
- Behave - 有用的资源
- Behave - 讨论
Behave - 正则表达式
让我们对正则表达式的语法有一个整体的了解 -
点 (.) - 相当于任何字符。
插入符 (^) - 相当于字符串的开头。(^…)
美元符号 ($) - 相当于字符串结尾。(…$)
| − 表达式 x| y,匹配 x 或 y。
\ - 转义字符。
\. − 匹配点。(.)
\\ - 匹配反斜杠。(\)
[...] - 声明一组字符。([A-Z-z])
\d - 匹配数字。([0-9])
\D - 匹配非数字。
\s - 匹配空白字符。
\S - 匹配非空白字符。
\w - 匹配字母数字。
\W - 匹配非字母数字。
(…) - 对正则表达式的模式进行分组。
\number - 按索引匹配前一组的文本。(\1)
(? P<name>…) - 匹配模式并将其存储在名称参数中。
(?P=name) - 匹配与前一个组名称匹配的所有文本。
(?:...) - 匹配模式,但无法捕获文本。
(?#...) - 评论(不考虑)。叙述图案的细节。
如果一个字符、字符集或组需要重复多次,则必须提供正则表达式模式的基数。
?:基数为 0...1 的模式:非强制(问号)
- :基数为 0 或以上的模式,0..(星号)
+ - :基数为 1 或以上的模式,1..(加)
{n}:匹配 n 次重复的模式。
{a ,b}:匹配从 a 到 b 的模式重复。
[A-Za-z]+ :匹配多个字母字符。
功能文件中可能有一些步骤具有几乎相似的短语。Behave具有解析能力。use_step_parser方法用于此目的,我们必须将解析器类型作为参数传递给该方法。
对于正则表达式匹配器,我们必须传递参数 re。参数 (?P<name>...) 用于从步骤定义中获取参数。
特征文件(几乎类似的步骤)
类似步骤的功能文件如下 -
Feature − Payment Process Scenario − Check Debit transactions Given user is on "debit" screen Scenario − Check Credit transactions Given user is on "credit" screen
对应步骤实施文件
步骤实现文件如下 -
from behave import * #define parser type use_step_matcher("re") #regular expression parsing @given('user is on "(?P<payment>.*)" screen') def step_impl(context, payment): print("Screen type: ") print(payment)
输出
运行特征文件后得到的输出如下。在这里,我们使用了命令beeve --no-capture -f plain。
输出显示借方和贷方。这两个值已通过特征文件中几乎相似的步骤传递。在步骤实现中,我们用正则表达式解析了这两个步骤。