gauge自动化框架踩坑(二):运行方式
1|0一. step、scenario、spec、suite
开始看gauge可能有点困惑,因为官网给的例子example.spec如下,看的是一脸懵逼
可以看到,上述markdown描述文件中都有哪些关键词:specifition、scenario、step、tag等等,用类比的方法比较好理解一点:
- step: 一个场景中的每一步,比如登录场景,登录是一步,退出是一步。类似于类中的方法
- scenario:场景,比如登录场景。类似于类
- spe:一个场景的集合。类似于python中的模块,即py文件
- suite:测试套件,可以裂解为多个模块的集合,即一个项目
2|0二. 运行方式
我们以官方给出的模板项目为例:
这是一个关于英语中元音的项目,首先看example.spec,在一开始有个Specifition Heading,用的是markdown中的<H1>标签进行描述的
当然你也可以用双下划线:
下面这句话是说,这是一个可执行的spec file(你可以类比成py文件)。这个文件遵循markdown语法。这个文件中每一个##都表示一个场景,每一个*都表示一个step。执行这个spec文件的方法是 gauge run specs(类似于cmd中运行python文件:python py文件)。这里需要注意gauge run specs,它运行的是整个specs目录,当该目录下有多个spec时,每一个spec文件都会得到执行
关于运行方式,官网至少给出了四种运行方法:
- 运行多个specs目录
- 运行一个specs目录下所有的spec文件
- 运行一个specs目录下指定的spec文件
- 运行一个spec文件下指定的scenarios
可以看到,范围是越来越小。我们对这四种方式分别举四个例子:
第一种,运行多个specs目录
官网还给出一个说明,就是specs的路径可以通过设置环境变量来指定,这样会将默认的值变为自定义的值。默认值在env下面的default.properties中:
第二种,运行一个specs目录下所有的spec文件
第三种,运行一个specs目录下指定的spec文件
如果要运行多个指定的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是一样的效果
还可以运行多个不同文件中指定的场景
执行同一个spec文件中的不同场景
3|0参考文章
https://docs.gauge.org/latest/execution.html
https://blog.csdn.net/amoscn/article/details/80472143
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/11107145.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 元素操作(二)