br>[0049]所述脚本实体由存储于API接口参数内的XML报文和从脚本配置文件中获取的脚本模板基础元素生成。
【附图说明】
[0050]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051]图1为本发明实施例提供的测试脚本生成方法的流程图;
[0052]图2为本发明实施例提供的测试脚本生成方法中生成交易报文的流程图;
[0053]图3为本发明实施例提供的测试脚本生成方法中自动参数化的流程图;
[0054]图4为本发明实施例提供的测试脚本生成方法所应用的一种场景的示意图;
[0055]图5和图6为本发明实施例提供的测试脚本生成装置的结构示意图。
【具体实施方式】
[0056]为了方便读者理解,下面对本文所用到的一些专业术语进行解释说明:
[0057]性能测试:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
[0058]测试脚本:指一个特定测试的一系列指令所形成的指令集,可以被测试工具所执行。
[0059]交易码:根据银行系统建模特性,每个系统所执行的交易分别用交易码进行唯一标识,即每个交易码唯一对应一个交易行为。
[0060]数据字典:指对数据的数据项、数据结构、数据流、数据存储、外部实体等进行详细的定义和描述。
[0061]API Applicat1n Programming Interface,即应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
[0062]正如前文【背景技术】所说,当前各大银行的IT系统数量繁多且采用的软硬件平台种类繁杂,并且IT系统数量呈逐年增加趋势。现有IT系统所采用的通信协议主要有Http通信协议,Socket通信协议和基于Tuxedo中间件的WSL通信协议。这意味着,依照现有的主要由人工编撰测试脚本的方式,测试人员需要熟知各种通信协议的规范和特点,然后针对各种通信协议的规范和特点有针对性地编撰测试脚本,开发周期较长。由此,本申请发明人通过大量的实验和研究,包括对当前银行的数据字典进行广泛深入的调研和总结,了解了不同平台、不同系统及不同通信协议报文之间的共同点和差异性,以及,各种目标测试工具(例如Load Runner)的协议规范和特点,找到了一种能够自动生成测试脚本的方案。
[0063]该方案通过获取匹配用户所指定交易码的交易报文(该报文由数据字典中对应该交易码的交易相关数据组合形成,所述交易相关数据用于描述完成所述交易码所指定交易的规则和内容);从多种协议脚本配置文件中选择与用户所指定协议相匹配的协议脚本配置文件,以及,组合所述交易报文、协议脚本配置文件以形成与用户所指定协议相匹配的协议脚本;以及,将所述协议脚本转换为具有目标测试工具的测试脚本文件属性的测试脚本。
[0064]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]请参考图1,为本方案一种实施例的流程图,包括以下步骤:
[0066]步骤S11、获取匹配用户所指定交易码的交易报文。
[0067]所述交易报文唯一对应一个交易码,用于承载该交易码所指定交易行为所需的数据(即交易相关数据),一般的,是指用于描述完成该交易行为的规则和内容。
[0068]步骤S12、从多种协议脚本配置文件中选择与用户所指定协议相匹配的协议脚本配置文件。
[0069]目前金融IT系统包括运行不同通信协议的系统,例如运行HTTP协议的系统、运行Socket协议的系统和运行Tuxedo协议的系统(即基于Tuxedo中间件的WSL服务模式的系统)。本申请预先针对金融IT系统所运行的通信协议,设置相匹配的脚本配置文件,例如配置HTTP协议脚本配置文件,Socket协议脚本配置文件和Tuxedo协议脚本配置文件。
[0070]所述脚本配置文件包含脚本的基本信息,包括服务器IP及端口号、交易成功判断符等。
[0071]步骤S13、组合所述交易报文、协议脚本配置文件以形成与用户所指定协议相匹配的协议脚本。
[0072]可以认为,协议脚本配置文件是协议脚本的基本信息,交易报文为协议脚本的主体,基本信息加上主体即形成协议脚本。
[0073]协议脚本有以下几种:
[0074]HTTP 协议脚本,包括 vuser_init()文件、act1n, c 文件和 vuser_end()文件。
[0075]Socket 协议脚本,包括 vuser_init()文件、act1n, c 文件、vuser_end()文件和data, ws 文件。
[0076]Tuxedo 协议脚本:包括 vuser_init()文件、act1n, c 文件和 vuser_end()文件。
[0077]其中,act1n, c文件是协议脚本的脚本实体,主要包含发送请求报文、获取返回报文及判断交易成功与否的基本指令。
[0078]步骤S14、将所述协议脚本转换为具有目标测试工具的测试脚本文件属性的测试脚本。
[0079]将所述协议脚本转换为具有目标测试工具的测试脚本文件属性的测试脚本的具体方式可以是:将所述协议脚本导入目标测试工具规范脚本框架(即依据目标测试工具规范设置的脚本框架),形成所述目标测试工具可执行测试脚本。
[0080]所述目标测试工具可以是Load Runner或Jmeter或者其他软件测试工具。为了避免描述过于冗长而影响理解,下面的各实施例均以所述目标测试工具为Load Runner为例进行阐述,本领域技术人员应能理解,遵从本申请的技术逻辑,在所述目标测试工具为其他软件(例如jmeter)时,只需调整细节部分,例如采用与测试工具连接的接口会有所不同,目标测试工具规范脚本框架也会有所差别,但这些差异对于本领域技术人员来说是显而易见的。
[0081]运行上述方法的机器一般是计算机。其可以通过下面几种可能的方式获取匹配用户所指定交易码的交易报文:
[0082]方式1、响应用户(即测试人员)输入的交易码,生成交易报文。
[0083]具体过程如图2所示,包括以下步骤:
[0084]步骤S21、接收用户输入的交易码。
[0085]用户通过计算机的人机交互接口,例如触摸屏、键盘或者鼠标,输入交易码。
[0086]步骤S22、从系统数据字典中读取匹配该交易码的交易相关数据。
[0087]所述数据字典包括:报文通用域字段、报文实体域字段、各域取值范围及默认值等。
[0088]本实施例可以通过HSSF (Horrible Spread Sheet Format)提供的API接口,利用HSSF work boot类对象,HSSF Sheet类对象和HSSF Cell类对象,读取Excel格式的数据字典。
[0089]所述交易相关数据可以包括接口规范、报文字段和通用域字段,这些字段大部分承载于数据字典中的报文通用域字段和报文实体域字段中,读取所述交易相关数据即是识别并读取报文通用域字段和报文实体域字段。
[0090]步骤S23、组合所述交易相关数据形成交易报文。
[0091]将步骤S22中从数据字典中读取出来的数据按照预设规则组合,形成XML交易报文。
[0092]并以字符流形式写到XXX.xml文件中,以方便下一