cript来编写步骤层
3、Features介绍
feature(功能),每一个feature文件都要
开始于Feature(功能),Feature之后的描述可以随便写,知道出现Scenario(场景),一个feature中可以有多个
Scenario,每个Scenario包含(step)步骤列表,步骤使用Given、When、Then、But、And这些关键
词,cucumber对这些关键词的处理是一样的,但是我们在使用的时候需要按照场景区分。
4、Step denfinitions介绍
Cucumber中定义的每一个step(步骤)都需要有一个step definition对应,默认的话是使用Ruby来编写定义的脚本(现在有cucumber-js等也支持javascript、java等来编写),支持通过正则表达式从step中传递参数。Step definition的详细说明可以参考
5、Given When then(假如 当 那么)
Cucumber的步骤中会包含Given、When、then这些词组,cucumber本身在技术实现上不区分这三个词组,但是在使用上推荐按照词组的意思来使用。
Given-用例开始执行前的一个前置条件,类似与编写代码setup中的一些步骤
When-用例开始执行的一些关键操作步骤,类似点击元素等
Then-观察结果,就是平时用例中的验证步骤
And-一个步骤中如果存在多个Given操作,后面的Given可以用And替代
But-一个步骤中如果存在多个Then操作,第二个开始后面的Then可以用But替代
6、 Cucumber使用
6、cucumber使用
查看cucumber支持的语言 cucumber --i18n help
查看支持语言的关键字 cucumber –i18n zh-CN
创建Demo
1、
新建一个demo文件件
2、
demo文件夹下新建features文件夹
3、
features文件夹下新建”中文.feature”文件,后缀必须是.fearure结尾
中文的话最前面必须增加# language: zh-CN
# language: zh-CN
功能:第一个中文程序
中文实现
场景:中文实现场景
假如当前是中文
当输入是测试
那么能看到中文测试
4、 新建step_denfinitions文件夹
5、step_denfinitions中新建step_steps.rb文件编写步骤定义(这里默认使用Ruby编写)
Given /^当前是(.*)/ do |action|
@action= action
end
When /^输入是(.*)/ do |subject| @subject = subject
end
Then /^能看到(.*)/ do |greeting|
if greeting != "#{@action}#{@subject}" raise "期望看到,实际看到"
end
end
6、 执行编写的脚本,在features文件夹的同一目录下运行cucumber命令,则会自动查找features额文件夹下的所有.features结尾的文件进行执行
7、如果按照tag执行,可以使用cucumber –tags @P0 则只执行P0优先级的用例
7、Cucumber-tags功能
8、Cucumber-Hooks功能
9、Cucumber-Custom Formatters功能
10、Cucumber-Profiles功能
11、Running Features
运行编写好的Feartures,详细见:
12、持续集成结合
cucumber支持运行时生成junit格式的xml结果文件,用于在Jenkins中自动来解析xml文件生成结果内容
cucumber –f junit –out “junit”
通过上面的命令可以执行所有的feature,每一个feature文件都会生成一个xml的结果文件,可以用于在和持续集成整合。
13、Cucumber-jvm
cucumber默认是使用Ruby来编写step_denfinitions中的步骤,但是一些测试工具是使用java或者javascript来编写的,比如selenium使用java,不要害怕,cucumber提供了很多不同语言的扩展,也支持java、javascript等。
Cucumber-jvm详细信息见:
https://github.com/cucumber/cucumber-jvm
使用流程:
1、 下载cucumber-jvm相关jar包
下载地址:https://oss.sonatype.org/content/repositories/releases/
cucumber-core.jar 核心包
cucumber-java.jar通过java编写需要下载这个包
cucumber-html.jar生成结果为html文件需要下载这个包
cucumber-junit.jar生成结果为junit格式需要这个包
junit.jar java代码中使用junit
jchronic.jar
2、eclipse中新建一个一般的java工程,引入下载的jar包
3、新建基于java的step_denfinitions文件,这里只需新建一般的java文件即可
下面是一个demo的例子
package com.netease.cucumber.java;
import junit.framework.Assert;
import cucumber.api.java.zh_cn.*;;
public class ChineseDemo {
private String action;
private String subject;
@假如("^当前是(.*)")
public void isChinese(String
action){
this.action = action;
}
@当("^输入是(.*)")
public void input(String
subject){
this.subject = subject;
}
@那么("^能看到(.*)")
public void outPut(String
gretting){
Assert.assertEquals(action + subject, gretting);
}
}
编写完成上面的java文件后,就需要编写你的features文件了
# language: zh-CN
功能:第一个中文程序
中文实现
@P0
场景:中文实现场景
假如当前是中文
当输入是测试
那么能看到中文测试
运行用例
这里使用了官方提供的一个build文件来运行,支持通过命令行的方式,具体支持哪些参数官方也没有详细的文档,暂时只了解到下面一些
详细的build文件可以参考:
这里简单介绍一下具体运行的几个参数
depends="compile-test">
resultproperty="cucumber.exitstatus">