掌桥专利:专业的专利平台
掌桥专利
首页

测试脚本开发方法及装置

文献发布时间:2023-06-19 11:29:13


测试脚本开发方法及装置

技术领域

本发明涉及自动化测试技术领域,尤指一种测试脚本开发方法及装置。

背景技术

银行清算前置是清算系统的重要组成模块,置于银行核心系统与其他清算主体的前端位置,为银行核心清算系统屏蔽同业机构间差异化的报文格式、通讯方式,提供统一对外出入口,负责收发报通讯、报文解析、报文组装、定点组包、加签验签、统一格式转换等功能,如图1所示。

银行前置系统自动化测试脚本主要功能是模拟报文数据的接入,并检查转换过程的逻辑和结果,行为具有高度的一致性总结起来可以分为清算报文数据准备、环境链接、数据推送、结果核对,如果脚本编写过程每个测试人员都独立编码完成这些动作,存在重复工作的情况,并且由于测试人员编码能力相对较弱同时个体存在差异,编写质量及效率存在不确定性,工作时长无法控制等问题,无法满足系统开发短周期快速迭代等要求,存在抽象简化测试脚本开发工作的需求。

发明内容

针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种测试脚本开发方法及装置,

为了实现上述目的,本发明实施例提供一种测试脚本开发方法,所述方法包括:

对获取到的多个测试案例文件进行解析,得到多个测试案例数据,以及各测试案例数据对应的键值及案例值;

识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值;

根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据;

根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发。

可选的,在本发明一实施例中,所述识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值包括:

识别各测试案例数据对应的案例值中的变量;其中,所述变量包括公共变量及引用变量;

获取所述公共变量及引用变量对应的预设变量值,并根据所述预设变量值对对应的公共变量及引用变量进行赋值。

可选的,在本发明一实施例中,所述根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据包括:

根据赋值后的变量,获取预设的报文数据模板中的基础数据,并确定所述基础数据中的动态变量;

对各测试案例数据对应的键值与所述动态变量进行关联,并将关联后的动态变量替换为赋值后的变量,生成待推送测试数据。

可选的,在本发明一实施例中,所述根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发包括:

根据各测试案例数据对应的键值及赋值后的变量,获取环境配置文件及预设断言规则;

利用所述环境配置文件进行环境检查,得到环境检查结果;

若所述环境检查结果为检查通过,则根据所述待推送测试数据及所述预设断言规则进行断言执行,得到断言执行结果,并根据所述断言执行结果进行结果回写,以完成测试脚本开发。

本发明实施例还提供一种测试脚本开发装置,所述装置包括:

案例解析模块,用于对获取到的多个测试案例文件进行解析,得到多个测试案例数据,以及各测试案例数据对应的键值及案例值;

变量赋值模块,用于识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值;

测试数据模块,用于根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据;

测试执行模块,用于根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发。

可选的,在本发明一实施例中,所述变量赋值模块包括:

变量识别单元,用于识别各测试案例数据对应的案例值中的变量;其中,所述变量包括公共变量及引用变量;

变量赋值单元,用于获取所述公共变量及引用变量对应的预设变量值,并根据所述预设变量值对对应的公共变量及引用变量进行赋值。

可选的,在本发明一实施例中,所述测试数据模块包括:

动态变量单元,用于根据赋值后的变量,获取预设的报文数据模板中的基础数据,并确定所述基础数据中的动态变量;

测试数据单元,用于对各测试案例数据对应的键值与所述动态变量进行关联,并将关联后的动态变量替换为赋值后的变量,生成待推送测试数据。

可选的,在本发明一实施例中,所述测试执行模块包括:

数据获取单元,用于根据各测试案例数据对应的键值及赋值后的变量,获取环境配置文件及预设断言规则;

环境检查单元,用于利用所述环境配置文件进行环境检查,得到环境检查结果;

测试执行单元,用于若所述环境检查结果为检查通过,则根据所述待推送测试数据及所述预设断言规则进行断言执行,得到断言执行结果,并根据所述断言执行结果进行结果回写,以完成测试脚本开发。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明通过对测试场景进行抽象,采取简便配置化的方式开展脚本开发,降低了对测试人员编码能力要求,确保了开发的质量及时效处于可控要求,并具有较为广泛的前置测试通用性,可以满足复杂流程业务测试场景及清算业务测试的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为清算系统的结构示意图;

