一种服务器接口的自动化测试方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务器接口的自动化测试方法及装置。
背景技术
随着计算机技术的不断发展,为了降低终端的运行压力以及便于数据的维护和更新,服务器与安装在终端上的客户端进行数据交互的运行模式逐渐被应用的越来越广泛。
目前,服务器可通过接口与客户端进行数据的交互,从而为用户提供各种业务,即,客户端将用户的请求发送给服务器,服务器可通过接口将该请求对应的业务数据返回给客户端,客户端在将业务数据提供给用户。
为了使得测试人员在进行服务器与客户端结合的系统测试过程中,就能够排除由于服务器的接口缺陷所导致的问题,便于定位问题,因此,在对服务器与客户端结合的系统测试过程中,首先需要对服务器的接口进行测试,以此来确保服务器的接口的功能实现正确。
现有技术对服务器的接口进行测试的过程中,人工先在数据库中创建测试数据,后续,客户端向服务器发送预先构建的测试数据对应的业务请求,服务器通过接口接收到该业务请求后,直接将业务请求对应的测试数据返回给客户端,客户端将接收到的测试数据提供给人工,人工判断返回的测试数据与期望数据是否一致,若是,则说明服务器的接口的功能实现正确,若否,则说明服务器的接口的功能实现存在缺陷。
显然,在测试的过程中,人工检查服务器的接口返回的数据是否正确,会耗费大量的时间并且效率较低,从而导致整个回归测试的时间较长。
发明内容
本申请实施例提供一种服务器接口的自动化测试方法及装置,用以解决现有技术中人工检查服务器的接口返回的数据是否正确,会耗费大量的时间并且效率较低,从而导致整个回归测试的时间较长的问题。
本申请实施例提供一种服务器接口的自动化测试方法,包括:
访问预设的请求链接,使服务器在数据库中获取所述请求链接对应的测试数据;
接收服务器通过接口返回的所述请求链接对应的测试数据;
确定所述请求链接对应的测试数据与预设的期望数据一致;
确定服务器接口的自动化测试成功。
优选地,所述数据库包括:mysql数据库和redis数据库。
优选地,在访问预设的请求链接之前,分别向mysql数据库和redis数据库发送数据清空命令,使mysql数据库和redis数据库清空已存储的数据,向mysql数据库发送添加命令,使mysql数据库添加所述请求链接对应的测试数据,其中,所述添加命令中携带有所述请求链接对应的测试数据,向redis数据库发送更新命令,使redis数据库更新添加到mysql数据库中的所述请求链接对应的测试数据。
优选地,在确定服务器接口的自动化测试成功之前,向mysql数据库发送删除命令,使mysql数据库将所述请求链接对应的测试数据删除,向redis数据库发送删除命令,使redis数据库将所述请求链接对应的测试数据删除。
优选地,当未接收到服务器通过接口返回的所述请求链接对应的测试数据,则自动化测试失败。
本申请实施例提供一种服务器接口的自动化测试装置,包括:
访问模块,用于访问预设的请求链接,使服务器在数据库中获取所述请求链接对应的测试数据;
接收模块,用于接收服务器通过接口返回的所述请求链接对应的测试数据;
第一确定模块,用于确定所述请求链接对应的测试数据与预设的期望数据一致;
第二确定模块,用于确定服务器接口的自动化测试成功。
优选地,所述数据库包括:mysql数据库和redis数据库。
优选地,所述装置还包括:初始化模块,用于在访问模块访问预设的请求链接之前,分别向mysql数据库和redis数据库发送数据清空命令,使mysql数据库和redis数据库清空已存储的数据,向mysql数据库发送添加命令,使mysql数据库添加所述请求链接对应的测试数据,其中,所述添加命令中携带有所述请求链接对应的测试数据,向redis数据库发送更新命令,使redis数据库更新添加到mysql数据库中的所述请求链接对应的测试数据。
优选地,所述装置还包括:删除模块,用于在第二确定模块确定服务器接口的自动化测试成功之前,向mysql数据库发送删除命令,使mysql数据库将所述请求链接对应的测试数据删除,向redis数据库发送删除命令,使redis数据库将所述请求链接对应的测试数据删除。
优选地,所述装置还包括:测试失败模块,用于当所述接收模块未接收到服务器通过接口返回的所述请求链接对应的测试数据,则自动化测试失败。
本申请实施例提供一种服务器接口的自动化测试方法及装置,该方法包括:访问预设的请求链接,使服务器在数据库中获取该请求链接对应的测试数据,接收服务器通过接口返回的该请求链接对应的测试数据,确定该请求链接对应的测试数据与预设的期望数据一致,确定服务器接口的自动化测试成功。通过上述方法,对服务器的接口进行测试的整个过程不再由人工去实施,而是可直接由自动化测试工具或设备模拟人工的操作来完成,这样可有效的节约人力成本,并且缩短了整个回归测试时间,提高了测试效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种服务器接口的自动化测试的过程示意图;
图2为本申请实施例提供的一种服务器接口的自动化测试装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的服务器接口的自动化测试过程,具体包括以下步骤:
S101:访问预设的请求链接。
在实际应用中,为了使得测试人员在进行服务器与客户端结合的系统测试过程中,就能够排除由于服务器的接口缺陷所导致的问题,便于定位问题,因此,在对服务器与客户端结合的系统测试过程中,首先需要对服务器的接口进行测试,以此来确保服务器的接口的功能实现正确。
进一步的,由于在对服务器的接口进行自动化测试的过程中,需要提前知道服务器返回的正确数据具体是什么,因此,在本申请中,可对服务器返回的数据进行控制,具体的,就是可向数据库发送携带有已知的正确的测试数据的数据添加命令,数据库添加已知的正确的测试数据。
另外,为了能够防止已经存在在数据库中的其他数据干扰到正确的测试数据,因此,需要在向数据库发送携带有已知的正确的测试数据的数据添加命令之前,需要先向数据库发送数据清空命令,数据库接收到该数据清空命令后,将其中已存储的数据全部清空。
在此需要说明的是,由于数据库有可能存在添加数据出现错误的情况,也就是说,没有将测试数据正确添加到数据库,因此,在本申请中,在将该测试数据添加到数据库后,需要根据添加命令中所携带的测试数据,判断数据库中的测试数据是否正确的添加到数据库,如果没有正确的添加到数据库,则服务器接口的自动化测试失败。
上述所提到的正确添加到数据库是指不仅仅在数据库中添加完成正确的测试数据,还要使得已经添加完成的测试数据与添加命令中所携带的测试数据一致。
另外,在数据库中添加了已知的正确的测试数据后,后续需要在测试的过程中访问到该测试数据,因此,在本申请中,还需要预先设定一个请求链接,通过该请求链接可以直接访问到添加到该数据库中的该测试数据。
进一步的,在对服务器的接口进行自动化测试的过程中,首先需要通过安装在终端上的客户端(如,浏览器)使用get或post的方式访问预设的请求链接,终端将请求链接对应的请求发送给服务器,服务器接收到该请求链接对应的请求后,直接在数据库中获取该请求链接对应的测试数据,并将该请求链接对应的测试数据返回给终端。
S102:接收服务器通过接口返回的所述请求链接对应的测试数据。
S103:确定所述请求链接对应的测试数据与预设的期望数据一致。
S104:确定服务器接口的自动化测试成功。
在实际应用中,有可能存在终端并未接收到服务器通过接口返回的测试数据的情况,也就是说,服务器的接口并没用正确的实现其功能,因此,在本申请中,在执行完成S101后,需要判断是否接收到服务器返回的测试数据,当终端未接收到服务器通过接口返回的该请求链接对应的测试数据,则自动化测试失败,也就是说,服务器的接口没有正确的实现其功能。
进一步的,由于本申请旨在通过将服务器返回的测试数据与已知正确的测试数据(也即,期望数据)进行比对,来判断该服务器接口功能是否正确,因此,在本申请中,当终端接收到服务器通过接口返回的该请求链接对应的测试数据后,需要确定该返回的测试数据是否与预设的期望数据一致。
当确定该返回的请求链接对应的测试数据与预设期望数据一致,则确定服务器接口的自动化测试成功,说明服务器的接口可以正确的实现其功能,没有任何缺陷,而当确定该返回的请求链接对应的测试数据与预设期望数据不一致,则确定服务器接口的自动化测试失败,说明服务器的接口存在缺陷。
通过上述方法,对服务器的接口进行测试的整个过程不再由人工去实施,而是可直接由自动化测试工具或设备模拟人工的操作来完成,这样可有效的节约人力成本,并且缩短了整个回归测试时间,提高了测试效率。
进一步的,在实际应用中,在确定服务器的接口的自动化测试成功之前,还需要将数据库存储的测试数据删除,具体的,向数据库发送删除命令,使数据库将该请求链接对应的测试数据删除。并且,判断测试数据是否删除成功,如果是,则确定服务器的接口的自动化测试成功,如果否,则确定服务器的接口的自动化测试失败。
在此需要说明的是,上述所提到的测试数据是否删除成功是指不仅仅在数据库中完成删除测试数据的操作,还要使得全部测试数据从数据库中删除干净。
为了更加清楚的阐述本申请的实施过程,以下以数据库包括:mysql数据库和redis数据库为实施例进行说明。
在实际应用中,由于redis数据库有很快的数据读写速度,因此,为了提高数据的读写速度,通常同时使用mysql数据库和redis数据库,将redis数据库作为mysql数据库的缓存,也就是说,用户在进行更新(即,增加,删除,修改)操作时,只需要在mysql数据库中更新即可,后续,redis数据库会通过redis更新接口将mysql数据库中所更新的数据更新到redis数据库。
服务器在接收到终端发送的请求链接对应的请求后,可先在redis数据库中查找请求链接对应的数据。
因此,本申请在对服务器的接口进行自动化测试的过程中,预先分别向mysql数据库和redis数据库发送数据清空命令,使mysql数据库和redis数据库清空已存储的数据,再向mysql数据库发送携带有该请求链接对应的测试数据的添加命令,使mysql数据库添加所述请求链接对应的测试数据,向redis数据库发送更新命令,使redis数据库更新添加到mysql数据库中的该请求链接对应的测试数据。并设定一个请求链接,通过该请求链接可以直接访问到添加到该mysql数据库和redis数据库中的该测试数据
进一步的,访问预设的请求链接,通过安装在终端上的客户端(如,浏览器)使用get或post的方式访问预设的请求链接,终端将请求链接对应的请求发送给服务器,服务器接收到该请求链接对应的请求后,直接在redis数据库中获取该请求链接对应的测试数据,并将该请求链接对应的测试数据返回给终端。
进一步的,接收服务器通过接口返回的该请求链接对应的测试数据,并确定该返回的测试数据是否与预设的期望数据一致,如果一致,则向mysql数据库发送删除命令,使mysql数据库将该请求链接对应的测试数据删除,向redis数据库发送删除命令,使redis数据库将该请求链接对应的测试数据删除,如果不一致,则确定服务器接口的自动化测试失败。
进一步的,在向mysql数据库发送删除命令,使mysql数据库将该请求链接对应的测试数据删除,向redis数据库发送删除命令,使redis数据库将该请求链接对应的测试数据删除后,需要判断测试数据是否删除成功,如果是,则确定服务器的接口的自动化测试成功,如果否,则确定服务器的接口的自动化测试失败。
以上为本申请实施例提供的服务器接口的自动化测试方法,基于同样的思路,本申请实施例还提供一种服务器接口的自动化测试装置。
如图2所示,本申请实施例提供的一种服务器接口的自动化测试装置,包括:
访问模块201,用于访问预设的请求链接,使服务器在数据库中获取所述请求链接对应的测试数据;
接收模块202,用于接收服务器通过接口返回的所述请求链接对应的测试数据;
第一确定模块203,用于确定所述请求链接对应的测试数据与预设的期望数据一致;
第二确定模块204,用于确定服务器接口的自动化测试成功。
所述数据库包括:mysql数据库和redis数据库。
所述装置还包括:
初始化模块205,用于在访问模块201访问预设的请求链接之前,分别向mysql数据库和redis数据库发送数据清空命令,使mysql数据库和redis数据库清空已存储的数据,向mysql数据库发送添加命令,使mysql数据库添加所述请求链接对应的测试数据,其中,所述添加命令中携带有所述请求链接对应的测试数据,向redis数据库发送更新命令,使redis数据库更新添加到mysql数据库中的所述请求链接对应的测试数据。
所述装置还包括:
删除模块206,用于在第二确定模块204确定服务器接口的自动化测试成功之前,向mysql数据库发送删除命令,使mysql数据库将所述请求链接对应的测试数据删除,向redis数据库发送删除命令,使redis数据库将所述请求链接对应的测试数据删除。
所述装置还包括:
测试失败模块207,用于当所述接收模块202未接收到服务器通过接口返回的所述请求链接对应的测试数据,则自动化测试失败。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。