看到一些同学对该工具有点一兴趣,那么我将继续介绍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. 不可思议的纯 CSS 实现鼠标跟随效果

    直接进入正题,鼠标跟随,顾名思义,就是元素会跟随着鼠标的移动而作出相应的运动.大概类似于这样: 通常而言,CSS 负责表现,JavaScript 负责行为.而鼠标跟随这种效果属于行为,要实现通常都需要 ...

  2. C#在window服务配置Log4Net.dll

    1.使用背景: C#window服务下添加一个日志记录程序集(Log4Net.dll) 2.添加和使用步骤如下: 一.下载并引入Log4Net.dll程序集到项目中 下载地址:http://loggi ...

  3. Pytorch系列教程

    介绍 不久前Pytorch发布了1.0版本,官网的doc页也更新了.这里说下官网的教程很实用,边学pytorch搭网络边学NLP-图像等领域的先进技术. 官网的教程都是英文的,本人就用这个系列博客做个 ...

  4. python的append insert extend pop del remove使用

    对于 python 数组的操作,有插入和删除,下面介绍各个函数的功能: 插入 插入的函数有 append.insert .extend append append(i) 是在数组的末尾插入一个元素 i ...

  5. [区块链] 带你进入Bitcoin开发 - 环境搭建

    学习完区块链枯燥乏味的.高深的.必备的基础知识后,终于可以走上开发之路了!真是迫不及待啦!之后博客更新主要放在区块链的开发上,相信这才是大多数同学更加感兴趣的地方!学习过程从最经典的区块链鼻祖-比特币 ...

  6. okhttputils【 Android 一个改善的okHttp封装库】使用(一)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文使用的OKHttp封装库是张鸿洋(鸿神)写的,因为在项目中一直使用这个库,所以对于一些常用的请求方式都验证过,所以特此整理下. ...

  7. DotNetCore跨平台~EFCore废弃了TransactionScope取而代之的Context.Database.BeginTransaction

    回到目录 TransactionScope是.net平台基于的分布式事务组件,它默认为本地事务,同时当系统有需要时可以自动提升为分布式事务,而对系统的前提是要开启MSDTC服务,必要时需要在数据库服务 ...

  8. SLAM+语音机器人DIY系列:(七)语音交互与自然语言处理——1.语音交互相关技术

    摘要 这一章将进入机器人语音交互的学习,让机器人能跟人进行语音对话交流.这是一件很酷的事情,本章将涉及到语音识别.语音合成.自然语言处理方面的知识.本章内容: 1.语音交互相关技术 2.机器人语音交互 ...

  9. SpringBoot基础系列-SpringCache使用

    原创文章,转载请标注出处:<SpringBoot基础系列-SpringCache使用> 一.概述 SpringCache本身是一个缓存体系的抽象实现,并没有具体的缓存能力,要使用Sprin ...

  10. asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦

    学习asp.net 已经有近三个月的时间了,在asp.net mvc上花的时间最多,但个人真是有些菜,不得不说,asp.net mvc的水真的还是蛮深的.目前在公司实习,也见过公司几个项目的代码了.对 ...