图2为本发明实施例一种测试脚本开发方法的流程图;

图3为本发明实施例中变量识别与赋值的流程图;

图4为本发明实施例中生成待推送测试数据的流程图;

图5为本发明实施例中测试脚本执行的流程图;

图6为本发明一具体实施例中测试脚本开发抽象类功能的示意图;

图7为本发明一具体实施例中测试脚本开发抽象类功能的流程图;

图8为本发明实施例一种测试脚本开发装置的结构示意图;

图9为本发明实施例中变量赋值模块的结构示意图;

图10为本发明实施例中测试数据模块的结构示意图;

图11为本发明实施例中测试执行模块的结构示意图;

图12为本发明一实施例所提供的电子设备的结构示意图。

具体实施方式

本发明实施例提供一种测试脚本开发方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的测试脚本开发方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的测试脚本开发方法及装置应用领域不做限定。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图2所示为本发明实施例一种测试脚本开发方法的流程图,本发明实施例提供的测试脚本开发方法的执行主体包括但不限于计算机。图中所示方法包括:

步骤S1,对获取到的多个测试案例文件进行解析,得到多个测试案例数据,以及各测试案例数据对应的键值及案例值。

其中,获取测试案例文件并解析得到测试案例数据。具体的,以MAP数组(java中MAP是一个集合,一种依照键key存储元素的容器)方式存储测试案例EXCEL文件,每行对应一个测试案例数据存放在一个MAP参数,MAP的KEY值(键值)对应的是EXCEL的首行标题,VALUE值是列下对应的案例值。

步骤S2,识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值。

其中,通过识别得到测试案例数据案例值中的变量,包括公共变量及引用变量。对得到的MAP参数VALUE值(案例值)中公共变量及引用变量赋值。具体的,测试案例数据中频繁使用的日期、序列号、时间等会以公共变量的形式提供用户直接使用,例如:{WOKRDATE8},{WORKDATE10},{TIME8},{SEQ8}等分别代表8位日期格式,10位日期格式,8位时间格式,8位唯一序列号。利用抽象类会自动识别并自动生成替换这些公共变量的值,实现变量自动赋值。测试案例文档支持对前项案例值的引用,格式为“案例描述.标题名”,程序会根据“案例描述”匹配到对应的MAP并获取该组MAP对应的标题名。如果用户需要实现自定义的变量,可以在具体的测试用例中用代码方式在MAP中追加。

步骤S3,根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据。

其中,根据赋值后的变量,具体可以为MAP参数指定的码制键值参数,读取报文数据模板基础数据。报文数据模板保存的是前置数据接口接入的基本格式,预置在脚本工程的数据目录下,其框架数据来源于日志数据、外部清算样例数据或者基于接口输入通讯区手工编辑。每个报文数据模板的基础数据由固定数据和动态变量构成,动态变量标识格式为“#变量名”表示其内容需要被案例文档替换。通过MAP参数的KEY值(键值)关联报文数据模板基础数据中的动态变量,并使用VALUE值(赋值后的变量)进行替换,得到接入前置的最终接口待推送测试数据。

步骤S4,根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发。

其中,环境检查具体过程包括:根据赋值后的变量,可以为MAP参数指定的“#清算系统标识”,读取预设的环境配置文件,关联数据库及前置服务器。对前置服务器的前台状态及常驻进程状体进行扫描,确保前台及常驻进程处于正常工作状态。

进一步的,断言执行具体过程包括:根据键值,具体可以为MAP参数中“#断言延迟”key要求的延迟时间(单位:ms),结合预设断言规则,执行断言结果。具体的断言规则可以设置于测试案例文件中关于断言规则的描述。如果断言失败,则由待推送测试数据构成的测试案例中止运行,否则继续。如果有一个测试断言执行失败,会认为整体测试案例执行失败,输出断言判断数据源的SQL检索预计及具体校验失败规则。

进一步的,结果回写具体过程包括:将MAP数组全部遍历执行结束,回写完整的MAP数组内容至测试案例文件EXCEL。由此,完成测试脚本开发的全过程。

