当前位置: 首页 > 工具软件 > Gauge > 使用案例 >

gauge对应的JAVA类型_Java_Gauge(1)

闻人嘉悦
2023-12-01

* [https://github.com/getgauge/gauge/releases/tag/v0.9.7](https://github.com/getgauge/gauge/releases/tag/v0.9.7)

* 下载各种系统的gauge版本

* IDEA2017.3.4-Gauge plugins0.3.10-JDK1.8-SDK

* Gauge的基本思想就是通过.spec [或.md](http://或.md) 文件,使用MarkDown语法去规定执行的动作,然后由Java或者其他语言的文件去按照所写的.spec [或者.md](http://或者.md) 文件的顺序去执行Java文件。

* 1、安装

* 进入官网[https://gauge.org/get-started.html](https://gauge.org/get-started.html),选择windows/linux/Mac版本,32/64系统进行下载

* 下载OK后,进行安装,选择插件(报告形式HTML/XML等),还有语言(Java/C等)

* 若安装Java插件失败,则可以使用命令下载 # gauge install java 或 gauge install

* C:\Users\tester>gauge install java

* Failed to install plugin 'java'.

* Reason: Failed to download the plugin. Get https://github-production-release-ass

* et-2e65be.s3.amazonaws.com/25460645/80b33448-f61f-11e7-8acd-e57b7d69344b?X-Amz-A

* lgorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180227%2Fus-

* east-1%2Fs3%2Faws4_request&X-Amz-Date=20180227T022757Z&X-Amz-Expires=300&X-Amz-S

* ignature=9534aa85bc2dbfd3a3e98eb7dbb0cb7fe8c68089cb6541e2ca5ee3f5b7efd6cd&X-Amz-

* SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filen

* ame%3Dgauge-java-0.6.6-windows.x86.zip&response-content-type=application%2Foctet

* -stream: dial tcp 52.216.64.192:443: connectex: A connection attempt failed beca

* use the connected party did not properly respond after a period of time, or esta

* blished connection failed because connected host has failed to respond.

* C:\Users\tester>gauge install java # 有时候一次就成功了,有时候很多次都不成功,提示如上报错。所以,若安装java/html-report插件时不成功,可以多试几次。

* .......................

* Successfully installed plugin 'java'.

* C:\Users\tester>gauge install

* Compatible version of plugin html-report not found. Installing plugin html-repor

* t...

* .......................

* Successfully installed plugin 'html-report'.

* 问题

* cmd下安装gauge install java / html-report / spectacle 等,一直报错,但是换到IDEA中运行gauge install java ,就成功了

* F:\git\GaugeProject>gauge install spectacle

* .....

* Failed to install plugin 'spectacle'.

* Reason: Failed to download the plugin. local error: tls: bad record MAC

* F:\git\GaugeProject>gauge install spectacle

* ......................

* Successfully installed plugin 'spectacle'.

* Plugin spectacle was successfully added to the project

* 查看Gauge版本 # gauge version 或 gauge -v

* C:\Users\tester\GaugeProject>gauge -v

* Gauge version: 0.9.7

* Commit Hash: bc9784c

* Plugins

* -------

* html-report (4.0.3)

* java (0.6.6)

* screenshot (0.0.1)

* spectacle (0.1.2)

* 初始化插件

* C:\Users\tester>gauge init java

* Downloading java.zip

* ...

* Copying Gauge template java to current directory ...

* Successfully initialized the project. Run specifications with "gauge run specs/"

* 运行用例

* C:\Users\tester>gauge run specs

* Installing required plugins.

* ..................

* # Specification Heading

* ## Vowel counts in single word P P

* ## Vowel counts in multiple word P P

* Successfully generated html-report to => C:\Users\tester\reports\html-report\ind

* ex.html

* Specifications: 1 executed 1 passed 0 failed 0 skipped

* Scenarios: 2 executed 2 passed 0 failed 0 skipped

* Total time taken: 358ms

* cmd下,路径 C:\Users\tester运行gauge install java , gauge run specs等,所有的文件都存放在C:\Users\tester路径下。

* 2、在IDEA中安装Gauge插件

* 2.1 Default Settings - Plugins , 搜索 `gauge`, No plugins found. Search in repositories (点击),进入 `Browser Repositories`, 搜索`gauge`, 选择第一个,点击 "Install", 安装好之后,“Install”变成了“Restart IntelliJ IDEA", 重启即可。

* 有时候直接从IDEA中搜索插件的话,只搜索到了0.3.4老版本,安装不到最新的版本0.3.10,可以到IDEA 仓库下载得到,然后IDEA中现在从本地disk安装即可

* https://plugins.jetbrains.com/plugin/7535-gauge

* 袁阳辉: 下载最新版0.3.10

* 2.2 Idea中,New Project,选择gauge,新建gauge项目,就可以看到自动生成一个gauge demo,在IDEA中的Terminal中执行gauge install spectacle安装插件(或者IDEA中点击install spectacle直接安装),终端中运行gauge run specs(粗略) 或 gauge run --verbose specs (更详细)

* 3、专业术语

* 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

* 动态参数:使用形式

* check exists

* Table参数: 使用|id|name|形式

* |id|name|

* |--|--------|

* |1|tom|

* |2| mike|

* 特殊参数: 使用形式

* prefix: 参数类型 可以使file table等

* value: 参数值

* File:

* * Verify email text is

* * Check if is visible

* CSV:

* * Step that takes a table

* * Check if the following users exist

* 7.Comments

* 备注信息 : 任何没有标记的一行都是注释,备注

* This is 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](http://getgauge.io)"Title") inline link.

* [This link]([http://github.com/getgauge/gauge](http://github.com/getgauge/gauge)) has no title attribute.

* 4、执行项目

* 通过文件执行

* 执行specs文件夹下所有的spec文件

* C:\Users\tester\GaugeProject>gauge run specs # 或 gauge run specs/

* 执行specs文件夹下的example.spec文件

* C:\Users\tester\GaugeProject>gauge run specs/example.spec

* 执行多个文件夹下的所有文件

* gauge run specs-dir1/ specs-dir2/

* 执行多个文件夹下的指定文件

* gauge run specs-dir1/example.spec specs-dir2/example2.spec

* 执行一个特定的Scenario

* gauge specs/example.spec:16

* ## Vowel counts in single word (12-18行:所以随便输入12-18中任意一个数字,都是执行这第一个个scenario,输入12以前的数字,则没有scenario执行)

* ## Vowel counts in multiple word (19行-:所以随便输入19及之后的任意一个数字,都是执行这第二个scenario)

* 执行多个特定的Scenario

* C:\Users\tester\GaugeProject>gauge run --verbose specs/example.spec:12 specs/example.spec:23 (执行这2个scenario)

* 执行的过程中输出日志

* gauge run --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当做一个切面,在执行之前和执行之后做一些操作

* Gauge默认会在Scenario执行之后清除缓存,所以会在下个Scenario执行之前创建新的对象,该功能可以在配置中设置清除缓存的等级

* 1.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之前或者之后执行 @BeforeSpec @AfterSpec

* 3.Scenario hook

* * 作用于Scenario 在每个Scenario之前或者之后执行@BeforeScenario @AfterScenario

* 4.step hook

* * 作用于Scenario,在每个scenaior之前或者之后执行@BeforeStep @AfterStep

 类似资料: