gauge自动化框架踩坑(二):运行方式

1|0一. step、scenario、spec、suite


 

开始看gauge可能有点困惑,因为官网给的例子example.spec如下,看的是一脸懵逼

# Specification Heading This is an executable specification file. This file follows markdown syntax. Every heading in this file denotes a scenario. Every bulleted point denotes a step. To execute this specification, run gauge run specs * Vowels in English language are "aeiou". ## Vowel counts in single word tags: single word * The word "gauge" has "3" vowels. ## Vowel counts in multiple word This is the second scenario in this specification Here's a step that takes a table * Almost all words have vowels |Word |Vowel Count| |------|-----------| |Gauge |3 | |Mingle|2 | |Snap |1 | |GoCD |1 | |Rhythm|0 |

可以看到,上述markdown描述文件中都有哪些关键词:specifition、scenario、step、tag等等,用类比的方法比较好理解一点:

  • step: 一个场景中的每一步,比如登录场景,登录是一步,退出是一步。类似于类中的方法
  • scenario:场景,比如登录场景。类似于类
  • spe:一个场景的集合。类似于python中的模块,即py文件
  • suite:测试套件,可以裂解为多个模块的集合,即一个项目

2|0二. 运行方式


我们以官方给出的模板项目为例:

这是一个关于英语中元音的项目,首先看example.spec,在一开始有个Specifition Heading,用的是markdown中的<H1>标签进行描述的

# Specification Heading

当然你也可以用双下划线:

Specification Heading ==============

下面这句话是说,这是一个可执行的spec file(你可以类比成py文件)。这个文件遵循markdown语法。这个文件中每一个##都表示一个场景,每一个*都表示一个step。执行这个spec文件的方法是 gauge run specs(类似于cmd中运行python文件:python py文件)。这里需要注意gauge run specs,它运行的是整个specs目录,当该目录下有多个spec时,每一个spec文件都会得到执行

This is an executable specification file. This file follows markdown syntax. Every heading in this file denotes a scenario. Every bulleted point denotes a step. To execute this specification, run gauge run specs

关于运行方式,官网至少给出了四种运行方法:

  • 运行多个specs目录
  • 运行一个specs目录下所有的spec文件
  • 运行一个specs目录下指定的spec文件
  • 运行一个spec文件下指定的scenarios

可以看到,范围是越来越小。我们对这四种方式分别举四个例子:

第一种,运行多个specs目录

gauge run specs-dir1/ specs-dir2/ specs-dir3/

官网还给出一个说明,就是specs的路径可以通过设置环境变量来指定,这样会将默认的值变为自定义的值。默认值在env下面的default.properties中:

第二种,运行一个specs目录下所有的spec文件

gauge run specs

第三种,运行一个specs目录下指定的spec文件

gauge run specs/spec1.spec

如果要运行多个指定的spec文件,还可以这样:

gauge run specs/spec1.spec specs/spec2.spec specs/spec3.spec

第四种:运行一个spec文件下指定的scenarios

这里看官网可能有点懵,因为官网说了,你可以根据spec文件下的scenario中的行号,来指定单个的scenario,并且还给出了一个login_test.spec的例子,意思是在下面的spec文件中,使用 gauge run specs/login_test.spec:4 命令,可以执行一个Admin Login场景

但是我们看关于场景的定义:一个场景首先要有一个Heading,然后至少包含一个或多个step。当时就有点疑惑了,明明使用的是行号,行号对应的是step,为什么不说运行特定的step,而要说运行特定的场景呢?

但是细细看一下官网文档,会发现关于step的定义,还有很多值得琢磨的地方,step不是孤立的,它依附于一个场景或concepts,事实上,当你观察gauge的测试报告也能发现这一点,gauge基于BDD,它的最小的测试单元是场景,而非step。当多个step都隶属于同一个场景,那么当你从中拿出一个stpe来执行的时候,实际上执行的就是当前的场景。同样gauge run specs/login_test.spec:3或gauge run specs/login_test.spec:5是一样的效果

还可以运行多个不同文件中指定的场景

gauge run specs/helloworld.spec:3 specs/anotherhelloworld.spec:5

执行同一个spec文件中的不同场景

gauge run specs/spec1.spec:3 specs/spec1.spec:7

 

 
 
 

3|0参考文章


https://docs.gauge.org/latest/execution.html

https://blog.csdn.net/amoscn/article/details/80472143

 

 

 

 

__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/11107145.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(877)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-06-29 类和对象
2018-06-29 Pycharm如何打断点
2018-06-29 元素操作(二)
点击右上角即可分享
微信分享提示