作为本发明的一个实施例,如图3所示,识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值包括:

步骤S21,识别各测试案例数据对应的案例值中的变量;其中,所述变量包括公共变量及引用变量;

步骤S22,获取所述公共变量及引用变量对应的预设变量值,并根据所述预设变量值对对应的公共变量及引用变量进行赋值。

其中,通过识别得到测试案例数据案例值中的变量,包括公共变量及引用变量。对得到的MAP参数VALUE值(案例值)中公共变量及引用变量赋值。具体的,测试案例数据中频繁使用的日期、序列号、时间等会以公共变量的形式提供用户直接使用,例如:{WOKRDATE8},{WORKDATE10},{TIME8},{SEQ8}等分别代表8位日期格式,10位日期格式,8位时间格式,8位唯一序列号。利用抽象类会自动识别并自动生成替换这些公共变量的值,实现变量自动赋值。测试案例文档支持对前项案例值的引用,格式为“案例描述.标题名”,程序会根据“案例描述”匹配到对应的MAP并获取该组MAP对应的标题名。如果用户需要实现自定义的变量,可以在具体的测试用例中用代码方式在MAP中追加。

作为本发明的一个实施例,如图4所示,根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据包括:

步骤S31,根据赋值后的变量,获取预设的报文数据模板中的基础数据,并确定所述基础数据中的动态变量;

步骤S32,对各测试案例数据对应的键值与所述动态变量进行关联,并将关联后的动态变量替换为赋值后的变量,生成待推送测试数据。

其中,根据赋值后的变量,具体可以为MAP参数指定的码制键值参数,读取报文数据模板基础数据。报文数据模板保存的是前置数据接口接入的基本格式,预置在脚本工程的数据目录下,其框架数据来源于日志数据、外部清算样例数据或者基于接口输入通讯区手工编辑。每个报文数据模板的基础数据由固定数据和动态变量构成,动态变量标识格式为“#变量名”表示其内容需要被案例文档替换。通过MAP参数的KEY值(键值)关联报文数据模板基础数据中的动态变量,并使用VALUE值(赋值后的变量)进行替换,得到接入前置的最终接口待推送测试数据。

作为本发明的一个实施例,如图5所示,根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发包括:

步骤S41,根据各测试案例数据对应的键值及赋值后的变量,获取环境配置文件及预设断言规则;

步骤S42,利用所述环境配置文件进行环境检查,得到环境检查结果;

步骤S43,若所述环境检查结果为检查通过,则根据所述待推送测试数据及所述预设断言规则进行断言执行,得到断言执行结果,并根据所述断言执行结果进行结果回写,以完成测试脚本开发。

其中,其中,环境检查具体过程包括:根据赋值后的变量,可以为MAP参数指定的“#清算系统标识”,读取预设的环境配置文件,关联数据库及前置服务器。对前置服务器的前台状态及常驻进程状体进行扫描,确保前台及常驻进程处于正常工作状态。

进一步的,断言执行具体过程包括:根据键值,具体可以为MAP参数中“#断言延迟”key要求的延迟时间(单位:ms),结合预设断言规则,执行断言结果。具体的断言规则可以设置于测试案例文件中关于断言规则的描述。如果断言失败,则由待推送测试数据构成的测试案例中止运行,否则继续。如果有一个测试断言执行失败,会认为整体测试案例执行失败,输出断言判断数据源的SQL检索预计及具体校验失败规则。

进一步的,结果回写具体过程包括:将MAP数组全部遍历执行结束,回写完整的MAP数组内容至测试案例文件EXCEL。由此,完成测试脚本开发的全过程。

在本发明一具体实施例中,本发明采取模板设计方法对清算前置测试脚本开发工作进行解耦,实现脚本代码开发和数据管理工作的分离。立足银行清算前置测试特点,从技术维护出发,收集总结清算前置常见的Http、Mq、Sftp、Socket接入测试场景需求,提取公共自动化测试行为进行封装,负责完成测试数据拼装、环境预检查、接口环境信息解析链接、数据推送、结果获取及测试断言校验等具体的业务逻辑工作,同时提供场景适配功能,面向不同格式前置测试数据提供统一格式的入参风格,简化调用关系。并采取抽象类的方法将上述代码行为固化,具体测试类开发在继承基础上只需完成少量代码或者无代码开发就可完成测试脚本开发。

