一种自动化软件测试方法及装置
技术领域
本发明涉及自动化测试技术领域,更具体的说,涉及一种自动化软件测试方法及装置。
背景技术
目前,业界自动化软件测试(比如,接口测试、脚本测试、多接口串联或并发测试等)方法的主要过程为:根据被测场景构造测试参数,并将包含测试参数的请求信息发送至被测服务,获取被测服务的处理结果数据并进行校验。
在对处理结果数据进行校验时,业界使用较多的静态数据校验方法为:预先设置静态测试用例的静态校验基准数据,将处理结果数据与静态校验基准数据进行比较,以判断被测服务返回的处理结果数据是否符合预期。
由于现有的自动化软件测试方法在编写静态测试用例时,需要人工针对每个静态测试用例的每个校验点均设置静态校验基准数据,需要花费大量的时间,不仅增加了静态测试用例的编写成本,而且导致自动化软件测试用例的编写效率低。
发明内容
有鉴于此,本发明公开了一种自动化软件测试方法及装置,以解决传统方案中静态测试用例的编写成本高,花费时间长,导致自动化软件测试用例的编写效率低的问题。
一种自动化软件测试方法,包括:
根据被测场景构造测试参数;
接收数据校验指令,将包含所述测试参数的请求信息发送至被测服务;
执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据;
从本地存储器中查找与所述测试用例场景对应的静态校验基准数据,其中,所述静态校验基准数据为基准服务在所述测试用例场景运行所述测试参数后生成;
将所述被校验数据与查找到的所述静态校验基准数据进行比较,得到校验结果。
可选的,所述静态校验基准数据包括:所述基准服务在所述测试用例场景运行所述测试参数生成的中间数据和处理结果数据。
可选的,所述执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据,具体包括:
执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的中间数据和处理结果数据,并将所述中间数据和所述处理结果数据作为所述被校验数据。
可选的,所述执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据,具体包括:
执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的所述处理结果数据;
根据预先设置的过滤规则,将所述处理结果数据中的非关键信息进行过滤,得到所述被校验数据。
一种自动化软件测试装置,包括:
参数构造单元,用于根据被测场景构造测试参数;
发送单元,用于接收数据校验指令,将包含所述测试参数的请求信息发送至被测服务;
获取单元,用于执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据;
查找单元,用于从本地存储器中查找与所述测试用例场景对应的静态校验基准数据,其中,所述静态校验基准数据为基准服务在所述测试用例场景运行所述测试参数后生成;
校验单元,用于将所述被校验数据与查找到的所述静态校验基准数据进行比较,得到校验结果。
可选的,所述静态校验基准数据包括:所述基准服务在所述测试用例场景运行所述测试参数生成的中间数据和处理结果数据。
可选的,所述获取单元包括:
第一数据获取子单元,用于执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的中间数据和处理结果数据,并将所述中间数据和所述处理结果数据作为所述被校验数据。
可选的,所述获取单元包括:
第一数据获取子单元,用于执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的所述处理结果数据;
过滤子单元,用于根据预先设置的过滤规则,将所述处理结果数据中的非关键信息进行过滤,得到所述被校验数据。
从上述的技术方案可知,本发明公开了一种自动化软件测试方法及装置,根据被测场景构造测试参数,在接收到数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的被校验数据,在本地存储器中查找与测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种自动化软件测试方法流程图;
图2为本发明实施例公开的一种静态校验基准数据的生成方法流程图;
图3为本发明实施例公开的一种自动化软件测试装置的结构示意图;
图4为本发明实施例公开的一种自动化软件测试装置中获取单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种自动化软件测试方法及装置,根据被测场景构造测试参数,在接收到数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的被校验数据,在本地存储器中查找与测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
参见图1,本发明实施例公开的一种自动化软件测试方法流程图,该方法应用于控制器,包括步骤:
步骤S101、根据被测场景构造测试参数;
其中,根据被测场景构造测试参数的过程可参见现有成熟方案,此处不再赘述。
步骤S102、接收数据校验指令,将包含所述测试参数的请求信息发送至被测服务;
控制器接收数据校验指令的目的为:便于后续执行反注入模式校验。
步骤S103、执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据;
步骤S104、从本地存储器中查找与所述测试用例场景对应的静态校验基准数据;
其中,静态校验基准数据为基准服务在测试用例场景运行测试参数后生成,并存储在本地存储器中。
步骤S105、将所述被校验数据与查找到的静态校验基准数据进行比较,得到校验结果。
本实施例中,通过将被校验数据与查找到的静态校验基准数据进行比较来确定被校验数据是否符合预期,当被校验数据与查找到的静态校验基准数据相同时,表明被校验数据符合预期,被测服务通过校验;反之,当被校验数据与查找到的静态校验基准数据不同时,表明被校验数据不符合预期,被测服务未通过校验。
综上可知,本发明公开了一种自动化软件测试方法,根据被测场景构造测试参数,在接收到数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的被校验数据,在本地存储器中查找与测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
为进一步优化上述实施例,参见图2,本发明实施例公开的一种静态校验基准数据的生成方法流程图,该方法包括:
步骤S201、根据被测场景构造测试参数;
步骤S202、将包含所述测试参数的请求信息发送至基准服务;
步骤S203、执行自动化用例,获取所述基准服务在测试用例场景运行所述测试参数生成的处理结果数据,该处理结果数据即为所述静态校验基准数据;
本实施例中,通过自动化用例使基准服务在测试用例场景运行所述测试参数,生成处理结果数据,并由基准服务将生成的处理结果数据返回给控制器。
步骤S204、将所述静态校验基准数据和相对应的所述测试用例场景以对应关系的形式写入所述本地存储器。
需要特别说明的是,存储在本地存储器的测试用例场景可以为:测试用例场景的名称、标识符等,并非是测试用例场景运行时的数据。
在将静态校验基准数据和相对应的测试用例场景以对应关系的形式写入本地存储器之前,控制器将与本地存储器连接的注入端口的状态设置为打开状态,以便将静态校验基准数据和测试用例场景写入本地存储器。其中,本地存储器不限于本地文件、数据库等存储介质。在实际应用中,用例结果和用例描述可分开存储。
其中,本地存储器中存储的静态校验基准数据和测试用例场景,可以根据实际需要进行替换和变更,从而提升编写效率。测试用例场景直接在本地存储器进行替换即可,静态校验基准数据可以采用图2所示实施例获取替换和变更后的静态校验基准数据。
综上可知,本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
需要说明的是,传统的静态数据结果校验方式仅对被测服务返回的处理结果数据进行了校验,对于被测服务在测试用例场景运行测试参数生成的中间数据,比如,被测服务在运行过程中对数据库更新的内容,并未进行校验,因此,传统的静态数据结果校验覆盖不全。
为解决这一技术问题,本发明对上述实施例进行优化。图1所示实施例中的步骤S103,具体可以包括:
执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的中间数据和处理结果数据,并将中间数据和处理结果数据作为被校验数据。
其中,中间数据为预先配置的基准服务在测试用例场景运行测试参数过程中生成的关键词,该关键词为基准服务存储介质采集的内容,比如,数据库表名,主键等。
相对应的,静态校验基准数据包括:基准服务在所述测试用例场景运行所述测试参数生成的中间数据和处理结果数据。
其中,当基准服务在测试用例场景运行所述测试参数的过程中,未生成中间数据,则仅将生成的处理结果数据确定为静态校验基准数据。
综上可知,由于本发明增加了对中间数据的存储和校验,因此本发明大大提高了自动化软件测试的覆盖度。
可以理解,在实际应用中,不同测试场景的自动化用例校验中,被校验数据包含的具体内容可能不同,因此,需要根据实际需求,对获取的被测服务在测试用例场景运行测试参数生成的处理结果数据中的非关键信息进行过滤,非关键信息即本次自动化用例校验中不需要的数据,如时间戳这类数值会变更的数据,从而得到本次自动化用例校验中所需的被测校验数据。
因此,图1所示实施例中的步骤S103具体可以包括:
执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的处理结果数据;
根据预先设置的过滤规则,将所述处理结果数据中的非关键信息进行过滤,得到被校验数据。
需要说明的是,过滤规则中标注有非关键信息包含的具体内容。
综上可知,本发明根据被测场景构造测试参数,在接收到收数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的处理结果数据,将处理结果数据中的非关键信息进行过滤,得到被校验数据,在本地存储器中查找测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
另外,由于本发明在对被校验数据进行校验前,可以根据实际校验需要对被校验数据进行了筛选,因此可以大大提高用例校验的灵活性。
与上述方法实施例相对应,本发明还公开了一种自动化软件测试装置。
参见图3,本发明实施例公开的一种自动化软件测试装置的结构示意图,该装置应用于控制器,包括:
参数构造单元301,用于根据被测场景构造测试参数;
其中,根据被测场景构造测试参数的过程可参见现有成熟方案,此处不再赘述。
发送单元302,用于接收数据校验指令,将包含所述测试参数的请求信息发送至被测服务;
控制器接收数据校验指令的目的为:便于后续执行反注入模式校验。
获取单元303,用于执行自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的处理结果数据,并将所述处理结果数据作为被校验数据;
查找单元304,用于从本地存储器中查找与所述测试用例场景对应的静态校验基准数据,其中,所述静态校验基准数据为基准服务在所述测试用例场景运行所述测试参数后生成;
其中,静态校验基准数据的生成过程可参见图2所示实施例对应部分,此处不再赘述。
校验单元305,用于将所述被校验数据与查找到的所述静态校验基准数据进行比较,得到校验结果。
本实施例中,通过将被校验数据与查找到的静态校验基准数据进行比较来确定被校验数据是否符合预期,当被校验数据与查找到的静态校验基准数据相同时,表明被校验数据符合预期,被测服务通过校验;反之,当被校验数据与查找到的静态校验基准数据不同时,表明被校验数据不符合预期,被测服务未通过校验。
综上可知,本发明公开了一种自动化软件测试方法,根据被测场景构造测试参数,在接收到数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的被校验数据,在本地存储器中查找与测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
需要说明的是,传统的静态数据结果校验方式仅对被测服务返回的处理结果数据进行了校验,对于被测服务在测试用例场景运行测试参数生成的中间数据,比如,被测服务在运行过程中对数据库更新的内容,并未进行校验,因此,传统的静态数据结果校验覆盖不全。
为解决这一技术问题,本发明对上述实施例进行优化。
图3所示实施例中的获取单元303可以包括:
第一数据获取子单元,用于执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的中间数据和处理结果数据,并将所述中间数据和所述处理结果数据作为所述被校验数据。
其中,中间数据为预先配置的基准服务在测试用例场景运行测试参数过程中生成的关键词,该关键词为基准服务存储介质采集的内容,比如,数据库表名,主键等。
相对应的,静态校验基准数据包括:基准服务在所述测试用例场景运行所述测试参数生成的中间数据和处理结果数据。
其中,当基准服务在测试用例场景运行所述测试参数的过程中,未生成中间数据,则仅将生成的处理结果数据确定为静态校验基准数据。
综上可知,由于本发明增加了对中间数据的存储和校验,因此本发明大大提高了自动化软件测试的覆盖度。
可以理解,在实际应用中,不同测试场景的自动化用例校验中,被校验数据包含的具体内容可能不同,因此,需要根据实际需求,对获取的被测服务在测试用例场景运行测试参数生成的处理结果数据中的非关键信息进行过滤,非关键信息即本次自动化用例校验中不需要的数据,如时间戳这类数值会变更的数据,从而得到本次自动化用例校验中所需的被测校验数据。
因此,参见图4,本发明实施例公开的一种自动化软件测试装置中获取单元的结构示意图,获取单元可以包括:
第一数据获取子单元401,用于执行所述自动化用例,获取所述被测服务在测试用例场景运行所述测试参数生成的所述处理结果数据;
过滤子单元402,用于根据预先设置的过滤规则,将所述处理结果数据中的非关键信息进行过滤,得到所述被校验数据。
需要说明的是,过滤规则中标注有非关键信息包含的具体内容。
综上可知,本发明根据被测场景构造测试参数,在接收到收数据校验指令后,将包含测试参数的请求信息发送至被测服务,执行自动化用例,获取被测服务在测试用例场景运行测试参数生成的处理结果数据,将处理结果数据中的非关键信息进行过滤,得到被校验数据,在本地存储器中查找测试用例场景对应的静态校验基准数据,通过将被校验数据与查找到的静态校验基准数据进行比较,得到校验结果,其中,静态校验基准数据为基准服务在测试用例场景运行测试参数生成。本发明将利用基准服务在测试用例场景下生成的数据作为静态校验基准数据,代替了人工设置静态校验基准数据的方式,并且,将测试用例场景和相对应的静态校验基准数据写入本地存储器,使得在对被校验数据进行校验时,通过结果自动反填的方式,可以直接从本地存储器获取静态校验基准数据,因此减少了静态测试用例的编写成本和时间,提高了自动化软件测试用例的编写效率。
另外,由于本发明在对被校验数据进行校验前,可以根据实际校验需要对被校验数据进行了筛选,因此可以大大提高用例校验的灵活性。
需要特别说明的是,装置实施例中,各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。