名词解释

  • 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/

自动化框架Quantum Automation Framework+cucumber+perfecto的更多相关文章

  1. 简单介绍下自动化框架:Robot Framework

    一.简介: Robot Framework:Robot Framework是由Python编写的一款功能丰富并且扩展性强的自动化测试框架,也可以在Java和 .NET 上运行. HttpRunner: ...

  2. Automation Framework Design 自动化框架设计思想

    从2007年到2017年,十年内自动化测试工具层出不穷,各种工具在运用一段时间之后,各个公司都会有测试架构师对于目前的自动化测试工具进行框架定制设计. 从惠普2007年GDCC推出的的WebDrivi ...

  3. 基于Python3.7 Robot Framework自动化框架搭建

    一.Robot Framework 和 Selenium 的区别(面试常问) 主流自动化测试框架有Robot Framework 和 Selenium,请根据实际场景选用不同的框架,以下总结各自优缺点 ...

  4. 实体框架(Entity Framework)简介

    实体框架(Entity Framework)简介 简称EF,与ADO.NET关系 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R ...

  5. 工作流和过程自动化框架 Camunda BPM

    Camunda BPM 是一个灵活的工作流和过程自动化框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中.Camunda B ...

  6. 1分钟入门接口自动化框架Karate

    介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gher ...

  7. Appium移动自动化框架

    引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...

  8. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  9. python自动化测试(3)- 自动化框架及工具

    python自动化测试(3) 自动化框架及工具 1   概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...

随机推荐

  1. whistle 前端工具之抓包利器

    一.业务场景 前端本地开发的场景中,我们需要频繁的改动代码,并需要实时看到效果,并且在一些开发场景中,我们需要将特定的请求代理到特定的IP.本地文件等,所以使用fiddler或whistle等本地.真 ...

  2. JQuery事件(2)

    jQuery 事件 下面是 jQuery 中事件方法的一些例子: Event 函数 绑定函数至 $(document).ready(function) 将函数绑定到文档的就绪事件(当文档完成加载时) ...

  3. linux图形界面安装

    1.问题现象 1.1 startx命令不可用 [root@linuxtest2 ~]# startx 1.3 init 5无法执行完成 [root@linuxtest2 ~]#init 5 2.问题原 ...

  4. Linux 的终端 Terminal

    打开终端: 方式一:在全部应用中搜索Terminal 方式二:Ctrl+Alt+T 快捷方式打开终端 终端指令查询 如果忘记终端指令而只记得前几位可以只输入前几个字母后按Tab键查询 终端清屏 键入c ...

  5. ubuntu下usb抓包方法步骤--usbmon

    开发或者调试USB设备相关的工具或者驱动,一个调试的利器就是usbmon抓包. 在ubuntu下使用步骤如下: 1 运行命令  sudo  mount -t debugfs none  /sys/ke ...

  6. supdf

    https://github.com/sumatrapdfreader/sumatrapdf/tree/master/src c++  java

  7. Spring NamespaceHandlerResolver xml的标签加载的扩展 和 ApplicationContext

    NamespaceHandlerResolver public NamespaceHandler resolver(String namespaceUri); DefaultNamespaceHand ...

  8. 使用Vue自定义组件时,报did you register the component correctly? For recursive components, make sure to provide the "name" option.(未注册组件)的原因之一

    错误信息: [Vue warn]: Unknown custom element: <list> - did you register the component correctly? F ...

  9. Java中遍历HashMap方式

    本教程将为你展示Java中HashMap的几种典型遍历方式. 如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历. 如果你想使用泛型,可以参考方法3.如果你使用旧版 ...

  10. python---wav音频

    import pyaudio #导入库 import wave #导入wav音频库 import sys from PyQt5.QtWidgets import QApplication, QWidg ...