数据管理文件实现差异化测试功能,由报文数据模板、测试案例文件、环境配置文件组成,报文数据模板维护需要推送给前置接口的报文数据,并对其中需要关键业务要素信息注入变量替代,用以关联测试案例文件中的业务要素。测试案例文件采用Microsoftexcel编写,一方面编写需要关联报文数据模板的变量值,丰富测试案例的覆盖范围;另一方面指定断言规则,检查案例执行结果;同时支持结果回写,用于后续依赖案例的继续执行。环境配置文件指定协议接入的具体环境信息,实现不同接入接口协议间的适配切换。

在本实施例中,如图6所示抽象类功能,分别由数据文档解析、环境预检查、案例调度、日志输出、数据库DB访问、Http/Mq/Sftp/Socket报文模拟接入、断言及回写模块构成。

具体的,结合图7中的流程对其功能进行详细说明。

步骤101:数据文档解析。以MAP数组(java中MAP是一个集合,一种依照键(key)存储元素的容器)方式存储测试案例EXCEL文件,每行对应一个案例数据存放在一个MAP参数,MAP的KEY值对应的是EXCEL的首行标题,VALUE值是列下对应的案例值。

步骤102:案例初始化。实现对步骤101中得到的MAP参数VALUE值中公共变量及引用变量赋值。案例数据中频繁使用的日期、序列号、时间等会以公共变量的形式提供用户直接使用,例如:{WOKRDATE8},{WORKDATE10},{TIME8},{SEQ8}等分别代表8位日期格式,10位日期格式,8位时间格式,8位唯一序列号。在该步骤抽象类会自动识别并自动生成替换这些公共变量值实现参数自动赋值。测试案例文档支持对前项案例值的引用,格式为“案例描述.标题名”,程序会根据“案例描述”匹配到对应的MAP并获取该组MAP对应的标题名。如果用户需要实现自定义的变量,可以在具体的testng用例中用代码方式在MAP中追加。

步骤103:测试报文组装。根据步骤102输出的MAP参数指定的码制键值参数#ENCODE及“#源报文体名称”读取报文数据模板基础数据,如果没有指定#ENCODE默认为UTF-8编码格式读取。报文数据模板保存的是前置数据接口接入的基本格式,预置在脚本工程的数据目录下,其框架数据来源于日志数据、外部清算样例数据或者基于接口输入通讯区手工编辑。每个报文数据模板数据由固定数据和动态变量构成,动态变量标识格式为“#变量名”表示其内容需要被案例文档替换。表1所示为一个PACS.008.01.06的收报报文的报文数据模板,“#TxID”表示改字段为动态变量需要被替换。通过步骤102得到MAP参数的KEY值关联报文数据模板动态变量并使用VALUE值进行替换,得到接入前置的最终接口待推送测试数据。

表1

步骤104:环境预检查。根据步骤102输出的MAP参数指定的“#清算系统标识”,读取环境配置文件,关联数据库及前置服务器。如表2所示,环境变量“.”前面对应的是“#清算系统标识”内容。对前置服务器的前台状态及常驻进程状体进行扫描,确保前台及常驻进程处于正常工作状态。

表2

步骤105:场景路由。使用步骤102输出的MAP参数中键值“#ENV_PEFIX”指定的接口环境前缀以及“#接口协议”key指定协议接口Http、Mq、Sftp、Socket做环境信息检索解析环境配置文件,参见表3。模拟接口协议传输将步骤103生成的数据按照键值参数#ENCODE指定的格式推送至目标接口并检查技术回执是否成功。

表3

步骤106:断言执行。执行步骤102输出的MAP参数中“#断言延迟”key要求的延迟时间(单位:ms),根据断言要求,执行断言结果,具体的断言规则见测试案例文件中关于断言规则的描述。支持对xml格式文件做schema(XML文档描述格式)校验,并读取入参map中“#回写字段.xxx”从目标的数据库中获取对应字段回写对应的map。如果断言失败案例中止运行,否则继续。如果有一个测试断言执行失败,会认为整体案例执行失败,输出断言判断数据源的SQL检索预计及具体校验失败规则。

