Cucumber-java入门基础篇

最近公司提倡快速测试,之前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. 场景二,不带参数,只能测试一条数据

Feature: testsuite

  Scenario Outline: 登录成功测试(有多个参数)
    Given 输入用户名: <用户名>
      And 输入密码: <密码>
     When 点击登录
     Then 登录成功

    Examples: 
      | 用户名   | 密码   |
      | name1 | pwd1 |
      | name2 | pwd2 |

  Scenario: 登录失败测试(无参数)
    Given 输入用户名: name3
      And 输入密码: pwd3
     When 点击登录
     T

4. steps定义

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

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

c)       Then注解,断言

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

</pre><pre name="code" class="java">package test;

import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;

public class TestCaseSteps {
    @Given("^输入用户名: (\\w+)$")
    public void 输入用户名(String 用户名)  {
        System.out.println(用户名);
    }

    @Given("^输入密码: (\\w+)$")
    public void 输入密码(String 密码)  {
        System.out.println(密码);
    }

    @When("^点击登录$")
    public void 点击登陆()  {
        System.out.println("登陆中……");
    }

    @Then("^登录成功$")
    public void 登录成功()  {
        System.out.println("登录成功");
    }

    @Then("^登录失败$")
    public void 登录失败() throws Exception  {
        throw new Exception("登录失败");
    }
}

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

时间: 2024-08-25 12:26:17

Cucumber-java入门基础篇的相关文章

Java 入门基础——面向对象的特征

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程.面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中. 面向对象的编程语言有封装.继承 .抽象.多态等4个主要的特征. 封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的"高内聚.低耦合",防止程序相互依赖性而带来的变动影响.在面向

智普教育Python视频教程之入门基础篇,python笔记

智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostname="www.google.com" 结果运行后总是告诉我NameError: name 'socket' is not defined 哪位帮我分析一下,怎么改才对 没用过socket,不过你试着在第一行加入 import socket C:\>notepad somefile.

JDBC-使用Java连接数据库-基础篇

这是小主第一次写Java连接数据库博客,初学Java之时,Java连接数据库是我最头疼的,不过经过一个月的学习,也差不多略有收获,所以给大家分享一下. Java连接数据库大约需要五大步骤: 创建数据库驱动 使用驱动获取数据库链接 创建传输器 使用传输器执行SQL,并返回结果 处理结果集 关闭资源 Java连接数据库主要使用的包分别是: java.sql      基础包 java.sqlx     扩展包 代码实现: 1 package a.li.ba.ba.select; 2 3 import

Java LinkedList基础篇

好久没用LinkedList,发现好多基础的东西都不会了,所以特别写这篇来总结一下关于LinkedList的基本用法. java.util class LinkedList<E> 构造函数: public LinkedList(); 创建一个空的链表. public LinkedList(Collection<? extends E> c); 按照已有集合的顺序来构造链表. 常用方法: public E getFirst(); 返回链表的第一个元素. public E getLas

java入门基础

什么是java? java是一门编程语言  编程语言有很多种 你比如 C语言 等等 为什么学习java呢! 因为你要和计算机交互  当然了你用汉语跟她说她听不懂 所以你要学习编程语言 那么额咱们的java就是一种 java可以做很多东西比较常见的就是网页后台和和桌面程序 java分为javaSE和javaEE还有javaME 咱们主要的课程是javaSE(简单基础核心)和javaEE(企业应用框架) 那么如何操作一个简单的java程序呢 首先想要在电脑上编写java程序就必须要配置一个叫jdk的

Java入门基础学习源码,有C或C++语言基础的可以快速掌握

以下为完整源码,需要1.8版本JDK,否则部分新特性可能出现兼容问题,去掉注释号即可运行 package hello; import java.util.Scanner; public class Hello { public static void main(String[] args) { // TODO 自动生成的方法存根 /* //这是第一个程序 System.out.println("这是一个减法计算器"); Scanner in = new Scanner(System.i

【Java入门提高篇】Day5 Java中的回调(二)

Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制.可以使用它在到达指定时间间隔后发出通知,例如程序中有一个时钟,就可以每秒请求发送一个通知,以便更新时间显示.那么怎样通知Timer去完成我们的任务呢?在其他语言中,可以提供一个函数名,然后定时器周期性的调用它,但Java使用的是面向对象编程的思想,将某个类的对象传递给定时器,然后定时器再调用这个对象的方法,由于对象能携带的

Java编程基础篇第一章

计算机语言 人与计算机交流的方式. 计算机语言有很多种如:C语言,c++,Java等 人机交互 软件的出现实现了人与计算机之间的更好的交流(交互) 交互方式 图形化界面:便于交互,容易操作,简单直观,使用者容易上手. 命令行:需要一个控制台,需要输入特定指令,让计算机完成操作,同时还需要你记住一些命令. Java语言概述: 1. Java语言是SUN公司(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言. 2. Java语言是一门面向I

【Java入门提高篇】Day10 Java代理——静态代理

今天要介绍的是一个Java中一个很重要的概念--代理. 什么是代理?联系生活想想看,代理似乎并不陌生,最形象的代表便是经纪人,明星一般都有经纪人,经纪人作为中间人,负责代理明星的相关事宜,比如说,有人要请明星去唱歌表演,一般不会直接跟明星联系,而是联系他的经纪人,他的经纪人来负责安排行程,而真正唱歌表演的还是明星本人,经纪人仅仅作为一个附加物存在. 在Java中,代理也是这样的概念,来看个栗子: 先来创建一个明星类Stars: public class Stars implements ISta