基于cucumber二次开发的测试框架整理

本文档介绍了基于cucumber的测试框架设计与实现,包括框架的灵活性、环境配置、关键字封装、Spring集成以及测试报告生成。核心是通过cucumber-testng与spring的结合,实现变量管理、多环境切换等功能,并提供了详细的代码示例。
摘要由CSDN通过智能技术生成

最近接触了一个基于cucumber开发的测试框架,感觉挺不错的。想把整个框架的设计以及实现具体记录下,已方便自己后面的查询和参考。

想想主要从以下几个方面来阐述:

一、框架基本介绍

   框架展示形式基于cucumber,对于cucumber的使用不再多说可以百度出很多介绍,该框架基于cucumber+spring+testng。下面就基于修改地方简单描述:

    1、本框架基于cucumber可以灵活操作变量,将变量级别分为 全局变量、feature级变量,测试人员可以自定义变量,也可以在关键字中灵活的保存为对应级别的变量已方便后面的操作。

     2、运行多套环境,多套数据。只需要配置对应的环境配置。例如 测试环境 配置为qa 联调环境配置为int,即可完成环境之间的切换(FileHandle.FILE_EXT)

    3、封装多个关键字。可以直接使用 如 http请求 dubbo 请求 操作数据库的关键字....(这个不是重点,可以自己不断的完善补充)

    5、集成spring,可以方便的使用spring的依赖注入(这个也不是重点,cucumber集成spring的包cucumber-spring。需要特别注意的是spring的配置文件名称必须为cucumber.xml

    4、清晰完善的测试报告(这个也不是重点,cucumber测试报告有很多插件..cucumber-reporting-2.2.0.jar)


二、框架的设计思路以及代码实现


如下图为针对cucumber主要改造的设计图




运行的用例集成cucumber-testng的抽象方法AbstractTestNGCucumberTests,该抽象方法主要有四个方法,上面的图中缺少一个dataProvider方法,主要是运行过程中数据提供者,上图中的三个方法非常明了:

                            1、BeforeClass 运行前的初始化 在这个步骤中假如我们自己的全局变量以及一些初始化工作TestContext。

                            2、feature 运行对应feature,数据由dataProvide提供。在这个步骤中针对每个feature加入feature变量hookUtil.beforeFeature(cucumberFeature);

                            3、根据方法配置的测试报告路径,生成对应的测试报告


先上下上面描述的代码:

1、运行测试的类

@Test
@CucumberOptions(features={"src/main/resources/feature/dubbotest/demo.feature"},glue={"com.tom.test"},plugin = {"pretty", "html:./target/cucumber","json:./target/cucumber/report.json"},tags={})
public class SingleTest  extends SpecTestNgCuke  {

}

2、SpecTestNgCuke类===等价AbstractTestNGCucumberTests
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import com.tom.utils.HookUtil;
import com.tom.utils.TestContext;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.CucumberFeatureWrapper;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;

public class SpecTestNgC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值