英文原文地址: 点击这里
翻译:amoschen
时间:2017/08/28
翻译基于原文0.9.1版本,有任何异议以及错误请指正。


Gauge是用于编写和运行验收测试的免费开源框架。 Gauge使其独特的一些关键功能包括:

  • 基于Markdown的简单,灵活和丰富的语法
  • 为编写测试代码提供一致的跨平台/语言支持
  • 带有插件支持的模块化架构
  • 可通过插件扩展和破解
  • 支持数据驱动的执行和外部数据源
  • 帮助您创建可维护的测试套件
  • 对VS Code的集成支持

Specification

译者注:Specification如果实在要翻译这个词,可以翻译成说明书,因为Gauge最最美好的愿景是:面向开发/测试/产品人员。

Gauge Specification 是通过markdown语法编写,比如:

1
2
3
4
# 浏览网页

## 查找好吃的地方
* 打开google主页地址

在上述markdown文件中:

  • # 浏览网页 作为Specification文件的标题
  • ## 查找好吃的地方 作为一个scenario(场景)
  • * 打开google主页地址 则作为一个步骤

Implementation 实现

可以通过对应的开发语言来实现对应的步骤:

1
2
3
step("打开google主页地址", () => {
goto("google.com")
});

gauge runner 执行器读取并运行 Specification 中每个场景的步骤及其实现,并生成通过或失败场景的报告。

1
2
3
4
5
6
# Search the Internet
## Look for something ✔

Successfully generated html-report to => reports/html-report/index.html
Specifications: 1 executed 1 passed 0 failed 0 skipped
Scenarios: 1 executed 1 passed 0 failed 0 skipped

重复使用的步骤

Gauge可帮助您专注于测试应用程序的流程。通过使步骤尽可能可重复使用来实现此目的。使用Gauge,您无需使用编程语言来构建自定义框架。

比如,可以通过在步骤里使用引号,传递参数给底层语言实现方法。

1
2
3
4
5
# 浏览网页

## 查找好吃的地方
* 打开google主页地址
* 搜索 "美食店"

实现步骤可以这么写:

1
2
3
4
step("搜索 <query>", (query) => {
write(query);
press("Enter");
});

然后,您可以在具有不同参数的场景内或场景间重复使用此步骤。

1
2
3
4
5
6
7
8
9
# 浏览网页

## 查找好吃的地方
* 打开google主页地址
* 搜索 "美食店"

## 查找好玩的地方
* 打开google主页地址
* 搜索 "休闲玩乐"

又或者可以将你的多个步骤组合成concept,放置在.cpt文件中:

1
2
3
## 查找 <query>
* 打开google主页地址
* 搜索 <query>

然后,其他步骤便可以使用刚才定义好的concept:

1
2
3
4
5
6
7
# 浏览网页

## 查找好吃的地方
* 查找 "美食店"

## 查找好玩的地方
* 查找 "休闲玩乐"

数据驱动

Gauge还支持使用Markdown表以及外部csv文件的数据驱动测试

1
2
3
4
5
6
7
8
9
10
# 浏览网页

|query |
|---------|
|美食店 |
|休闲玩乐 |
|电影院 |

## 查找好吃的地方
* 查找 <query>

该场景会将表中的所有参数带入步骤中,逐行执行。

在上面的示例中,我们重构了specification,使其简洁,灵活,而无需更改实现。