自动化测试 Cucumber

Cucumber是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。

Cucumber 三大组成:

  1. Features
  2. Step_definitions
  3. Cucumber command

Feature是用简单的自然语言描述的。一个Feature有下面部分组成:

  • 一个title
  • 一段任意格式的描述语句
  • 任意数目的scenarios
  • 每个scenario可以包含任意数目的steps
  • Step定义必须以关键字Given, When, Then, And 开始
  • Feature文件必须以.feature为后缀名

Step_definitions根据feature文件中定义的step编写对应的测试代码,所用编程语言可以和所测应用程序编程语言一致。

Cucumber command, 当运行cucumber命令时,cucumber会分析feature文件中定义的step,然后去step_definitions寻找相匹配的step,如果找到就执行step中的代码。 执行命令,在命令行中输入cucumber项目目录\features\文件名.feature

Cucumber 的开发过程(摘自http://cukes.info/):

1: Describe behaviour in plain text

2: Write a step definition in Ruby

3: Run and watch it fail

4. Write code to make the step pass

5. Run again and see the step pass

6. Repeat 2-5 until green like a cuke

7. Repeat 1-6 until the money runs out

时间: 2024-07-30 16:38:53

自动化测试 Cucumber的相关文章

自动化测试框架Cucumber和RobotFramework的对比

一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情况下),所以大部分具有很好开发技能的人员不是很愿意编写自动化用例.但由于软件规模的高速增长,人力资源的逐步稀缺,自动化测试已是势在必行. 对于自动化测试首先需要保证其功能是对客户有价值的和正确可用的.而这一切的基础就是用例要能测试客户的需求,期望,最好能让客户参与到测试用例的开发过程中来或让客户评审测试用例,因此出现了ATDD.BDD等各

自动化测试框架Cucumber和Robot Framework的实战对比

自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情况下),所以大部分具有很好开发技能的人员不是很愿意编写自动化用例.但由于软件规模的高速增长,人力资源的逐步稀缺,自动化测试已是势在必行. 对于自动化测试首先需要保证其功能是对客户有价值的和正确可用的.而这一切的基础就是用例要能测试客户的需求,期望,最好能让客户参与到测

cucumber 有关链接整理

行为驱动开发之四,为自动化测试(运行Cucumber)提速:http://www.cnblogs.com/jarodzz/archive/2011/09/04/2163222.html CUCUMBER TUTORIAL:http://www.toolsqa.com/cucumber/first-cucumber-selenium-java-test/ Android app testing with Android Studio (Gradle) and AppThwack:http://bl

有赞分层自动化测试实践

1. 背景 先理一下自动化测试的概念,从广义上来说,一切通过工具(程序)的方式来代替或者辅助手工测试的行为都可以成为自动化.从狭义上来说,通过编写脚本的方式,模拟手工测试的过程,从而替代人工对系统的功能进行验证. 有赞是一家互联网行业的创业公司,测试起步较晚,发布非常频繁,就算每次只回归核心功能,对人数极少的几个测试人员来说工作量巨大,且基本是重复劳动,极其枯燥,持续时间长了也容易出错. 所以初期我们测试自动化切入的思路非常简单:从实际用户的角度出发,模拟真实的操作,替代现有的手工测试用例的执行

Selenium+SpecFlow自动化测试一天实践(C#)

一年前在和一位大神的聊天中了解了Selenium自动化测试,兴冲冲买了<零成本实现Web自动化测试——基于Selenium WebDriver和Cucumber>,看了前几章一头雾水,被各种理论打懵了.从此觉得自动化测试好厉害,但是好遥远,没有单元测试那么简单易学啊. 这两天,网站前期开发的一个大坑被挖出来了,几乎把整个项目的所有页面都改了.加上前期开发的新功能在SVN里一合并,看着一大堆冲突,我心里彻底没底了,想着要测试一遍,但是那么多页面和业务一测就是几天. 要是所有的测试能够自动化,以后

移动APP自动化测试框架

简介 移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的"变", 变化导致自动化用例的大量维护.从分层测试的角度,自动化测试应该逐层进行.最大量实现自动化测试的应该是单元测试,最容易实现也最容易在早期发现问题:其次是接口级测试,以验证逻辑为目的进行自动化,由于接口的相对稳定,自动化测试成本相对也可以接受:自动化成本最大的便是UI级自动化测试,然而UI界面是直接反馈给用户的效果展示,适度的尤其是BVT级的自动化测试也是非常必要的.本文通过分析几种自动化框架的异同,使测试人员

写给想要做自动化测试的人

接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人. 想做自动化,首先得了解一下自动化测试的一些常见问题: 自动化测试一些问题 什么是自动化测试? 自动化测试,顾名思义,自动完成测试工作.通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试.自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然.因为每一个自动化测试的case都是从手工测试

醒醒吧少年,只用Cucumber不能帮助你BDD

转载:http://insights.thoughtworkers.org/bdd/ 引言 在Ruby社区中,测试和BDD一直是被热议的话题,不管是单元测试.集成测试还是功能测试,你总能找到能帮助你的工具,Cucumber就是被广泛使用的工具之一.许多团队选择Cucumber的原因是"团队要BDD",也就是行为驱动开发(Behavior Driven Development),难道用了Cucumber之后团队就真的BDD了么? 事情当然没这么简单了,BDD作为一种软件开发方法论,一定要

自动化测试小结

最近差不多一年从事自动化的测试工作,从开始对自动化一点都不了解到现在能从实现用例.手动命令行执行用例.自制工具来执行用例,感觉进步还是有的. 自动化测试对于手动测试应该是有不小的优势的,虽然在自动化的用例实现中刚开始的时候会显得很麻烦,但是它是一个一劳永逸的工作,尤其是版本变 更或者是有些用例需要重复执行的时候,这个优点会显得极其明显,它能够极大的节约人力成本和时间成本.而且,感觉人工测试有时候会或多或少的出现错误,而 自动化测试会极大的降低这些错误.虽然如此,但是自动化测试也有一些缺性,比如需