步骤107:组合案例运行。获取一下行案例,将案例执行的成功失败结果回写至MAP参数中。重复步骤102动作

步骤108:结果回写。步骤101中的MAP数组全部遍历执行结束,回写完整的MAP数组内容至测试案例文件excel。

在本实施例中,数据管理文件包括:数据管理由报文数据模板、测试案例文件、环境配置文件构成,具体功能描述如下:

1)报文数据模板:维护前置接入内外部报文格式的数据模板,支持json、xml以及普通文本文件格式的报文文件,并支持诸如捷克语、俄语、阿拉木图语、泰文、韩语等全球多语种的编辑同时支持按语种要求的码制保存,支持UTF-16BE、KSC5601、EUCKR、Windows-1251、UTF-8等国际清算业务可能用到的码制。针对报文数据模板中需要案例定制的字段,将内容使用“#变量名”替换,可以关联替换案例文件中的案例值。表1所示为xml格式PACS.008.001.06报文数据模板的截取片段,装置自带全局公共变量,会自动替换诸如{WORKDATE8}、{SEQ8}等日期、序列号(8位)常见变量需求。

2)、测试案例文件如表4-表8所示,是配置工作的主体部分,测试案例文件具备功能如下:

A、案例描述:作为案例标识,要求每行的案例名称不能重复,是作为测试人员查看测试案例运行结果的依据。

B、输入固定业务值:填写案例值关联报文数据模板注入的变量,通过对应列的首行标题栏内容与变量关联。

C、输入动态案例值:支持使用抽象类支持的公共变量输入动态日期、动态序号等案例值,便于案例重复运行。

D、指定报文数据模板名称:通过“#源报文体名称”指定,其中Http、Mq、Socket接口处理对象为数据流,数据来源于单文件。SFTP操作的数据对象为文件报文,存在报文数据由多个文件组成的情况,因此本发明增加“#源报文头名称”支持清算报文由报文头和报文体共同构成的文件报文处理,同时增加“#目标报文头名称”“#目标报文体名称”支持自动配置远程文件的文件名生成规则。

E、码制类型:支持多码制文件读取及写入。

F、接口类型:支持用户自由选择MQ、HTTP、SOCKET、SFTP类型接口测试场景。

H、清算系统标志:“#清算系统标识”指定需要测试的前置功能系统归属,确定环境检查范围。

I、环境配置关联:支持环境自由适配,环境配置文件中env.properites定义完整的环境信息参数,在案例中只需提供环境变量前缀,工具即可获取完整的环境信息,用于接口服务、数据库及环境预检查环境信息访问。

J、断言:支持规则化断言配置,由于清算前置对所有的输入报文均会有数据库入库处理,因此断言的数据来源于数据库,并提供延迟参数支持脚本推送数据处理充分后断言,支持对xml类型输出报文做XML Schema校验检查。Schema参数文件通过参数“#源报文体名称”+“.sch”指定,如果用到该功能需要与数据源相同目录下准备的xml报文shemal(xml文档的元素的描述格式)文件。断言源数据存放的数据库由“#DB实例”指定地址前缀,关联环境配置文件获取完整的环境信息,见表2。“#核对.表名”指定需要检查的数据表,“#匹配条件.字段名”、“#核对字段.字段名”分别指定表记录的检索条件与需要核对的字段。支持多个检索条件及多个核对点。支持一条案例执行多个断言,通过“#核对x.表名”(x为1,2,3...自然数)方式进行扩张。

K、组合案例:支持组合案例运行。

L、回写:回写覆盖案例中的动态值,用于用户获取键值关联检查上下游交易记录或者为依赖案例提供检索记录。

表4

其中,表中“ICBK072{WORKDATE8}{SEQN08}”为公共变量,“ICBK072{WORKDATE8}{SEQN08}”与“pacs008发报_港币_最小金额.#MsgId”可以组合为组合案例。

表5

其中,表中“#接口协议”为接口协议类型,“#ENV_PEFIX”为环境变量前缀。

表6

其中,表6中“#DB实例”为断言执行的数据库,“#核对.表名”为表名,“#匹配条件.REFNUM”为键值,“#核对字段.HDLFLAG”为预期结果,“#核对字段.MGSLOG”表示支持xml结构的组报结果,做shemal校验,“#回写字段.UNISEQNO”为预留回写字段。

