美文网首页
Java_Gauge(1)

Java_Gauge(1)

作者: 嫩牛_软件测试_笔记 | 来源:发表于2018-09-27 14:40 被阅读0次

在IDEA中配置Gauge环境

*   [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
            *   动态参数:使用<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
        *   备注信息 : 任何没有标记的一行都是注释,备注
            *   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<br> //在所有的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

相关文章

  • Java_Gauge(1)

    在IDEA中配置Gauge环境

  • 1▪1▪1▪1▪1

    今天是国际劳动节,出门看人头,上路遇堵车,处处挤破头,急哭也停不下车。 不如歇了吧 ...

  • 1+1+1…+1=1

    对“一”的理解: 赠人玫瑰,不仅仅是手留余香。 利益他人,实际上也疗愈了自己。 利他、利己,如此往复循环, 最终利...

  • (-1)×(-1)= 1

    数学家经过很长一段时间才认识到(-1)×(-1)= 1是不能被证明的(即使大数学家欧拉曾给出不能令人信服的...

  • 1-2-1-1-1

    【下马请罪】 子龙下马,向张飞跪地请罪道:“张将军,一时失手……”话未停,便被张飞一矛刺了个透心凉。子龙堵着胸口汩...

  • 1 1:1 1(原创小说)

    闪回:那天她…… 当时,我确实听到了那个声音,可如今却怎么也记不清了。 掉下来了。 我觉得,那一刻...

  • 《1+1=1-1》

    十一月十一日晚,致X小姐。 十月初九, 一个人购物的孤独, 你谈起, 月光下轧过的马路, 金钱带不来满足, 忙忙碌...

  • 1+1=-1

    结婚育子这几年,在磕磕碰碰中一路走来,才恍然大悟,自己真正的成长,始于育儿。 婚前是父母的公主,虽说家境贫困,却得...

  • 1+1<1

    也许有人看到我的标题就会来质疑我,说我怎么连最简单的数学都不会。1+1=2>1啊,这么简单的算数题,我怎会不知?但...

  • 1+1=-1

    看到他人发表文章,我也有点手痒痒了~这是接着上回文章的下半部分,有点长,没人看到就好了︿︿ 这个第二件小事的主题就...

网友评论

      本文标题:Java_Gauge(1)

      本文链接:https://www.haomeiwen.com/subject/wzyeoftx.html