自动化框架Quantum Automation Framework+cucumber+perfecto
名词解释
- Quantum: 一款基于JAVA的自动化框架,支持手机和桌面WEB的自动化测试。与cucumber和perfecto实现了整合,用于BDD自动化。
- Refer: http://projectquantum.io/
- cucumber: 一款BDD类型的自动化测试框架,使用ruby编写,支持JAVA和dot net等。
- gherkin: 一种简单的英语文本语言,支持多种语言,默认为en,可支持# language: zh-CN(Feature文件首行)。
- perfecto: 一款支持Web & Mobile App测试的测试平台,perfecto提供云端收费真机,也可通过appium控制本地真机。
- Easy environment setup
- Test creation
- Result analysis
- Refer: https://www.perfecto.io/和https://github.com/Project-Quantum/Quantum-Starter-Kit/wiki
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集成
- 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") - 在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的更多相关文章
- 简单介绍下自动化框架:Robot Framework
一.简介: Robot Framework:Robot Framework是由Python编写的一款功能丰富并且扩展性强的自动化测试框架,也可以在Java和 .NET 上运行. HttpRunner: ...
- Automation Framework Design 自动化框架设计思想
从2007年到2017年,十年内自动化测试工具层出不穷,各种工具在运用一段时间之后,各个公司都会有测试架构师对于目前的自动化测试工具进行框架定制设计. 从惠普2007年GDCC推出的的WebDrivi ...
- 基于Python3.7 Robot Framework自动化框架搭建
一.Robot Framework 和 Selenium 的区别(面试常问) 主流自动化测试框架有Robot Framework 和 Selenium,请根据实际场景选用不同的框架,以下总结各自优缺点 ...
- 实体框架(Entity Framework)简介
实体框架(Entity Framework)简介 简称EF,与ADO.NET关系 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R ...
- 工作流和过程自动化框架 Camunda BPM
Camunda BPM 是一个灵活的工作流和过程自动化框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中.Camunda B ...
- 1分钟入门接口自动化框架Karate
介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gher ...
- Appium移动自动化框架
引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- python自动化测试(3)- 自动化框架及工具
python自动化测试(3) 自动化框架及工具 1 概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...
随机推荐
- 关于gitlab+jenkins自动部署代码的实现
本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...
- 第十篇.5、python并发编程之协程
一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去 ...
- 构建docker基本镜像
1.准备: 创建一个目录oldboy-hello 2.编写Dockerfile 内容如下,只有三行 FROM scratch ADD hello / CMD ["/hello"] ...
- QString与QByteArray互相转换的方法
本文转载自http://blog.csdn.net/daa20/article/details/51674753 // QString转QByteArray方法 //Qt5.3.2 QString s ...
- C++ Concurrency In Action 一些重点
全部来自于gitbook C++并发编程(中文版) 需要对一个还未销毁的std::thread对象使用join()或detach().如果想要分离一个线程,可以在线程启动后,直接使用detach() ...
- 安装vim自动补全插件
1 安装VIM 2 安装vim插件管理工具.过程见链接.(谢谢) 3 在.vimrc中添加下列代码 Bundle 'Valloric/YouCompleteMe' 保存退出后打开vim,在正常模式下输 ...
- Python time、datetime、os、random、sys、hashlib、json、shutil、logging、paramiko、subprocess、ConfigParser、xml、shelve模块的使用
文章目录: 1. time & datetime模块 2. os模块 3. random模块 4. sys模块 5. hashlib模块 6. json模块 7. shutil模块 8. lo ...
- java读写大文件
java读写2G以上的大文件(推荐使用以下方法) static String sourceFilePath = "H:\\DataSource-ready\\question.json&qu ...
- UVA - 10829 L-Gap Substrings (后缀自动机+线段树启发式合并)
题意:统计一段字符串中形如UVU的子串个数(其中V的长度固定为g). 问题等价于求满足$g+1\leqslant |j-i|\leqslant g+LCP(i,j)$的后缀(i,j)的对数,即$\su ...
- HDU - 6253 Knightmare (打表+拉格朗日插值)
题目链接 题意:一个马在无限大的棋盘中跳,问跳n步能跳到多少个不同的格子. 首先写个打表程序打一下n比较小的时候的表: #include<bits/stdc++.h> using name ...