基于数据驱动的酒店对账自动化测试系统

发布者:上海IT外包来源:http://www.lanmon.net点击数:684

跟着马蜂窝酒店业务规模的不竭扩大,酒店平台与各 OTA 的业务往来越来越频仍。实际业务中,在向各 OTA 平台结算金额前,我们必要经由过程对账环节与本身体系订单停止比对,确认双方订单金额、状态等是否存在非常,并以此作为结算金额的计较按照。

为什么必要主动化测试?

大师都晓得,账务数据对切确性的要求很是高。之前酒店账务数据同等性的测试,根基是依靠财务人员手工措置。


业务的添加使对账体系的测试使命越来越多,传统的测试编制导致的问题愈加较着:

1)多源数据。账务数据来自不合的 OTA 平台,数据名目没有统一标准和标准,影响数据措置服从。

2)大量数据的措置服从以及切确性。数据的测试成效由账务人员手动比力 Excel 文件获得,每月都必要措置海量的流水数据,措置慢、精度低,并且不成按捺的有错误出现。

3)多轮回归测试。测试时使命流程长且频频单调,人工在多轮测试后,很是随意倦怠厌倦,导致错误率上升,影响接下来的测试成效。

4)问题定位。使用手工测试,很难完好地记实测试成效和测试报告,在测试过程中碰着的非常情形,良多情形下无法停止实时记实,使得问题定位时破耗较长时辰。

基于酒店对账使命的近况和问题,我们抉择抉择接纳以 Excel 表格作为数据源,使用 Java 说话来整合、挑选以及数据比力的编制,搭建一套酒店对账主动化测试平台,一方面可以有效地在短时辰内措置大量数据;另一方面可以将财务人员从庞杂的手工对账测试中解放出来,进步工作服从。

图2:如今我们是如许的

经由过程本文,希望和大师分享曩昔几个月马蜂窝酒店财务对账项目的试探和理论,并对对账主动化测试平台停止一个总结。

基于数据驱动的主动化测试体系

上文提到过,酒店的对账数据来自于不合的 OTA,数据名目存在必定的差异。若何使用统一套代码,来措置这些数据方面的差异,进步剧本的复用性呢?我们接纳了基于数据驱动的测试编制。

1.若何理解数据驱动

若是测试数据和代码连系在一起,每一次改削数据,两者都要同时变化,这种测试的编制不合适酒店业务数据的措置。数据驱动的编制将测式数据参数化,经由过程给测试剧本类的机关函数通报参数,从而到达数据的改变驱动主动化测试的实行,终极使得测试成效的改变。

经由过程这种编制,可以使测试数据和测试代码相分手,各自维护,只必要较少的代码产生的大量测试用例,进步剧本的复用率和可维护性。

2.手艺实现

连系上文我们可以明晰,在数据驱动的主动化测试框架中,一是必需要有与电子表格、文本文件、数据库等集成的才能;二是必需稀有据来节制测试的业务流。整套框架我们接纳的是 Maven + TestNG + Java +POI 来实现。

-- Maven 是一个经由过程设置装备安排文件来办理项目的构建工具,应用在主动化测试中时,无论是对 Jar 包的办理仍是实行测试案例,默示都很超卓。

-- TestNG 是一套可以把持解释来节制测试流程,从而到达强化测试功能的测试框架。它参加了单位测试、注解、组概念、套件、非常、参数化、依靠等测试思惟,使其可以很好地支撑和办理主动化测试使命。

-- Apache POI 是一种流行的 API , 它容许轨范员建树、改削和表示 MS Office 文件。它是由 Apache 软件基金会开发和公布的一个开源库,用于使用 Java 轨范设计或改削 MS-Office 文件。 它包含将用户输入数据或文件到 MS Office 文档停止解码的类和编制(详见官网:http://poi.apache.org/)。

经由过程使用 Apache POI 来解析 Excel 文档,连系 Java 说话对文档内容进一步措置,可以到达主动化的测试了局。

详细到一个测试用例的实行过程为:

图3:测试用例实行过程

主动化测试框架大抵构造图:

图4:主动化测试框架构造图

各模块功能:

  • DataProvider:经由过程机关函数向测试剧本通报测试数据,从而到达数据驱动的目的;

  • TestScript:封装测试剧本;

  • commonFunction 将一些常用的编制抽离出来放到该模块中;

  • Data:将一些共享的常用的数据抽离出来放到该模块;

  • Report:测试成效模块;

  • 实行进口: xml 文件,可以用来设置装备安排测试的规模。

整个框架的工作流程大抵可以描述为:

  1. Testng.xml 作为测试进口;

  2. DataProvider 经由过程测试数据驱动测试剧本的实行;

  3. 测试剧本中经由过程 POI 读取测试数据,Java 分析测试数据,然后输出Report(在 Testscipt 中必要用到 Data 模块和 CommonFunc 模块。)

3.框架优化

一个好的测试框架的方针是可以减少代码量,大大进步测试剧本开发的服从。但它不是一挥而就的,而是跟着项目的不竭的深切停止连续地改进。从上线投入使用起头,我们的框架也在不竭优化,首要和大师分享以下几点经历:

1)Data 模块。在测试过程中创造一些测试数据会经常被使用到,并且经常必要改变,每次改动必要改动良多若干好多文件。我们对就对这局部数据停止了收取,放到 Data 模块中。

2)commonFunction 模块。在对 Excel 读写时,经由过程对不合的单位格数据类型的断定,停止不合的措置,来使单位格把持的强健性加强。

3)对付 Excel 文件的读写必要多个轮回,为了进步机能,应该事先对数据停止预措置,按捺多个轮回的嵌套。

近期规划及演进标的目的

如今测试数据的数据源是经由过程 Excel 文件来获取的,必要酬报手工的停止数据的整合,对付连续化集成是一个拦阻。经由过程给接口授参来获取数据的编制,是一个斗劲抱负的设想。经由过程接口获取数据的编制,可以经由过程 Jenkins 实现连续集成,测试人员可以给财务人员供给可视化的参数输入进口,实现财务人员触发测试剧本停止测试。如许做可以释放测试资源,进步回归频率,减少财务风险

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部