Gauge从入门到精通——[2]语法
为了让大家对gauge语法有更好的理解,我以一部大家都喜欢地电视《鹿鼎记》
为例。
梗概
gauge语法结构
gauge语法是基于markdown。
解释
- test suite:测试套件,可以理解为一个测试项目 。包含一个或者多个spec文件;
- spec:spec(.spec或者 .md)文件,一系列测试场景的集合,通常是指一个文件;
- scenario:测试场景(我更愿意叫它:用户故事),通常包含多个步骤;
- step:测试步骤,指明这一个步骤内容,告诉别人要做什么。通常和代码实现关联。
- tags: 标签,打上标签的spec或者scenario可以单独执行。
- concept:多个步骤组合而成,又可以做为一个步骤。
- parameters:参数,gauge的参数比较丰富,后面详说。
举例
# 鹿鼎记
tags: the.deer.and.the.cauldron
spec下的步骤
* 开始看电视
## 第一回
tags: episode_1
* 主角 "韦小宝" 降临
* 他乡遇故知 "陈近南" ,成为他的徒弟
## 第二回
tags: episode_2
* 主角 "韦小宝" 降临
* 联合 "乾隆" 打败 "鳌拜"
## 第三回
tags: episode_3
* 主角 "韦小宝" 降临
* 认识许多漂亮女孩
|girl |age|
|------|---|
|双儿 |17 |
|沐剑屏 |18 |
|苏荃 |25 |
|阿珂 |18 |
|建宁公主|20 |
|曾柔 |20 |
|方怡 |22 |
___
* 关机睡觉
specification
specification是一个 .spec或者.md文件的一级标题
,如
# 鹿鼎记
或者
鹿鼎记
==========
一个spec文件只允许有一个一级标题
scenarios
scenarios是spec文件内的二级标题,通常一个spec文件可以包含多个二级标题
,比如
## 第一回
或者
第二回
-----------
step
step是指测试步骤,他是以*格式开头。如
* 主角 "韦小宝" 降临
concept
concept可以聚合多个步骤组成一个步骤,以供spec使用,上面《鹿鼎记》的例子没有,我在下面补充上。
新建一个cpt文件
example.cpt,内容如下
# 喜欢 <girl>, 并和她结婚
* 遇到漂亮的 <girl>
* 追求到她,并同她结婚
spec文件如何使用concept呢?
我们在spec文件新建一个scenario,添加步骤
## 第四回
* 主角 "韦小宝" 降临
* 喜欢 "双儿", 并和她结婚
双儿
会作为参数,从.spec传递到.cpt。详细内容,我们在实战里细说。
tags
tags是指标签,可以这么理解,我想看电视《鹿鼎记》 那么给鹿鼎记加个标签,然后我可以只执行这个标签。如果我想看鹿鼎记的某一集,那么我可以只执行这一集的标签即可。
tags: the.deer.and.the.cauldron
tags: episode_1
parameters
简单参数
韦小宝
便是简单参数,在步骤里传递的
* 主角 "韦小宝" 降临
动态参数
请看上面concept这一节,< girl>表示动态参数
.cpt
# 喜欢 <girl>, 并和她结婚
* 遇到漂亮的 <girl>
* 追求到她,并同她结婚
.spec
## 第四回
* 主角 "韦小宝" 降临
* 喜欢 "双儿", 并和她结婚
表格参数
表格参数,很明显是指参数是以表格的形式列明,然后步骤里面可以逐个取出使用。
如:
* 认识许多漂亮女孩
|girl |age|
|------|---|
|双儿 |17 |
|沐剑屏 |18 |
|苏荃 |25 |
|阿珂 |18 |
|建宁公主|20 |
|曾柔 |20 |
|方怡 |22 |
文件参数
文件参数,在示例里面没有写出来,在此处单独做说明。
csv文件参数
csv文件可以代替spec里面的表格参数,看上去比较简洁,但不明了。因为参数全部在csv文件里
* 认识许多漂亮女孩
|girl |age|
|------|---|
|双儿 |17 |
|沐剑屏 |18 |
|苏荃 |25 |
|阿珂 |18 |
|建宁公主|20 |
|曾柔 |20 |
|方怡 |22 |
* 认识许多漂亮女孩 <table:girl.csv>
csv内容如下:
girl,age
双儿,17
沐剑屏,18
苏荃,25
阿珂,18
建宁公主,20
曾柔,20
方怡,22
上面的步骤作用完全一样
txt文件参数
txt文件的作用是代替静态参数的传入,gauge会自动将读取到的文件内容做为参数传给底层代码实现。
* 主角 "韦小宝" 降临
* 主角 <file:file.txt> 降临
file.txt的内容为
韦小宝
上面的两个步骤作用完全一样
tear down
tear down表面解释是拆除,可以理解为数据清理。若有tear down则每执行一个scenario都会在最后执行tear down
它是以三个或者更多的_
下划线组成,比如
___
* 关机睡觉
注释
无任何符号开头的句子便是注释,比如
这里是注释
posted on 2018-05-27 20:22 AmosChen 阅读(18) 评论(0) 编辑 收藏 举报 来源