看到一些同学对该工具有点一兴趣,那么我将继续介绍Gauge自动化测试工具。

Gauge本质上一个BDD(Behavior Driven Development)测试框架。所以,首先你要了解BDD的操作方式。

BDD包含两部分,一部分是: 软件行为描述。另一部分是: 针对描述编写测试代码

首先,行为描述文件描述如下。

# 计算器

我想实现一个简单的计算器,这个计算器可以做两个数的加、减、乘、除运算。

## 测试加法

* 创建Calculator类。
* 相使用add方法,计算3 加5 的结果为8。

创建一个行为文件specs/calculator.spec,将上面的内容翻译一下:

# Calculator

I'm implementing a simple calculator that can add,
subtract, multiply, and divide two numbers. ## Test addition * Create a Class Calculator. * Using Add method, digital "3" plus "5" result is "8".

唯一和其它BDD框架不同之处在于,Guage的行为描述文件是由markdown话法编写。

比如Python的BDD框架behave是由一些关键字组成(Feature、Scenario、Given、When、Then等)。

# -- FILE: features/example.feature
Feature: Showing off behave Scenario: Run a simple test
Given we have behave installed
When we implement 5 tests
Then behave will test them for us!

好了,我上面用markdown写的行为文件我想你是可以看懂的,如果实在不懂markdown语法的话。也许这个在线工具可以帮你快速学习:

http://mahua.jser.me/

再接下来,针对行为文件来写代码实现。创建 setp_impl/calculator.py 文件。

from getgauge.python import step

@step("Create a Class Calculator.")
def create_Calculator():
calc = Calculator() @step("Using Add method, digital <a> plus <b> result is <c>.")
def test_add(a, b, c):
calc = Calculator()
result = calc.add(a, b)
assert result == int(c) class Calculator(): def add(self, x, y):
return int(x) + int(y)

在实现测试代码文件中,通过 @step() 装饰器引用行为描述文件中的步骤,并将其中用到的数据通过 <变量> 替换,将变量用到测试步骤中。

严格来说,Calculator() 类的实现应该单独文件中实现,这里只是为了省事儿。

在项目根目录下运行 gauge run specs命令。

查看测试报告。

如果我想增加测试用例呢? 很简单,只需要增加行为描述即可。

……

## Test addition big number

* Create a Class Calculator.

* Using Add method, digital "301" plus "578" result is "879".

那么问题来了,gauge到底可以用来做什么类型的测试,这里有一些例子供你参考。

https://getgauge-examples.github.io/

初识gauge自动化测试框架(二)的更多相关文章

  1. 初识gauge自动化测试框架

    segmentfault阅读 官方网站:https://docs.gauge.org/latest/index.html 介绍: Gauge是一个轻量级的跨平台测试自动化工具,可以使用不同的语言中编写 ...

  2. 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

    在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...

  3. 初识 iOS 自动化测试框架 WebDriverAgent

    微信跳一跳最近很火,外挂代练什么的也越来越多.作为一只程序猿,对外挂的原理产生了强烈的好奇心,于是埋头研究了一阶段,注意到了 WebDriverAgent 这套 Facebook 出品的自动化测试框架 ...

  4. gauge自动化测试框架(二)

    Gauge通过Markdown来描述行为,所以我还需先学习学习Markdown语法,看了一下,还好,十来分钟应该就可以搞定.具体学习见另一篇文章

  5. selenium3 web自动化测试框架 二:页面基础操作、元素定位方法封装、页面操作方法封装

    学习目的: 掌握自动化框架中需要的一些基础web操作 正式步骤: 使用title_contains检查页面是否正确 # -*- coding:utf-8 -*- import time from se ...

  6. Gauge自动化测试框架的安装和入门

  7. python自动化测试框架

    一.环境准备 1.python开发环境, python3.7 2.setuptools基础工具包 3.pip安装包管理工具 4.selenium自动化测试工具  chrom驱动下载地址: http:/ ...

  8. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  9. ApiTesting全链路接口自动化测试框架 - 新增数据库校验(二)

    在这之前我完成了对于接口上的自动化测试:ApiTesting全链路接口自动化测试框架 - 初版(一) 但是对于很多公司而言,数据库的数据校验也尤为重要,另外也有小伙伴给我反馈希望支持. 所以最近几天我 ...

随机推荐

  1. 中文分词实战——基于jieba动态加载字典和调整词频的电子病历分词

    分词是自然语言处理中最基本的一个任务,这篇小文章不介绍相关的理论,而是介绍一个电子病历分词的小实践. 开源的分词工具中,我用过的有jieba.hnlp和stanfordnlp,感觉jieba无论安装和 ...

  2. 【重学计算机】计组D2章:数据表示

    1.基本概念 真值:+0101,-0100:机器数: [x]原=0101 2.几种机器数 原码:x = -0101,[x]原 = 1101 反码:x = -0101,[x]反 = 1010 补码:x ...

  3. 广告等第三方应用嵌入到web页面方案 之 使用iframe嵌入

    有些项目中可能会遇到这样的需求, 需要在一个项目中嵌入其他的项目的页面或者功能.并且需要这两个页面之间能够进行交互. 本文主要介绍如何实现这种第三方应用的嵌入, 主要有以下几个方向: 1.iframe ...

  4. .NET Core微服务之基于Exceptionless实现分布式日志记录

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Exceptionless极简介绍 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,AS ...

  5. ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据图片名称获取项目的res/drawable-xxdhpi中相应资源的ID值以及bitmap值的封装类. 效果图 代码分析 根据图 ...

  6. 『集群』001 Slithice 服务器集群 概述

    Slithice 服务器集群 概述 Slithice是做什么的 Slithice 是一个 跨平台 的 分布式架构 框架: 旨在简化 分布式开发 的开发难度,节省 开发成本 和 后期维护成本: 并提供 ...

  7. 如何在linux下使用git管理上传代码&误删文件修复

    首先需要安装git,sudo apt-get install git,这时就可以下载代码了. 然后先在gituhub上新建一个仓库,然后先在本地建一个git目录,git init 然后再配置用户名和邮 ...

  8. Python 里的「单分派泛函数」到底是什么?

    泛型,如果你学过Java ,应该对它不陌生吧.但你可能不知道在 Python 中(3.4+ ),也可以实现简单的泛型函数. 在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式 ...

  9. stream,file,filestream,memorystream简单的整理

    一.Stream 什么是stream?(https://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html#no8) 定义:提供字节序 ...

  10. C#的dapper使用

    Dapper是一款轻量级ORM工具(Github).如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省 ...