表7

其中,表7为得到案例文件回写结果后得到的。

表8

其中,表8中“#ENCODE”按特定码制要求读取或写入。进一步的,如果报文信息由报文头和报文体共同组成,通过标题栏为“#源报文体名称”和“#源报文头名称”输入项指定本地文件名,对应的远程测试服务器的名称由目标文件名和文件头名称指定,支持按公共变量组合方式重命名文件,确保复核报文命名规则并可重复运行。

3)、环境配置文件

负责对测试脚本接入前置的环境信息进行配置,支持对前置服务运行的前后台数据库进行配置,用于开展环境预检查、断言数据库访问操作,见表2。支持以Http、Mq、Socket、Sftp方式接入前置,需要完成环境要素配置如表3所示分别为Http协议URL地址;Mq服务器名称、Mq服务器地址、Mq通道名称、Mq服务器CCSID属性、超时访问时间等信息;Socket服务器的ip及端口;Sftp服务器IP,端口,目标报文头文件路径、报文体路径。脚本通过读取案例文件中的键值为“#ENV_PEFIX”参数获取环境信息前缀关联环境变量文件env.properties获取完整环境信息,可以实现前置目标接口的访问及报文数据的推送。

当前金融科技行业,业务需求日新月异,科技研发快速迭代,要求测试人员能够快速响应。传统自动化测试脚本编写要求测试人员以编码方式完成脚本,存在测试人员的能力较高,开发成本较大的劣势。本发明通过对清算前置领域场景测试场景抽象,采取一种简便配置化的方式开展脚本开发。其优点如下:

1、配置化开发方式实现脚本的开发及用户案例的维护,降低了对测试人员编码能力要求,确保开发的质量及时效处于可控要求。

2、兼容多种接口协议的接入场景自动化测试,具有较为广泛的前置测试通用性。

3、支持组合案例的配置运行,可以满足复杂流程业务测试场景的需求。

4、多种码制格式报文文件的支持,满足国际清算业务测试需求。

本发明通过对前置常见接入接口协议Http、Mq、Sftp、Socket的测试场景高度抽象,提供一种相对强大的配置化开发方案,将测试脚本的代码与数据工作分离。测试人员从事单体测试脚本编写时,在模板化开发框架的基础上,主要精力集中在规则化的配置化工作上,可以在短时间内完成脚本开发,减少代码编写及调试的工作量。同时本发明支持多案例组合以及多字符集多种编码方式报文数据处理,可以满足复杂场景及国际业务测试需求。有利于测试人员业务场景熟悉专长发挥,降低脚本开发门槛,让质量及编写效率有保证。

如图8所示为本发明实施例一种测试脚本开发装置的结构示意图,图中所示装置包括:

案例解析模块10,用于对获取到的多个测试案例文件进行解析,得到多个测试案例数据,以及各测试案例数据对应的键值及案例值。

其中,获取测试案例文件并解析得到测试案例数据。具体的,以MAP数组(java中MAP是一个集合,一种依照键key存储元素的容器)方式存储测试案例EXCEL文件,每行对应一个测试案例数据存放在一个MAP参数,MAP的KEY值(键值)对应的是EXCEL的首行标题,VALUE值是列下对应的案例值。

变量赋值模块20,用于识别各测试案例数据对应的案例值中的变量,并对各测试案例数据对应的案例值中的变量进行赋值。

其中,通过识别得到测试案例数据案例值中的变量,包括公共变量及引用变量。对得到的MAP参数VALUE值(案例值)中公共变量及引用变量赋值。具体的,测试案例数据中频繁使用的日期、序列号、时间等会以公共变量的形式提供用户直接使用,例如:{WOKRDATE8},{WORKDATE10},{TIME8},{SEQ8}等分别代表8位日期格式,10位日期格式,8位时间格式,8位唯一序列号。利用抽象类会自动识别并自动生成替换这些公共变量的值,实现变量自动赋值。测试案例文档支持对前项案例值的引用,格式为“案例描述.标题名”,程序会根据“案例描述”匹配到对应的MAP并获取该组MAP对应的标题名。如果用户需要实现自定义的变量,可以在具体的测试用例中用代码方式在MAP中追加。

