名词解释

  • Quantum: 一款基于JAVA的自动化框架,支持手机和桌面WEB的自动化测试。与cucumber和perfecto实现了整合,用于BDD自动化。
  • cucumber: 一款BDD类型的自动化测试框架,使用ruby编写,支持JAVA和dot net等。
  • gherkin: 一种简单的英语文本语言,支持多种语言,默认为en,可支持# language: zh-CN(Feature文件首行)。
  • perfecto: 一款支持Web & Mobile App测试的测试平台,perfecto提供云端收费真机,也可通过appium控制本地真机。

cucumber详情

组成

由三部分组成

  • Features: 语法来自gherkin
  • Step_definitions: Feature文件的步骤的实现,在IDEA中建议右键选择Create 'Scenario: XXX'... 生成
  • CucumberCommand: 运行cucumber的系统命令

pom依赖:

    <dependencies>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <scope>test</scope>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm</artifactId>
            <version>1.2.4</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.2.4</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <!--<version>2.9</version>-->
        </dependency>
    </dependencies>

和jenkins集成

  1. cucumber可以通过添加插件生成json或者html的报告。
    在@CucumberOptions的plugin里添加"html:target/cucumber"或者"json:target/cucumber.json"即可。
    @CucumberOptions(plugin = {"pretty","html:target/cucumber","json:target/cucumber.json"}, features = "classpath:cucumber/features")
  2. 在jenkins上安装cucumber-reports插件,然后设置Post-build Actions中的cucumber reports。

过滤

Examples上也可标注TAG,这样通过指定TAG即可选择不同的EXAMPLES来执行。

  • java cucumber.api.cli.Main --tag @first features
    • 只执行tag为@first的用例
  • java cucumber.api.cli.Main --tag @first,@second features
    • 只执行tag为@first或second的用例
  • java cucumber.api.cli.Main --tag @first --tags @second features
    • 只执行tag同时有@first并且@second的用例
  • java cucumber.api.cli.Main --tag ~@aaa --tags @bbb features
    • 只执行tag为@bbb但不为@aaa的用例,~表示取非
  • java cucumber.api.cli.Main src/main/resources/features/my.feature:5:10
    • 只执行my.feature文件中的第5行和第10行,后面可接多个:n
  • java cucumber.api.cli.Main --name ScenarioName features
    • 只执行名称为ScenarioName的Scenario或Scenario Outline.

结果报告

支持pretty(linux)、json、html和junit格式的报告
如果是通过MVN执行,推荐使用cucumber-reporting:https://github.com/damianszczepanik/cucumber-reporting

Refer

中文支持:

java cucumber.api.cli.Main --i18n zh-CN

https://www.ibm.com/developerworks/cn/java/j-lo-cucumber01/

posted on 2019-07-16 11:03  liehen2046  阅读(416)  评论(0编辑  收藏  举报