发明内容
本发明的目的是提供一种实时库测试方法,用以解决现有技术缺乏有效、便捷的手段测试实时库的问题;同时,本发明还提供了一种实时库测试系统,用以解决现有技术缺乏有效、便捷的手段测试实时库的问题。
为实现上述目的,本发明提出一种实时库测试方法,包括如下步骤:
在进行并发测试时,根据所选择的参数,通过实时库测试工具生成相应个数的线程,每个线程均调用实时库客户端写接口,向实时库客户端数据交互接口写入测试数据,实时库客户端数据交互接口用于与待测试的实时库服务端交互数据;
通过实时库客户端数据交互接口接收到实时库服务端返回的数据后,调用实时库客户端读接口读取返回的数据,判断各线程中写入的测试数据与对应返回的数据是否相同,统计相同或者不同的线程数量,从而完成并发测试。
另外,本发明还提出一种实时库测试系统,该实时库测试系统包括第一服务器和交换机,第一服务器部署实时库测试工具和实时库客户端;交换机用于连接第一服务器和被测试的实时库服务端;第一服务器包括存储器和处理器,处理器执行存储在存储器上的计算机程序以实现上述实时库测试方法。
有益效果是:并发测试的好坏直接体现实时库的稳定性,该方法实现了对实时库的并发测试,若统计写入的测试数据与返回的数据相同的线程数量多,则表明实时库的稳定性好,反之则稳定性差。而且该方法非常便捷,所依赖的不过若干线程、实时库客户端的几种基本接口,不依赖非常完整的测试环境,提供了一种简单、便捷的测试方案,而且测试过程简单、准确、效率高,进一步的保证测试的质量。
进一步的,上述实时库测试方法及系统还包括:在进行性能测试时,若选择为读数据测试,统计从下达读操作命令开始,到读到最后一条数据之间的时间,为读数据操作时间。
进一步的,上述实时库测试方法及系统还包括:在进行性能测试时,若选择为同步写数据测试,统计从下达同步写操作命令开始,到读到实时库客户端同步写接口的返回值之间的时间,为同步写数据操作时间。
进一步的,上述实时库测试方法及系统还包括:在进行性能测试时,若选择为异步写数据测试,统计从下达异步写操作命令开始,到读到最后一条数据之间的时间,为异步写数据操作时间。
有益效果是:这种对实时库进行性能测试时,测试的方法,简单、容易实现、实用性强,测试结果能够满足测试要求。
进一步的,上述实时库测试方法及系统还包括:在测试结束后,生成测试报告。
有益效果是:测试报告将测试结果进行记录,可以用于对实时库进行分析。
具体实施方式
实时库测试系统实施例:
本实施例提出的实时库测试系统如图1所示,包括两台服务器,分别为第一服务器和第二服务器,还包括一台交换机,第一服务器部署实时库测试工具(下文中也简称为测试工具)和实时库客户端,第二服务器部署实时库服务端,两台服务器通过交换机连接,实时库选用开源软件redis,存储结构包括哈希、字符串、集合三种存储结构体。当然,实时库软件也可以是其他软件。
第一服务器还包括存储器和处理器,处理器执行存储在存储器上的计算机程序(即测试工具和实时库客户端,该实时库客户端不需要完成所有功能,只需要具备基本的实时库客户端读/写接口,实时库客户端数据交互接口即可)以完成测试。
在测试工具进行测试之前,先启动redis服务,然后启动测试工具,按照用户的需求自动生成测试用例(即测试数据),如测试用例中每条数据多少字节,生成多条数据,生成的测试用例用于对实时库服务端进行检测。
该实时库测试系统按照如图2所示的方法进行实时库测试:
1)选择测试类型,包括功能测试、性能测试,并发测试,以及选择测试方式,包括同步测试和异步测试,相应的,还需要选择一些参数,例如:并机测试时选择同时并发多少测试用例。
通过人工可以向测试工具输入上述各种选择。
下面依次对各种测试类型进行说明。
同步测试与异步测试分别对应客户端提供的实时库客户端同步写接口和实时库客户端异步写接口(即实时库客户端写接口包括实时库客户端同步写接口和实时库客户端异步写接口),实时库只有在写测试数据时才分同步和异步,主要区别是同步写测试数据时,写测试数据接口会有返回值,通过返回值可以判断实时库是否写成功。
2)若选择同步功能测试时,首先测试工具通过调用实时库客户端同步写接口向实时库数据交互接口写数据,再通过实时库客户端读接口读出实时库服务端中的数据,然后测试工具对比读写的数据是否一致,如果一致,则说明实时库服务端读和写功能正确;如果不一致,说明读或写功能异常,需要进一步定位问题,将测试结果打印出来,这样测试工具自动判定测试结果的同时,测试人员也可以人工抽查判定,能够增加测试的可靠性,而且功能测试时,三种存储结构可以同时测试。
测试工具进行异步功能测试时,与上述过程不同仅在于,其调用的是实时库客户端异步写接口,其他过程相同。
3)若选择性能测试时,首先测试工具向实时库客户端数据交互接口写数据,并统计写操作的时间,然后测试工具通过实时库客户端读接口读出实时库服务端中的数据,并统计读操作的时间,为用户提供性能方面的数据支撑;性能测试时,由于测试结果的打印会影响性能,为了提高测试的精度,可以不打印测试结果数据,而且性能测试时,需要统计性能数据,只能选择一种存储结构进行测试。
在性能测试时,如果是同步写测试,统计从下达同步写操作命令开始,到读到实时库客户端同步写接口的返回值之间的时间,为同步写数据操作时间。
如果是读测试,统计从下达读操作命令开始,到读到最后一条数据之间的时间,为读数据操作时间。
同步写测试和读测试都能够得到准确的测量结果。
如果异步写测试,统计从下达异步写操作命令开始,到读到最后一条数据之间的时间,为异步写数据操作时间。对于写上百级的数据,操作一条数据的时间可以忽略,因此,也是能够满足测试精度要求的。
4)测试工具进行并机测试时,根据选择的参数,工具生成相应个数,例如选择的参数为50,则建立50个线程,同时调用实时库客户端写接口,向实时库客户端的数据交互接口(用于与服务端进行交互的接口)写入测试数据;这相当于模拟了50个客户端同时向实时库服务端请求数据;接着实时库服务端返回所请求的数据,测试工具通过实时库客户端读接口读出实时库服务端的数据,将读出的数据与写入的数据进行比对,判断是否有某些线程对应的数据有异常(即写入的数据与返回的数据不对应),对异常情况进行统计,从而判断服务器的并发能力,出现异常的线程越少,并发能力强。而且线程数量多,异常情况少,并发能力越强。在判断读或写功能的同时,还要进行并发时间的统计(参照性能测试的方法即可)。
5)生成测试报告,测试报告的形式是根据用户定制自动生word形式,比如:按测试类型分,可以生成性能测试报告,功能测试报告,并发测试报告;按测试用例分,可以生成单个用例的测试报告或多个用例的测试报告。总之,测试报告的形式多种多样,用户可以灵活定制。当然,生成测试报告是便于对实时库进行分析,在只需测试的情况下,该步骤也可以没有。
该方法非常便捷,所依赖的不过若干线程、实时库客户端的几种基本接口,不依赖非常完整的测试环境,提供了一种简单、便捷的测试方案,而且测试过程简单、准确、效率高,进一步的保证测试的质量。
实时库测试方法实施例:
本实施例提出的实时库测试方法,包括如下步骤:
在进行并发测试时,根据所选择的参数,通过实时库测试工具生成相应个数的线程,每个线程均调用实时库客户端写接口,向实时库客户端数据交互接口写入测试数据,实时库客户端数据交互接口用于与待测试的实时库服务端交互数据;
通过实时库客户端数据交互接口接收到实时库服务端返回的数据后,调用实时库客户端读接口读取返回的数据,判断各线程中写入的测试数据与对应返回的数据是否相同,统计相同或者不同的线程数量,从而完成并发测试。
实时库测试方法的具体实施过程在上述实时库测试系统实施例中已经介绍,这里不做赘述。