CN111694751A - 一种自动化测试方法及*** - Google Patents
一种自动化测试方法及*** Download PDFInfo
- Publication number
- CN111694751A CN111694751A CN202010617588.0A CN202010617588A CN111694751A CN 111694751 A CN111694751 A CN 111694751A CN 202010617588 A CN202010617588 A CN 202010617588A CN 111694751 A CN111694751 A CN 111694751A
- Authority
- CN
- China
- Prior art keywords
- service
- layer
- test
- tested
- keyword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 394
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000006978 adaptation Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 33
- 230000009471 action Effects 0.000 claims description 25
- 239000000284 extract Substances 0.000 claims description 8
- 238000010998 test method Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000010006 flight Effects 0.000 description 6
- 241000287107 Passer Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种自动化测试方法及***,该方法为:获取待测业务对应的测试需求和测试数据,以及确定与待测业务对应的被测对象***;确定预设的关键字库中与测试需求对应的多个关键字,以及确定测试数据中与每个关键字对应的测试参数;利用每个关键字和每个测试参数,构建测试用例;解析测试用例并将解析结果发送给被测对象***,使被测对象***执行测试用例。本方案中,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,调用被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种自动化测试方法及***。
背景技术
随着民航信息***的发展,民航业务逐渐从大型主机***向开放式***转移,同一民航业务可在不同的应用***中实现。在启用应用***之前,需要对应用***进行测试。
目前对应用***进行测试的方式为:设计一套测试用例,通过测试用例对应用***进行测试。但是由于不同的应用***之间的差异性,不同的应用***实现同一民航业务的方式不同。也就是说,同一套测试用例不能适用于不同的应用***,而是针对每一应用***都设计与之对应的测试用例,需要花费大量的时间和设计成本,测试效率较低和测试成本较高。
发明内容
有鉴于此,本发明实施例提供一种自动化测试方法及***,以解决目前对应用***进行测试的方式存在的测试效率较低和测试成本较高等问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种自动化测试方法,所述方法应用于自动化测试***,所述自动化测试***包括测试用例层、关键字层、业务描述层、业务实现层和接口适配层,所述方法包括:
测试用例层获取待测业务对应的测试需求和测试数据,以及确定与所述待测业务对应的被测对象***;
关键字层确定预设的关键字库中与所述测试需求对应的多个关键字,以及确定所述测试数据中与每个所述关键字对应的测试参数,所述关键字库根据所述待测业务对应的自动化测试范围信息、业务属性集和流程动作集所确定;
业务描述层利用每个所述关键字和每个所述测试参数,构建测试用例;
所述业务描述层结合业务实现层解析所述测试用例,所述业务实现层通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例。
优选的,所述关键字层确定所述关键字库的过程,包括:
关键字层根据所述待测业务的自动化测试范围信息,确定所述待测业务对应的多个待测业务需求点;
针对每一所述待测业务需求点,所述关键字层从所述待测业务的业务属性集中确定与所述待测业务需求点对应的业务属性;
针对每一所述待测业务需求点,所述关键字层利用所述待测业务需求点对应的业务属性,从所述待测业务的流程动作集中确定与所述待测业务需求点对应的关键字;
所述关键字层将每一所述待测业务需求点对应的关键字添加至关键字库中。
优选的,所述业务描述层结合业务实现层解析所述测试用例,所述业务实现层通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例,包括:
所述业务描述层解析所述测试用例,得到所述测试用例对应的多行解析信息;
针对每一行所述解析信息,所述业务描述层提取所述解析信息对应的所述关键字和所述测试参数;
针对每一行所述解析信息,所述业务描述层处理所述解析信息对应的所述关键字和所述测试参数,并将处理结果发送给业务实现层;
针对每一行所述解析信息,所述业务实现层将所述解析信息对应的所述处理结果发送给接口适配层,使所述接口适配层解析所述处理结果得到代码段并将所述代码段发送给所述被测对象***,使所述被测对象***执行所述代码段。
优选的,所述业务描述层解析所述测试用例之前,还包括:
所述业务描述层初始化所述测试用例对应的底层执行序列文件。
优选的,所述使所述被测对象***执行所述代码段之后,还包括:
所述业务实现层通过所述接口适配层接收所述被测对象***反馈的执行结果,所述执行结果为所述被测对象***执行所述解析信息对应的代码段所得到的结果。
本发明实施例第二方面公开一种自动化测试***,所述***包括:测试用例层、关键字层、业务描述层、业务实现层和接口适配层;
所述测试用例层,用于获取待测业务对应的测试需求和测试数据,以及确定与所述待测业务对应的被测对象***;
所述关键字层,用于确定预设的关键字库中与所述测试需求对应的多个关键字,以及确定所述测试数据中与每个所述关键字对应的测试参数,所述关键字库根据所述待测业务对应的自动化测试范围信息、业务属性集和流程动作集所确定;
所述业务描述层,用于利用每个所述关键字和每个所述测试参数,构建测试用例;
所述业务描述层,还用于结合业务实现层解析所述测试用例;
所述业务实现层,用于通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例。
优选的,用于确定所述关键字库的所述关键字层,包括:
第一确定单元,用于根据所述待测业务的自动化测试范围信息,确定所述待测业务对应的多个待测业务需求点;
第二确定单元,用于针对每一所述待测业务需求点,从所述待测业务的业务属性集中确定与所述待测业务需求点对应的业务属性;
第三确定单元,用于针对每一所述待测业务需求点,利用所述待测业务需求点对应的业务属性,从所述待测业务的流程动作集中确定与所述待测业务需求点对应的关键字;
添加单元,用于将每一所述待测业务需求点对应的关键字添加至关键字库中。
优选的,用于结合业务实现层解析所述测试用例的所述业务描述层包括:
解析单元,用于解析所述测试用例,得到所述测试用例对应的多行解析信息;
提取单元,用于针对每一行所述解析信息,提取所述解析信息对应的所述关键字和所述测试参数;
处理单元,用于针对每一行所述解析信息,处理所述解析信息对应的所述关键字和所述测试参数,并将处理结果发送给业务实现层;
相应地,
所述业务实现层,用于针对每一行所述解析信息,将所述解析信息对应的所述处理结果发送给接口适配层,使所述接口适配层解析所述处理结果得到代码段并将所述代码段发送给所述被测对象***,使所述被测对象***执行所述代码段。
优选的,所述业务描述层还包括:
初始化单元,用于初始化所述测试用例对应的底层执行序列文件。
优选的,所述业务实现层还用于:通过所述接口适配层接收所述被测对象***反馈的执行结果,所述执行结果为所述被测对象***执行所述解析信息对应的代码段所得到的结果。
基于上述本发明实施例提供的一种自动化测试方法及***,该方法为:测试用例层获取待测业务对应的测试需求和测试数据,以及确定与待测业务对应的被测对象***;关键字层确定预设的关键字库中与测试需求对应的多个关键字,以及确定测试数据中与每个关键字对应的测试参数;业务描述层利用每个关键字和每个测试参数,构建测试用例;业务描述层结合业务实现层解析测试用例,业务实现层通过接口适配层将解析结果发送给被测对象***,使被测对象***执行所述测试用例。本方案中,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的自动化测试***的架构示意图;
图2为本发明实施例提供的一种自动化测试方法的流程图;
图3为本发明实施例提供的确定关键字库的流程图;
图4为本发明实施例提供的调用被测对象***执行测试用例的流程图;
图5为本发明实施例提供的创建PNR的测试用例的示意图;
图6为本发明实施例提供的调用eTerm创建PNR的示意图;
图7为本发明实施例提供的调用IBE创建PNR的示意图;
图8为本发明实施例提供的一种自动化测试***的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前对应用***进行测试时,由于不同的应用***之间的差异性,同一套测试用例不能适用于不同的应用***,而是针对每一应用***都设计与之对应的测试用例,需要花费大量的时间和设计成本,测试效率较低和测试成本较高。
因此,本发明实施例提供一种自动化测试方法及***,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,调用被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,以提高测试效率和降低测试成本。
需要说明的是,为更好解释说明本发明实施例中所涉及的术语,通过以下内容进行解释。
PNR:旅客订座记录(Passenger Name Record),用于反映旅客的航程、航班座位占用的数量和旅客信息。
IBE:互联网预订业务接口,主要功能为用于协助航空公司实现互联网客票预订销售。
eTerm:仿真终端接入***,向航空公司和机场等用户提供访问eTerm使用方的业务信息等功能。
可以理解的是,本发明实施例所涉及的自动化测试方法应用于自动化测试***,该自动化测试***至少包括测试用例层、关键字层、业务描述层、业务实现层和接口适配层,为更好理解以下实施例中关于自动化测试方法的内容,通过图1对自动化测试***的架构进行举例说明。
参见图1,示出了本发明实施例提供的自动化测试***的架构示意图,该自动化测试***包括测试用例层100、关键字层200、业务描述层300、业务实现层400和接口适配层500。
其中,该接口适配层500与包含多个被测对象***(比如IBE和eTerm等***)的***调用层600连接,实现自动化测试***与被测对象***之间的信息交互。
需要说明的是,测试用例由多个与测试需求(测试意图)相关的关键字和测试数据(包含与关键字对应的测试参数)构成,测试用例即为一个多行列的二维表结构,该二维表结构的横向表示与测试需求相关的测试数据,列向表示测试需求对应的业务流程。
在关键字层200中,预先设置关键字库,该关键字库中的关键字为根据预设的业务规则进行设置。业务规则用于表达业务的数据结构,根据数据结构的变化体现业务的流程变化。
为更好解释说明数据结构和关键字的具体内容,通过数据结构ticket_info 和与其相关的关键字进行举例说明,数据结构ticket_info和与其相关的关键字的具体内容参见表1。
表1:
可以理解的是,上述表1中的内容仅用于举例说明,还可根据测试用例执行的前置条件和后置条件设置对应的关键词,例如“登录***”和“登出***”,又例如“登录代理”和“登出代理”,又例如“连接数据库”和“断开数据库”。
业务描述层300连接关键字层200和业务实现层400,业务描述层300接收关键字层200传输的关键字对应的测试参数。
业务实现层400连接业务描述层300和接口适配层500,用于处理业务描述层300所传输的数据。
接口适配层500连接业务实现层400和***调用层600,可以理解的是,***调用层600中即为本发明实施例中涉及的被测对象***(比如IBE和eTerm),接口适配层500提供了多个被测对象***的调用接口,通过接口即可调用被测对象***,接口适配层500将业务实现层400和***调用层600之间隔离,提高自动化测试***的安全性。
参见图2,示出了本发明实施例提供的一种自动化测试方法的流程图,该自动化测试方法适用于自动化测试***,自动化测试***包括测试用例层、关键字层、业务描述层、业务实现层和接口适配层,该自动化测试方法包括以下步骤:
步骤S201:测试用例层获取待测业务对应的测试需求和测试数据,以及确定与待测业务对应的被测对象***。
预先确定待测业务、待测业务对应的测试需求、待测业务对应的测试数据和被测对象***(需要进行测试的***)。在具体实现步骤S201的过程中,测试用例层获取该测试需求和测试数据,以及确定该被测对象***。
步骤S202:关键字层确定预设的关键字库中与测试需求对应的多个关键字,以及确定测试数据中与每个关键字对应的测试参数。
需要说明的是,测试用例基于与测试需求相关的关键字和与关键字相关的测试参数构建,预先建立关键字库,该关键字库包含多个关键字。
可以理解的是,关键字库是随着不同的测试需求不断扩展的,为保证关键字库中的关键字能满足待测业务对应的测试需求,需要根据待测业务对应的测试需求扩展关键字库。
具体根据待测业务对应的测试需求扩展关键字库的方式为:根据待测业务对应的自动化测试范围信息、业务属性集和流程动作集,确定满足待测业务对应的测试需求的关键字库。
在具体实现步骤S202的过程中,关键字层根据待测业务的测试需求,从关键字库(满足待测业务对应的测试需求的关键字库)中提取与测试需求对应的多个关键字,以及从测试数据中确定与每个关键字(与测试需求对应的关键字)对应的测试参数。
步骤S203:业务描述层利用每个关键字和每个测试参数,构建测试用例。
在具体实现步骤S203的过程中,业务描述层利用关键字层确定的每个关键字(与测试需求对应的关键字)和每个测试参数(与关键字对应的测试参数),构建测试用例(以脚本的形式构建,也称为测试脚本)。
需要说明的是,在定义测试参数的数据结构时,将该测试参数的数据结构定义为被测对象***所支持的数据结构。
优选的,结合上述本发明实施例图1中所涉及的自动化测试***的架构示意图,根据业务描述层、业务实现层和接口适配层,构建基于关键字驱动的自动化测试框架,该自动化测试框架至少包括用于解析测试用例的测试驱动引擎。
该测试驱动引擎中包括根据业务描述层、业务实现层和接口适配层所构建的多个组件,该多个组件分别为:根据顶层(业务描述层)测试数据表解析测试用例的顶层驱动器(业务描述层驱动器),根据中层(业务实现层) 测试数据表解析测试用例的中层驱动器(业务实现层驱动器),根据底层(接口适配层)测试数据表解析测试用例的底层驱动器(接口适配层驱动器)。
可以理解的是,确定待测业务对应的每个关键字和每个测试参数后,根据自动化测试架构、每个关键字和每个测试参数(根据测试参数在自动化测试架构中的传递关系),构建前述涉及的顶层测试数据表、中层测试数据表和底层测试数据表。
顶层测试数据表包括待测业务的业务属性(业务属性集中的业务属性) 和中层测试数据表之间的对应关系。
中层测试数据表包括待测业务的业务属性对应的业务流程中的流程动作 (流程动作集中的流程动作)与底层测试数据表之间的对应关系。
底层测试数据表中包括测试参数与***调用层之间的调用关系,该测试参数指示待测业务的特定动作逻辑中的可配参数。
步骤S204:业务描述层结合业务实现层解析测试用例,业务实现层通过接口适配层将解析结果发送给被测对象***,使被测对象***执行测试用例。
可以理解的是,将测试用例载入上述步骤S203中所涉及的预先构建的基于关键字驱动的自动化测试框架。对于测试用例中的每一个关键字,通过该自动化测试框架的测试驱动引擎依次调用顶层驱动器、中层驱动器和底层驱动器对该关键字进行处理,将处理结果转化为被测对象***支持的调用方式与被测对象***进行交互,使被测对象***执行该测试用例。
在具体实现步骤S204的过程中,业务描述层结合业务实现层解析测试用例,得到对应的解析结果。业务实现层利用接口适配层将解析结果(转化为被测对象***支持的调用方式)发送给被测对象***,使被测对象***执行测试用例。
可以理解的是,结合上述本发明实施例图1中所示出的内容,在构建测试用例和将测试用例发送给被动对象***执行的过程中,数据传递的方向依次为测试用例层、关键字层、业务描述层、业务实现层、接口适配层和***调用层。
需要说明的是,被测对象***执行测试用例后,会反馈对应的执行结果,执行结果的数据传递方向依次为:***调用层、接口适配层、业务实现层、业务描述层、关键字层和测试用例层。
在本发明实施例中,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
上述本发明实施例图2步骤S202中涉及的确定满足待测业务对应的测试需求的关键字库的过程,参见图3,示出了本发明实施例提供的确定关键字库的流程图,包括以下步骤:
步骤S301:关键字层根据待测业务的自动化测试范围信息,确定待测业务对应的多个待测业务需求点。
在具体实现步骤S301的过程中,预先确定待测业务对应的自动化测试范围信息。确定自动化测试范围信息后,关键字层从自动化测试范围信息中提取待测业务对应的多个待测业务需求点。
步骤S302:针对每一待测业务需求点,关键字层从待测业务的业务属性集中确定与待测业务需求点对应的业务属性。
在具体实现步骤S302的过程中,针对每一待测业务需求点,关键字层从待测业务的业务属性集中确定与该待测业务需求点对应的业务属性,并根据所确定的业务属性构建与待测业务对应的数据结构。
需要说明的是,业务属性是从待测业务中抽象出的数据信息,其涵盖软件需求中多个需求项点的逻辑描述,待测业务需求点包括多个(1个及1个以上)业务属性。
进一步需要说明的是,数据结构是用于描述业务场景的表达方式。
步骤S303:针对每一待测业务需求点,关键字层利用待测业务需求点对应的业务属性,从待测业务的流程动作集中确定与待测业务需求点对应的关键字。
需要说明的是,流程动作集中包括流程动作(业务流程动作)对应的关键字,该关键字为与其对应的流程动作所必须的动作描述,流程动作的定义需要涵盖待测业务对应的所有能涉及到的可测试点和测试类型。
在具体实现步骤S303的过程中,针对每一待测业务需求点,关键字层从待测业务的流程动作集中提取与该待测业务需求点的业务属性相关的关键字。
例如:一名旅客可能会预订多个航班(待测业务需求点的业务属性)或可能会取消个别航班,预订多个航班所对应的关键字为添加客票的航班,取消个别航班的关键字为删除客票的航班。
步骤S304:关键字层将每一待测业务需求点对应的关键字添加至关键字库中。
在具体实现步骤S304的过程中,针对每一待测业务需求点,关键字层将该待测业务需求点的所有业务属性和关键字进行优化合并,并将优化合并后的结果添加至关键字库中。
可以理解的是,根据上述步骤S301至步骤S304中的内容,将待测业务的每一待测业务需求点对应的关键字都添加至关键字库中,使关键字库中的关键字能覆盖待测业务的自动化测试范围信息中的所有待测业务需求点。
在本发明实施例中,根据待测业务的自动化测试范围信息、业务属性集和流程动作集,扩展关键字库中的关键字,使关键字库能覆盖待测业务的自动化测试范围信息中的所有待测业务需求点,保证关键字库能满足待测业务的测试过程,提高测试的稳定性和准确性。
上述本发明实施例图2步骤S204中涉及的利用基于关键字驱动的自动化测试框架对测试用例进行处理的过程,参见图4,示出了本发明实施例提供的调用被测对象***执行测试用例的流程图,包括以下步骤:
步骤S401:业务描述层解析测试用例,得到测试用例对应的多行解析信息。
由上述本发明实施例图2步骤S204中的内容可知,将测试用例载入基于关键字驱动的自动化测试框架中,优选的,在执行步骤S401之前,业务描述层初始化测试用例对应的底层执行序列文件。
需要说明的是,基于关键字驱动的自动化测试框架在处理测试用例时,是通过逐行处理的方式对测试用例进行处理,在具体实现步骤S401的过程中,业务描述层解析测试用例,得到测试用例对应的多行解析信息
步骤S402:针对每一行解析信息,业务描述层提取解析信息对应的关键字和测试参数。
在具体实现步骤S402的过程中,针对每一行解析信息,业务描述层提取该行解析信息对应的关键字和测试参数。
步骤S403:针对每一行解析信息,业务描述层处理解析信息对应的关键字和测试参数,并将处理结果发送给业务实现层。
在具体实现步骤S403的过程中,针对每一行解析信息,业务描述层根据该行解析信息对应的关键字和测试参数,初始化或更新数据结构(初始化或更新后的数据结构即为处理结果),并将处理结果(初始化或更新后的数据结构)发送给业务实现层。
针对每一行解析信息,具体执行初始化数据结构还是执行更新数据结构,需根据该行解析信息对应的关键字和测试参数确定。
比如:根据前述表1中的内容可知,以“开始”开头(仅用于举例)的关键字用于初始化数据结构,以“配置”、“添加”和“删除”(仅用于举例) 的关键字用于更新数据结构。
步骤S404:针对每一行解析信息,业务实现层将解析信息对应的处理结果发送给接口适配层,使接口适配层解析处理结果得到代码段并将代码段发送给被测对象***,使被测对象***执行代码段。
在具体实现步骤S404的过程中,针对每一行解析信息,业务实现层提取该解析信息对应的处理结果中的预设字段,将该预设字段发送给接口适配层,接口适配层以被测对象***支持的调用方式(比如IBE是通过调用接口的方式调用,eTerm是以指定格式要求的指令串调用)将该预设字段解析成能被被测对象***执行的代码段,接口适配层将该代码段发送给被测对象***,使被测对象***执行该代码段。
通过上述步骤S401至步骤S404中的内容,逐一提取每一行解析信息对应的关键字和测试参数,在提取该行解析信息对应的关键字和测试参数后,对该行解析信息进行处理并将处理结果对应的代码段发送给被测对象***执行,使被测对象***逐行执行测试用例。
优选的,针对每一行解析信息,将该行解析信息对应的代码段发送给被测对象***执行后,业务实现层通过接口适配层接收被测对象***反馈的执行结果,执行结果为被测对象***执行解析信息对应的代码段所得到的结果。
相应的,针对每一行解析信息,业务实现层通过接口适配层接收该行解析信息对应的执行结果后,业务实现层通过业务描述层和关键字层将该执行结果传输至测试用例层。也就是说,针对每一行解析信息,该行解析信息的执行结果的数据传输方向依次为:***调用层、接口适配层、业务实现层、业务描述层、关键字层和测试用例层。
需要说明的是,根据上述内容可知,被测对象***是逐行执行测试用例中的解析信息对应的代码段,并且被测对象***每执行完一行解析信息对应的代码段后会反馈该行解析信息对应的执行结果,可以理解的是,被测对象***所反馈的执行结果可能作为测试用例中其它未处理的解析信息对应的测试参数。
为更好解释说明上述步骤S401至步骤S404中的内容,通过图5至图7对调用被测对象***执行测试用例的过程进行举例说明,需要说明的是,图5至图 7仅用于举例说明。
需要说明的是,图5至图7的应用场景为:张三需要乘坐4月23日CA1831 航班的Y舱从北京(城市三字码为PEK)飞往上海(城市三字码为SHA)的飞机,需要为张三预订一张机票,张三的联系方式为XXXYYYYQQQQ,身份证号为XXXXXXYYYYMMDDQQQZ。
参见图5,示出了本发明实施例提供的创建PNR的测试用例的示意图,在图5中,序号1至序号14所对应的关键字表示了创建PNR的测试用例的业务流程,通过以下内容对序号1至序号14对应的关键字和测试参数进行说明。
序号1:关键字为“开始配置客票”,该关键字用于初始化数据结构 ticket_info。
序号2:关键字为“配置客票类型”,测试参数为“国内”,将“国内”赋值给ticket_info里的type字段。
需要说明的,配置旅客的相关信息为创建ticket_info里的passenger数据结构,具体内容为序号3至序号7中的内容。
序号3:关键字为“开始配置旅客”,初始化数据结构ticket_info.passenger。
序号4:关键字为“配置姓名”,将测试参数“张三”赋值给passenger数据结构里与姓名相关的字段。
序号5:关键字为“配置旅客身份证”,将测试参数“XXXXXXYYYYMMDDQQQZ”赋值给passenger数据结构里与证件相关的字段。
序号6:关键字为“添加联系方式”,将测试参数“XXXYYYYQQQQ”赋值给passenger数据结构里与联系方式相关的字段。
序号7:关键字为“完成配置旅客”,指示与旅客信息相关的数据结构的创建完成,并返回旅客信息结构(该业务流程的执行结果),该执行结果为序号7中的“${旅客信息}”。
需要说明的是,配置航班信息为创建ticket_info.flight数据结构,具体包括序号8和序号9中的内容。
序号8:关键字为“搜索指定航班”,保证4月23日从北京飞往上海的CA1831 航班的Y舱是可以预订的,即测试参数为“PEK”和“SHA”,返回航班查询结果(该业务流程的执行结果),执行结果为序号8中的“${可用航班}”。
序号9:关键字为“配置客票的航班”,测试参数为序号8所返回的航班查询结果(即测试参数为“${可用航班}”),将测试参数“${可用航班}”作为“配置客票的航班”的输入参数,用于flight数据结构的创建。
需要说明的是,配置运价信息用于创建ticket_info.fare数据结构,具体包括配置支付方式、配置币种和序号10中的配置运行模式等内容,在此仅通过序号10进行举例,
序号10:关键字为“配置运价模式”,测试参数为“M”,将测试参数“M”赋值给fare数据结构中与“配置运价模式”相关的字段。
需要说明的是,完成订票包括序号11至序号14的内容。
序号11:关键字为“提交航班信息”。
序号12:关键字为“提交旅客信息”。
序号13:关键字为“提交运价信息”。
序号14:关键字为“提交订票信息”,反馈执行结果(序号14中的“${pnr_number}”)。
可以理解的是,上述序号1至序号14为测试用例中的内容,根据测试用例和被测对象***的实际情况,将该测试用例的ticket_info数据结构转换为支持被测对象***调用的数据结构。
例如:如图6示出的调用eTerm创建PNR的示意图,将测试用例的ticket_info 数据结构转换为能够被eTerm识别的主机指令,使eTerm执行该测试用例,完成PNR的创建。
又例如:如图7示出的调用IBE创建PNR的示意图,将测试用例的ticket_info 数据结构转换为能够被IBE调用的数据结构,使IBE执行该测试用例,完成PNR 的创建。
在本发明实施例中,以被测对象支持的调用方式,解析测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
与上述本发明实施例提供的一种自动化测试方法相对应,参见图8,本发明实施例还提供一种自动化测试***的结构框图,该自动化测试***包括:测试用例层801、关键字层802、业务描述层803、业务实现层804和接口适配层805;
测试用例层801,用于获取待测业务对应的测试需求和测试数据,以及确定与待测业务对应的被测对象***。
关键字层802,用于确定预设的关键字库中与测试需求对应的多个关键字,以及确定测试数据中与每个关键字对应的测试参数,关键字库根据待测业务对应的自动化测试范围信息、业务属性集和流程动作集所确定。
业务描述层803,用于利用每个关键字和每个测试参数,构建测试用例。
业务描述层803,还用于结合业务实现层804解析所述测试用例。
业务实现层804,用于通过接口适配层805将解析结果发送给被测对象***,使被测对象***执行测试用例。
在本发明实施例中,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
优选的,结合图8示出的内容,用于确定关键字库的关键字层802包括:第一确定单元、第二确定单元、第三确定单元和添加单元,各个单元的执行原理如下:
第一确定单元,用于根据待测业务的自动化测试范围信息,确定待测业务对应的多个待测业务需求点。
第二确定单元,用于针对每一待测业务需求点,从待测业务的业务属性集中确定与待测业务需求点对应的业务属性。
第三确定单元,用于针对每一待测业务需求点,利用待测业务需求点对应的业务属性,从待测业务的流程动作集中确定与待测业务需求点对应的关键字。
添加单元,用于将每一待测业务需求点对应的关键字添加至关键字库中。
在本发明实施例中,根据待测业务的自动化测试范围信息、业务属性集和流程动作集,扩展关键字库中的关键字,使关键字库能覆盖待测业务的自动化测试范围信息中的所有待测业务需求点,保证关键字库能满足待测业务的测试过程,提高测试的稳定性和准确性。
优选的,结合图8示出的内容,用于结合业务实现层解析测试用例的业务描述层803包括:解析单元、提取单元和处理单元,各个单元的执行原理如下:
解析单元,用于解析测试用例,得到测试用例对应的多行解析信息。
提取单元,用于针对每一行解析信息,提取解析信息对应的关键字和测试参数。
处理单元,用于针对每一行解析信息,处理解析信息对应的关键字和测试参数,并将处理结果发送给业务实现层804。
相应地,
业务实现层804,用于针对每一行解析信息,将解析信息对应的处理结果发送给接口适配层805,使接口适配层805解析处理结果得到代码段并将代码段发送给被测对象***,使被测对象***执行代码段。
优选的,业务描述层803还包括:
初始化单元,用于初始化测试用例对应的底层执行序列文件。
优选的,业务实现层804还用于:通过接口适配层接收被测对象***反馈的执行结果,执行结果为被测对象***执行解析信息对应的代码段所得到的结果。
在本发明实施例中,以被测对象支持的调用方式,解析测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
综上所述,本发明实施例提供一种自动化测试方法及***,预先设置关键字库,从关键字库中获取与测试需求对应的关键字,以及从测试数据中获取与关键字对应的测试参数。利用关键字和测试参数构建测试用例,将解析测试用例得到的解析结果发送给被测对象***,使被测对象***执行测试用例,不需要针对不同的应用***都设计与之对应的测试用例,提高测试效率和降低测试成本。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种自动化测试方法,其特征在于,所述方法应用于自动化测试***,所述自动化测试***包括测试用例层、关键字层、业务描述层、业务实现层和接口适配层,所述方法包括:
测试用例层获取待测业务对应的测试需求和测试数据,以及确定与所述待测业务对应的被测对象***;
关键字层确定预设的关键字库中与所述测试需求对应的多个关键字,以及确定所述测试数据中与每个所述关键字对应的测试参数,所述关键字库根据所述待测业务对应的自动化测试范围信息、业务属性集和流程动作集所确定;
业务描述层利用每个所述关键字和每个所述测试参数,构建测试用例;
所述业务描述层结合业务实现层解析所述测试用例,所述业务实现层通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例。
2.根据权利要求1所述的方法,其特征在于,所述关键字层确定所述关键字库的过程,包括:
关键字层根据所述待测业务的自动化测试范围信息,确定所述待测业务对应的多个待测业务需求点;
针对每一所述待测业务需求点,所述关键字层从所述待测业务的业务属性集中确定与所述待测业务需求点对应的业务属性;
针对每一所述待测业务需求点,所述关键字层利用所述待测业务需求点对应的业务属性,从所述待测业务的流程动作集中确定与所述待测业务需求点对应的关键字;
所述关键字层将每一所述待测业务需求点对应的关键字添加至关键字库中。
3.根据权利要求1所述的方法,其特征在于,所述业务描述层结合业务实现层解析所述测试用例,所述业务实现层通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例,包括:
所述业务描述层解析所述测试用例,得到所述测试用例对应的多行解析信息;
针对每一行所述解析信息,所述业务描述层提取所述解析信息对应的所述关键字和所述测试参数;
针对每一行所述解析信息,所述业务描述层处理所述解析信息对应的所述关键字和所述测试参数,并将处理结果发送给业务实现层;
针对每一行所述解析信息,所述业务实现层将所述解析信息对应的所述处理结果发送给接口适配层,使所述接口适配层解析所述处理结果得到代码段并将所述代码段发送给所述被测对象***,使所述被测对象***执行所述代码段。
4.根据权利要求3所述的方法,其特征在于,所述业务描述层解析所述测试用例之前,还包括:
所述业务描述层初始化所述测试用例对应的底层执行序列文件。
5.根据权利要求3所述的方法,其特征在于,所述使所述被测对象***执行所述代码段之后,还包括:
所述业务实现层通过所述接口适配层接收所述被测对象***反馈的执行结果,所述执行结果为所述被测对象***执行所述解析信息对应的代码段所得到的结果。
6.一种自动化测试***,其特征在于,所述***包括:测试用例层、关键字层、业务描述层、业务实现层和接口适配层;
所述测试用例层,用于获取待测业务对应的测试需求和测试数据,以及确定与所述待测业务对应的被测对象***;
所述关键字层,用于确定预设的关键字库中与所述测试需求对应的多个关键字,以及确定所述测试数据中与每个所述关键字对应的测试参数,所述关键字库根据所述待测业务对应的自动化测试范围信息、业务属性集和流程动作集所确定;
所述业务描述层,用于利用每个所述关键字和每个所述测试参数,构建测试用例;
所述业务描述层,还用于结合业务实现层解析所述测试用例;
所述业务实现层,用于通过接口适配层将解析结果发送给所述被测对象***,使所述被测对象***执行所述测试用例。
7.根据权利要求6所述的***,其特征在于,用于确定所述关键字库的所述关键字层,包括:
第一确定单元,用于根据所述待测业务的自动化测试范围信息,确定所述待测业务对应的多个待测业务需求点;
第二确定单元,用于针对每一所述待测业务需求点,从所述待测业务的业务属性集中确定与所述待测业务需求点对应的业务属性;
第三确定单元,用于针对每一所述待测业务需求点,利用所述待测业务需求点对应的业务属性,从所述待测业务的流程动作集中确定与所述待测业务需求点对应的关键字;
添加单元,用于将每一所述待测业务需求点对应的关键字添加至关键字库中。
8.根据权利要求6所述的***,其特征在于,用于结合业务实现层解析所述测试用例的所述业务描述层包括:
解析单元,用于解析所述测试用例,得到所述测试用例对应的多行解析信息;
提取单元,用于针对每一行所述解析信息,提取所述解析信息对应的所述关键字和所述测试参数;
处理单元,用于针对每一行所述解析信息,处理所述解析信息对应的所述关键字和所述测试参数,并将处理结果发送给业务实现层;
相应地,
所述业务实现层,用于针对每一行所述解析信息,将所述解析信息对应的所述处理结果发送给接口适配层,使所述接口适配层解析所述处理结果得到代码段并将所述代码段发送给所述被测对象***,使所述被测对象***执行所述代码段。
9.根据权利要求8所述的***,其特征在于,所述业务描述层还包括:
初始化单元,用于初始化所述测试用例对应的底层执行序列文件。
10.根据权利要求8所述的***,其特征在于,所述业务实现层还用于:通过所述接口适配层接收所述被测对象***反馈的执行结果,所述执行结果为所述被测对象***执行所述解析信息对应的代码段所得到的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010617588.0A CN111694751A (zh) | 2020-06-30 | 2020-06-30 | 一种自动化测试方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010617588.0A CN111694751A (zh) | 2020-06-30 | 2020-06-30 | 一种自动化测试方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111694751A true CN111694751A (zh) | 2020-09-22 |
Family
ID=72484598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010617588.0A Pending CN111694751A (zh) | 2020-06-30 | 2020-06-30 | 一种自动化测试方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694751A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667494A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种基于配置表的汽车uds自动化测试方法,***以及存储介质 |
CN113297084A (zh) * | 2021-05-27 | 2021-08-24 | 上海移远通信技术股份有限公司 | 一种测试方法、***、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068927A (zh) * | 2015-08-04 | 2015-11-18 | 株洲南车时代电气股份有限公司 | 基于关键字驱动的城轨传动控制单元自动化测试方法 |
-
2020
- 2020-06-30 CN CN202010617588.0A patent/CN111694751A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068927A (zh) * | 2015-08-04 | 2015-11-18 | 株洲南车时代电气股份有限公司 | 基于关键字驱动的城轨传动控制单元自动化测试方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667494A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种基于配置表的汽车uds自动化测试方法,***以及存储介质 |
CN113297084A (zh) * | 2021-05-27 | 2021-08-24 | 上海移远通信技术股份有限公司 | 一种测试方法、***、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190318309A1 (en) | Cargo logistics platform | |
CN105487931B (zh) | ***间的旅客信息实时同步方法及装置 | |
WO2016100722A1 (en) | Automatic conversion of formatted travel information | |
CN111694751A (zh) | 一种自动化测试方法及*** | |
CN109460841A (zh) | 用户开户方法、***及存储介质 | |
CN106204190B (zh) | 信息处理方法、终端及服务器 | |
CN111176627A (zh) | 一种基于微服务的前后端分离的装置与方法 | |
CN108230218B (zh) | 多人值机的推送方法、***、存储介质和电子设备 | |
CN112651671A (zh) | 一种航班舱位调整方法及相关设备 | |
US20080300926A1 (en) | Method and system for allowing user check-in | |
CN111950984A (zh) | 一种自动开放离港值机的方法及装置 | |
AU2013211481B2 (en) | Smart parsing of data | |
US9456042B2 (en) | External device interface abstraction | |
CN107767225B (zh) | 服务推荐***和方法 | |
CN113139889A (zh) | 航延服务推荐的方法、装置、电子设备及存储介质 | |
CN109784184A (zh) | 行李托运和认领方法及装置、存储介质、电子设备 | |
CN113139888A (zh) | 旅客航延服务智能推荐的方法及装置 | |
EP2293190A2 (en) | Remote customisation module and system comprising said module | |
CN112231412B (zh) | 一种信息同步更新方法及装置 | |
CN103403714A (zh) | 处理复合查询的***和方法 | |
KR20210117039A (ko) | 여행 일정표 제공 시스템 및 방법 | |
CN110335016A (zh) | 一种分布式细胞精益智能制造管理*** | |
CN117112065B (zh) | 大模型插件调用方法、装置、设备及介质 | |
CN115495031B (zh) | 一种实现全自动无人值守行程单连续打印的方法和*** | |
CN114385054B (zh) | 表单填写方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200922 |
|
RJ01 | Rejection of invention patent application after publication |