测试数据模块30,用于根据赋值后的变量,获取预设的报文数据模板中的基础数据,并根据所述键值、赋值后的变量及所述基础数据,生成待推送测试数据。

其中,根据赋值后的变量,具体可以为MAP参数指定的码制键值参数,读取报文数据模板基础数据。报文数据模板保存的是前置数据接口接入的基本格式,预置在脚本工程的数据目录下,其框架数据来源于日志数据、外部清算样例数据或者基于接口输入通讯区手工编辑。每个报文数据模板的基础数据由固定数据和动态变量构成,动态变量标识格式为“#变量名”表示其内容需要被案例文档替换。通过MAP参数的KEY值(键值)关联报文数据模板基础数据中的动态变量,并使用VALUE值(赋值后的变量)进行替换,得到接入前置的最终接口待推送测试数据。

测试执行模块40,用于根据所述待推送测试数据、所述键值及赋值后的变量,进行环境检查、断言执行及结果回写,以完成测试脚本开发。

其中,环境检查具体过程包括:根据赋值后的变量,可以为MAP参数指定的“#清算系统标识”,读取预设的环境配置文件,关联数据库及前置服务器。对前置服务器的前台状态及常驻进程状体进行扫描,确保前台及常驻进程处于正常工作状态。

进一步的,断言执行具体过程包括:根据键值,具体可以为MAP参数中“#断言延迟”key要求的延迟时间(单位:ms),结合预设断言规则,执行断言结果。具体的断言规则可以设置于测试案例文件中关于断言规则的描述。如果断言失败,则由待推送测试数据构成的测试案例中止运行,否则继续。如果有一个测试断言执行失败,会认为整体测试案例执行失败,输出断言判断数据源的SQL检索预计及具体校验失败规则。

进一步的,结果回写具体过程包括:将MAP数组全部遍历执行结束,回写完整的MAP数组内容至测试案例文件EXCEL。由此,完成测试脚本开发的全过程。

作为本发明的一个实施例,如图9所示,所述变量赋值模块20包括:

变量识别单元21,用于识别各测试案例数据对应的案例值中的变量;其中,所述变量包括公共变量及引用变量;

变量赋值单元22,用于获取所述公共变量及引用变量对应的预设变量值,并根据所述预设变量值对对应的公共变量及引用变量进行赋值。

作为本发明的一个实施例,如图10所示,所述测试数据模块30包括:

动态变量单元31,用于根据赋值后的变量,获取预设的报文数据模板中的基础数据,并确定所述基础数据中的动态变量;

测试数据单元32,用于对各测试案例数据对应的键值与所述动态变量进行关联,并将关联后的动态变量替换为赋值后的变量,生成待推送测试数据。

作为本发明的一个实施例,如图11所示,所述测试执行模块40包括:

数据获取单元41,用于根据各测试案例数据对应的键值及赋值后的变量,获取环境配置文件及预设断言规则;

环境检查单元42,用于利用所述环境配置文件进行环境检查,得到环境检查结果;

测试执行单元43,用于若所述环境检查结果为检查通过,则根据所述待推送测试数据及所述预设断言规则进行断言执行,得到断言执行结果,并根据所述断言执行结果进行结果回写,以完成测试脚本开发。

基于与上述一种测试脚本开发方法相同的申请构思,本发明还提供了上述一种测试脚本开发装置。由于该一种测试脚本开发装置解决问题的原理与一种测试脚本开发方法相似,因此该一种测试脚本开发装置的实施可以参见一种测试脚本开发方法的实施,重复之处不再赘述。

本发明通过对测试场景进行抽象,采取简便配置化的方式开展脚本开发,降低了对测试人员编码能力要求,确保了开发的质量及时效处于可控要求,并具有较为广泛的前置测试通用性,可以满足复杂流程业务测试场景及清算业务测试的需求。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

如图12所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图12中所示的所有部件;此外,电子设备600还可以包括图12中没有示出的部件,可以参考现有技术。

如图12所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 测试脚本开发方法及装置
  • AS3.0脚本开发的SWF文件批量加密方法及装置
技术分类

06120112941948