Gauge----自动化测试工具
* Gauge是一个自动化测试工具,主要是通过.spec 文件指定执行的步骤,然后由Java代码去测试
安装:
* 安装插件 Gauge--install-all
*在IDEA中安装Gauge插件
基本思想
* Gauge
的基本思想就是通过.spec
或.md
文件,使用MarkDown
语法去规定执行的动作,然后由Java
或者其他语言的文件去按照所写的.spec
或者.md
文件的顺序去执行Java
文件,从而达到测试的目的
专业术语:
1 Specification
- 开始的标志,只能有一个,每个specification至少有一个scenaior
Specification name
================== 或者: # Specification name
2.Scenario
- 特定场景中的一个情节,一个或多个Scenario组成一个Specification,每个Scenario至少包含一个Step
Scenario name ---------------------- 或者 ##scenario name
3 Step
- specification中的一个可执行部分
- 一般的Step ----正常执行的step,包含在Scenario中
- Context step ----在Scenario执行之前执行的操作,在每个Scenario执行之前都会先执行Context Step
- tearDown Step ----在Scenario执行之后执行的操作,在每个Scenario执行之后都会执行 Teardown Step
* Login into my app
* Search for "gauge"
* Search for "gauge-java"
4.Tags
- 用于标记specification和Scenario
specification sp1 ========= Tags : spec,login Scenario ------------- Tags: scenario,main-page
5.cioncept
- 可重用的逻辑组成的单元,写在单独的文件中用于多次使用
6.Parameters
- 将参数传递给Java或其他文件
- 静态参数: 使用“param”形式
check "param" exists
- 动态参数:使用<param>形式
check <param> exists
- Table参数: 使用|id|name|形式
|id|name|
|--|--------|
|1|tom|
|2| mike|
- 特殊参数: 使用<prefix:value>形式
- prefix: 参数类型 可以使file table等
- value: 参数值
File: * Verify email text is <file:email.txt>
* Check if <file:/work/content.txt> is visible CSV:
* Step that takes a table <table:data.csv>
* Check if the following users exist <table : /Users/john/work/users.csv>
7.Comments
- 备注信息 : 任何没有标记的一行都是注释,备注
Thisis a comment
8.Image
![Alt text](/path/to/img.jpg) ![Alt text](/path/to/img.jpg "可选的标题")
9.Link
This is [an example](http://getgauge.io "Title") inline link. [This link](http://github.com/getgauge/gauge) has no title attribute.
执行项目
通过文件执行
- 执行
specs
文件夹下的specs.spec
文件
gauge specs
- 执行
specs
文件夹下的specs.spec
文件
gauge specs/specs.spec
- 执行多个文件夹下的所有文件
gauge specs-dir1/ specs-dir2/
- 执行多个文件夹下的指定文件
gauge specs-dir1/example.spec specs-dir2/example2.spec
- 执行一个特定的
Scenario
gauge specs/example.spec:16
数字代表该secnaior所在的行,从0开始
- 执行多个特定的
Scenario
gauge specs-dir1/example.spec:16 specs-dir2/example.spec:18
- 执行的过程中输出日志
gauge --verbose specs
通过Tags执行
如下列specification的Tags
Login specification
===================
Tags: login, admin, user login Successful login scenario
-------------------------
Tags: login-success, admin failed login scenario
-------------------------
Tags: login-failed, admin
- 通过单独的Tag执行
gauge --tag admin specs
带有admin 的所有的Specification
或Scenario
都会被执行
- 通过多个
Tag
执行
gauge --tag "login,admin" specs
只有同时有login
和admin
Tag的Specification
或者Scenario
才会被执行
- 执行含有空格的
Tag
gauge --tag "user login" specs
- Tag支持
与、或、非
运算
!TagA: 执行不含有TagA的Specification或Scenario
TagA & !TagB: 执行含有TagA但不含TagB的Specification或Scenario
(TagA & TagB) | TagC: 执行同时含有TagA和TagB或者含有TagC的Specification或Scenario
(TagA | TagB) & TagC: 执行同时含有TagA和TagC或者TagB和TagC的Specification或Scenario
Gauge中的钩子(Hook)
- 钩子可以理解为
Java
中的AOP(Aspect Oriented Programming)
,把Specification
或Scenario
当做一个切面,在执行之前和执行之后做一些操作
- suit hook
* 作用于所有的specification和scenaior
//在所有的Specification执行之前执行
@BeforeSuite
public void BeforeSuite() {
// Code for before suite
} //在所有的Specification执行之后执行
@AfterSuite
public void AfterSuite() {
// Code for after suite
}
2.specification hook
* 作用于specification,在摸个指定的specification之前或者之后执行
//在每一个Specification执行之前执行
@BeforeSpec
public void BeforeSpec() {
// Code for before spec
} //在每一个Specification执行之后执行
@AfterSpec
public void AfterSpec() {
// Code for after spec
}
3.Scenario hook
* 作用于Scenario 在每个Scenario之前或者之后执行
//在每一个Scenario 执行之前执行
@BeforeScenario
public void BeforeScenario() {
// Code for before scenario
} //在每一个Scenario 执行之后执行
@AfterScenario
public void AfterScenario() {
// Code for after scenario
}
4.step hook
* 作用于Scenario,在每个scenaior之前或者之后执行
//在每一个Step执行之前执行
@BeforeStep
public void BeforeStep() {
// Code for before step
} //在每一个Step执行之后执行
@AfterStep
public void AfterStep() {
// Code for after step
}
Gauge
默认会在Scenario
执行之后清除缓存,所以会在下个Scenario
执行之前创建新的对象,该功能可以在配置中设置清除缓存的等级
Gauge----自动化测试工具的更多相关文章
- 初识gauge自动化测试框架(二)
看到一些同学对该工具有点一兴趣,那么我将继续介绍Gauge自动化测试工具. Gauge本质上一个BDD(Behavior Driven Development)测试框架.所以,首先你要了解BDD的操作 ...
- 微软自动化测试工具palywright
前言 我们介绍许多e2e的自动化测试工具 一类是基于 Selenium 的测试框架: robot framework gauge SeleniumBase seldom(我自己维护的) 另一类是基于J ...
- 手机GUI自动化测试工具选择
(Graphical User Interface,简称 GUI,又称图形用户接口) 我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化.对于移动客户端GUI的自动化而言,需要保证选取的工 ...
- Android 手机自动化测试工具有哪几种?
1.Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出.实际上该工 ...
- 前端自动化测试工具doh学习总结(二)
一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动 ...
- 前端自动化测试工具doh学习总结(一)
前言 项目中需要用到前端自动化测试,自己被当作一个探针研究了下目前用的比较多的web自动化测试工具.一开始研究的是的selenium,但由于项目使用了大量的dijit控件,写起testCase来很费劲 ...
- 录制简单的自动化测试工具SlikMobile初体验
今天朋友推荐了款自动化测试工具SlikMobile,下载了个试用了下,感觉还是很容易入门和上手的,感觉和testin的工具差不多,跨平台,多语言支持,支持图片.文本和Native Class三种对象方 ...
- 自动化测试工具QTP和SilkTest横向PK(转)
转自:http://www.uml.org.cn/Test/201405212.asp?artid=1686 众所周知,自动化测试工具曾几何时三足鼎立,Mercury QTP/WinRunner系.I ...
- 常用自动化测试工具介绍(支持B/S、C/S)
一.功能测试工具1.QTP测试工具 全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0 QTP是qui ...
- 老李分享:android app自动化测试工具合集
老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...
随机推荐
- 坑人的toLocaleDateString和简单地跳坑方式
最近在做一个一个医学大数据的项目的时候,独立设计.构思.制作了完成了一个生命历程图的功能.既然设计到时间,那就免不了对Date对象进行一系列的操作,也就免不了对日期对象进行一系列的格式化.走的路多了, ...
- Luogu P1877 [HAOI2012]音量调节
题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少. ...
- 转 Caffe学习系列(3):视觉层(Vision Layers)及参数
所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数 本文只讲解视觉层(Vision La ...
- csrf
什么是CSRF: CSRF(Cross-site request forgery),中文名称:跨站请求伪造 攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发 ...
- caffe︱ImageData层、DummyData层作为原始数据导入的应用
Part1:caffe的ImageData层 ImageData是一个图像输入层,该层的好处是,直接输入原始图像信息就可以导入分析. 在案例中利用ImageData层进行数据转化,得到了一批数据. 但 ...
- Davinci DM6446开发攻略——linux-2.6.18移植
TI DAVINCI 使用最新的内核是montavista linux-2.6.18,之前说过,国内很多公司,包括开发板的软件包,一直在使用montavista linux-2.6.10,这个版本准 ...
- Flex读取txt文件中的内容(二)
Flex读取txt文件中的内容 自动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8" ...
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'L
1.错误描述 [ERROR:]2015-06-08 09:49:42,523 [异常拦截] org.hibernate.exception.DataException: error executing ...
- ubuntu14.04 64位 安装eclipse出错
1 错误描述 org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was a ...
- web开发性能优化---UI界面篇
1.尽量采用div+css布局 DIV+CSS相比较与表格布局的优势: a.代码精简 使用DIV+CSS布局,页面代码精简,这一点对XHTML有所了解的都知道.代码精简所带来的直接好处有两点:一是提高 ...