一种Jmeter平台的接口验证方法、系统、计算机和存储介质与流程

    专利2022-07-08  95


    本申请属于计算机技术领域,具体涉及一种jmeter平台的接口验证方法及系统。



    背景技术:

    在众多的接口自动化的工具中,使用jmeter做接口自动化的朋友不在少数,在使用的过程中难免都会遇到一个问题:如何验证这个接口执行成功了?

    而assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。jmeter也提供这样一个元件,叫做断言(assertion),它的作用和loadrunner中的检查点类似,用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。

    在jmeter中,使用的比较多的是响应断言和beanshell断言,而这两种都存在一定弊端:

    1)jmeter本身提供的响应断言比较初级,无法判断接口的返回与数据库中存储的数据是否一致;

    2)beanshell断言需要使用者有一定的编程基础,而且可读性比较差,增加了团队其他成员的维护成本。

    因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何在beanshell断言中用简单的一行代码来对比接口的响应数据和数据库查询的数据集,以减轻使用者的负担,提高接口自动化的质量。



    技术实现要素:

    为至少在一定程度上克服相关技术中,解决在beanshell断言中用简单的一行代码来对比接口的响应数据和数据库查询的数据集,以减轻使用者的负担,提高接口自动化的质量问题,本申请提供以下技术方案,

    第一方面,一种jmeter平台的接口验证方法,其特征在于,包括:

    获取服务器端的响应内容以及数据库查询结果;

    将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    进一步地,抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对,包括:

    比对所述第一结果集中的要比对的结果集与所述第二结果集的记录总数;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    进一步地,抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对,还包括:

    比对所述第一结果集中的要比对的结果集与所述第二结果集的每条记录的字段值;

    若所述字段值比对结果不一致,则断言失败;

    若所述字段值比对结果一致,则断言成功。

    进一步地,所述数据库查询结果中包含列名。

    进一步地,所述第一结果集为数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。

    进一步地,所述第二结果集为与第一结果集对应的数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。

    进一步地,所述第一结果集的格式为json格式,所述第二结果集的格式为json格式。

    第二方面,一种jmeter平台的接口验证系统,其特征在于,包括:

    获取模块,用于获取服务器端的响应内容以及数据库查询结果;

    转换模块,用于将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    比对模块,用于抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    第三方面,一种计算机,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述方法的步骤。

    第四方面,一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上任一项所述方法的步骤。

    本发明的有益效果是:

    本发明所提供的一种jmeter平台的接口验证方法,通过获取服务器端的响应内容以及数据库查询结果;将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

    附图说明

    此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

    图1为本申请一个实施例中一种jmeter平台的接口验证方法步骤图。

    图2为本申请另一个实施例中一种jmeter平台的接口验证方法步骤图。

    图3为本申请另一个实施例中一种jmeter平台的接口验证方法步骤图。

    具体实施方式

    为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。

    为实现以上目的,本发明采用如下技术方案:

    如图1所示,为本申请一个实施例中一种jmeter平台的接口验证方法步骤图,

    包括:

    步骤s101、获取服务器端的响应内容以及数据库查询结果;其中,数据库查询结果中包含列名;

    步骤s102、将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    步骤s103、抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;

    步骤s104、若比对结果不一致,则断言失败;

    步骤s105、若比对结果一致,则断言成功。

    需要说明的是,jmeter是apache组织开发的基于java的压力测试工具。用于对软件做压力测试,它最初被设计用于web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、java小服务程序、cgi脚本、java对象、数据库、ftp服务器,等等。jmeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,jmeter允许使用正则表达式创建断言。

    jmeter平台可以用于对静态的和动态的资源(文件,servlet,perl脚本,java对象,数据库和查询,ftp服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

    在设计阶段,jmeter能够充当httpproxy(代理)来记录ie/netscape的http请求,也可以记录apache等webserver的log文件来重现http流量。当这些http客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。jmeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。

    相比其他http测试工具,jmeter最主要的特点在于扩展性强。jmeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。

    本发明所提供的一种jmeter平台的接口验证方法,通过获取服务器端的响应内容以及数据库查询结果;将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    作为上述方法的进一步改进,如图2所示为本申请另一个实施例中一种jmeter平台的接口验证方法步骤图,包括:

    步骤s201、获取服务器端的响应内容以及数据库查询结果;

    步骤s202、将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    步骤s203、比对第一结果集中的要比对的结果集与所述第二结果集的记录总数;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    本发明所提供的一种jmeter平台的接口验证方法,通过获取服务器端的响应内容以及数据库查询结果;将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    作为上述方法的进一步改进,如图3所示为本申请另一个实施例中一种jmeter平台的接口验证方法步骤图,包括:

    步骤s301、获取服务器端的响应内容以及数据库查询结果;

    步骤s302、将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    其中,第一结果集的格式为json格式,第二结果集的格式为json格式。

    步骤s303、比对第一结果集中的要比对的结果集与所述第二结果集的每条记录的字段值;

    步骤s304、若比对结果不一致,则断言失败;

    步骤s305、若比对结果一致,则断言成功。

    需要说明的,第一结果集为数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。第二结果集为与第一结果集对应的数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。

    可以理解为,本发明所提供的一种jmeter平台的接口验证方法,通过获取服务器端的响应内容以及数据库查询结果;将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    一些实施例中,本申请还提供的一种jmeter平台的接口验证系统,包括:

    获取模块,用于获取服务器端的响应内容以及数据库查询结果;

    转换模块,用于将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    比对模块,用于抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    可以理解为,本发明所提供的一种jmeter平台的接口验证系统,通过获取模块获取服务器端的响应内容以及数据库查询结果;通过转换模块将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;通过比对模块并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    本申请还提供一种计算机,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述方法的步骤。

    本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上任一项所述方法的步骤。

    可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

    需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

    流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

    应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

    本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

    此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能组件的形式实现。所述集成的模块如果以软件功能组件的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

    上述提到的存储介质可以是只读存储器,磁盘或光盘等。

    在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

    尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

    需要说明的是,本发明不局限于上述最佳实施方式,本领域技术人员在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。


    技术特征:

    1.一种jmeter平台的接口验证方法,其特征在于,包括:

    获取服务器端的响应内容以及数据库查询结果;

    将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    2.根据权利要求1所述的方法,其特征在于,抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对,包括:

    比对所述第一结果集中的要比对的结果集与所述第二结果集的记录总数;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    3.根据权利要求1所述的方法,其特征在于,抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对,还包括:

    比对所述第一结果集中的要比对的结果集与所述第二结果集的每条记录的字段值;

    若所述字段值比对结果不一致,则断言失败;

    若所述字段值比对结果一致,则断言成功。

    4.根据权利要求1所述的方法,其特征在于,所述数据库查询结果中包含列名。

    5.根据权利要求1所述的方法,其特征在于,所述第一结果集为数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。

    6.根据权利要求1所述的方法,其特征在于,所述第二结果集为与第一结果集对应的数组、多级数组、对象、多级对象以及数组、多级数组、对象、多级对象的多样组合体。

    7.根据权利要求1所述的方法,其特征在于,所述第一结果集的格式为json格式,所述第二结果集的格式为json格式。

    8.一种jmeter平台的接口验证系统,其特征在于,包括:

    获取模块,用于获取服务器端的响应内容以及数据库查询结果;

    转换模块,用于将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;

    比对模块,用于抽取所述第一结果集中的要比对的结果集与所述第二结果集进行比对;

    若比对结果不一致,则断言失败;

    若比对结果一致,则断言成功。

    9.一种计算机,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。

    10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述方法的步骤。

    技术总结
    本申请属于计算机技术领域,具体涉及一种Jmeter平台的接口验证方法、系统、计算机和存储介质,包括:通过获取服务器端的响应内容以及数据库查询结果;将所述服务器端的响应内容转换成第一结果集,将所述数据库查询结果转换成第二结果集;并抽取第一结果集中的要比对的结果集与所述第二结果集进行比对;若比对结果不一致,则断言失败;若比对结果一致,则断言成功。不同的服务端返回的数据集是多种多样的,本系统可以智能判断并转换,使用者不需要了解复杂的逻辑,只需要一次调用就可以完成复杂的断言,大大提高了接口自动化的效率和质量。

    技术研发人员:杨晓慧
    受保护的技术使用者:上海中通吉网络技术有限公司
    技术研发日:2020.11.25
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22609.html

    最新回复(0)