Cucumber-java入门基础篇

http://blog.csdn.net/musen518/article/details/45365811

最近公司提倡快速测试,之前ui界面自动化实在是不稳定且执行很慢,总会出现很多莫名奇妙的问题……

快速测试前提,是web响应里面只含json格式(其实xml格式也行)数据,达到html与数据分离,

这样就提供很大便利,数据校验很容易,也更加精确,持续集成更快速,更精确定位问题。

大家热情很高,用到的工具很多,

选好工具成功一大半,工具多了也发愁

下面就标题介绍下Cucumber的使用基础

1. 安装Cucumber请点击,http://blog.csdn.net/musen518/article/details/45363911

2. Cucumber案例结构

        a、定义features,案例集,用于描述多个场景(案例),主要由测试人员编写维护

        b、定义steps,步骤定义,实现真实测试action,可以是测试人员或开发人员编写维护

3. features文件,

       下面截图包含两个案例(场景=案例)

        i.  场景一,带参数且多个数据驱动测试

        ii. 场景二,不带参数,只能测试一条数据

[java]  view plain  copy
  1. Feature: testsuite  
  2.   
  3.   
  4.   Scenario Outline: 登录成功测试(有多个参数)  
  5.     Given 输入用户名: <用户名>  
  6.       And 输入密码: <密码>  
  7.      When 点击登录  
  8.      Then 登录成功  
  9.   
  10.   
  11.     Examples:   
  12.       | 用户名   | 密码   |  
  13.       | name1 | pwd1 |  
  14.       | name2 | pwd2 |  
  15.   
  16.   
  17.   Scenario: 登录失败测试(无参数)  
  18.     Given 输入用户名: name3  
  19.       And 输入密码: pwd3  
  20.      When 点击登录  
  21.      T  

4. steps定义

         a)       Given注解,正则表达式,用于匹配feature文件内容,实现步骤和获取参数

         b)       When注解,动作事件步骤,表示动作行为

         c)       Then注解,断言

         d)       更多注解可以去,Cucumber官网文档:https://cukes.info/docs/

[java]  view plain  copy
  1. </pre><pre name="code" class="java">package test;  
  2.   
  3. import cucumber.api.java.en.Given;  
  4. import cucumber.api.java.en.Then;  
  5. import cucumber.api.java.en.When;  
  6.   
  7.   
  8. public class TestCaseSteps {  
  9.     @Given("^输入用户名: (\\w+)$")  
  10.     public void 输入用户名(String 用户名)  {  
  11.         System.out.println(用户名);  
  12.     }  
  13.       
  14.     @Given("^输入密码: (\\w+)$")  
  15.     public void 输入密码(String 密码)  {  
  16.         System.out.println(密码);  
  17.     }  
  18.       
  19.     @When("^点击登录$")  
  20.     public void 点击登陆()  {  
  21.         System.out.println("登陆中……");  
  22.     }  
  23.       
  24.     @Then("^登录成功$")  
  25.     public void 登录成功()  {  
  26.         System.out.println("登录成功");  
  27.     }  
  28.       
  29.     @Then("^登录失败$")  
  30.     public void 登录失败() throws Exception  {  
  31.         throw new Exception("登录失败");  
  32.     }  
  33. }  

4. 执行案例

      a)  通过eclipse插件执行,必须安装Eclipse cucumber插件 

               选择feature文件,点击右键Run as,选择Cucumber feature\


          b)   通过junit执行,需要加载依赖,这种方式无需安装Cucumbereclipse插件(testng类似)

                    i.           cucumber-junit-1.2.2.jar

                    ii.           hamcrest-core-1.3.jar

                    iii.           junit-4.12.jar




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值