一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于场景化消息队列的数据测试方法、装置、设备及介质与流程

2022-02-22 18:44:07 来源:中国专利 TAG:


1.本发明涉及云测试的功能测试技术领域,尤其涉及一种基于场景化消息队列的数据测试方法、装置、计算机设备及存储介质。


背景技术:

2.目前,对测试对象(如某一款应用程序)进行测试时,一般需要人工构造大量的测试数据,存在输入的业务场景覆盖不全,报文数据不够拟真等缺点。这就导致基于人工构造测试数据测试的方式不仅测试数据获取成本高、测试效率低下,而且测试结果的准确度不高。


技术实现要素:

3.本发明实施例提供了一种基于场景化消息队列的数据测试方法、装置、计算机设备及存储介质,旨在解决现有技术中对测试对象进行测试时,一般需要人工构造大量的测试数据,不仅测试数据获取成本高、测试效率低下,而且因所构造的测试数据业务场景覆盖不全且报文数据不够拟真导致测试结果的准确度不高的问题。
4.第一方面,本发明实施例提供了一种基于场景化消息队列的数据测试方法,其包括:
5.响应于消息队列多场景测试指令,获取与所述消息队列多场景测试指令相应的待测试场景信息;
6.获取所述待测试场景信息中包括的待测试场景,及各待测试场景对应的目标消息队列;
7.根据各待测试场景对应的目标消息队列及与各目标消息队列的镜像拷贝流量数据,获取与各待测试场景相应的镜像拷贝流量数据集;
8.将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行生产版本下的测试,得到与各待测试场景对应的第一测试结果集,将所述第一测试结果集存储至hive数据库;
9.将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行待发布版本下的测试,得到与各待测试场景对应的第二测试结果集,将所述第二测试结果集存储至hive数据库;以及
10.将hive数据库中的所述第一测试结果集和所述第二测试结果集进行差异性比较得到相应的差异比较结果,将所述差异比较结果发送至接收终端。
11.第二方面,本发明实施例提供了一种基于场景化消息队列的数据测试装置,其包括:
12.测试场景信息获取单元,用于获响应于消息队列多场景测试指令,获取与所述消息队列多场景测试指令相应的待测试场景信息;
13.目标消息队列获取单元,用于获取所述待测试场景信息中包括的待测试场景,及
各待测试场景对应的目标消息队列;
14.镜像数据集获取单元,用于根据各待测试场景对应的目标消息队列及与各目标消息队列的镜像拷贝流量数据,获取与各待测试场景相应的镜像拷贝流量数据集;
15.第一测试结果集获取单元,用于将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行生产版本下的测试,得到与各待测试场景对应的第一测试结果集,将所述第一测试结果集存储至hive数据库;
16.第二测试结果集获取单元,用于将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行待发布版本下的测试,得到与各待测试场景对应的第二测试结果集,将所述第二测试结果集存储至hive数据库;以及
17.测试结果比对单元,用于将hive数据库中的所述第一测试结果集和所述第二测试结果集进行差异性比较得到相应的差异比较结果,将所述差异比较结果发送至接收终端。
18.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于场景化消息队列的数据测试方法。
19.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于场景化消息队列的数据测试方法。
20.本发明实施例提供了一种基于场景化消息队列的数据测试方法、装置、计算机设备及存储介质,先基于各待测试场景从消息队列服务器集群中获取镜像拷贝流量数据,以组成与各待测试场景相应的镜像拷贝流量数据集,然后将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行生产版本下的测试,得到与各待测试场景对应的第一测试结果集,将第一测试结果集存储至hive数据库,将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行待发布版本下的测试,得到与各待测试场景对应的第二测试结果集,将第二测试结果集存储至hive数据库,最后将hive数据库中的第一测试结果集和第二测试结果集进行差异性比较得到相应的差异比较结果,将差异比较结果发送至接收终端。实现了使用真实流量数据的镜像数据参与待测试对象分别在生产版本和待发布版本下的测试,测数数据获取效率高,数据量充足且均是真实历史业务数据,提高了测试效率和测试准确度。
附图说明
21.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的基于场景化消息队列的数据测试方法的应用场景示意图;
23.图2为本发明实施例提供的基于场景化消息队列的数据测试方法的流程示意图;
24.图3为本发明实施例提供的基于场景化消息队列的数据测试装置的示意性框图;
25.图4为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
28.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
29.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
30.请参阅图1和图2,图1为本发明实施例提供的基于场景化消息队列的数据测试方法的应用场景示意图;图2为本发明实施例提供的基于场景化消息队列的数据测试方法的流程示意图,该基于场景化消息队列的数据测试方法应用于服务器中,该方法通过安装于服务器中的应用软件进行执行。
31.如图2所示,该方法包括步骤s101~s106。
32.s101、响应于消息队列多场景测试指令,获取与所述消息队列多场景测试指令相应的待测试场景信息。
33.在本实施例中,是以服务器为执行主体来描述技术方案。具体的,服务器本地安装有hive数据库,服务器与消息队列服务器集群(消息队列服务器集群中包括多个消息队列服务器,每一个消息队列服务器可以部署针对某一具体场景的消息队列)进行通讯和数据交互,这样即可基于服务器对待测试对象(例如待测试对象为某一款能对消息队列中用户数据进行处理的功能模块,该功能模块属于某一款应用程序中的单个或多个功能模块,更具体如用户验证模块、用户信息合并模块等)进行多种环境下的测试,例如在生产版本这一环境下对待测试对象基于消息队列的镜像拷贝流量数据进行测试,或是在待发布版本这一环境下对待测试对象基于消息队列的镜像拷贝流量数据进行测试。其中,消息队列服务器中的镜像拷贝流量数据是真实业务数据的镜像,完全复制了某一时间段的真实业务数据,其用于测试相较于手动构造消息队列报文数据效率更高,测试效果更佳。即由于测试过程采用的是消息队列中真实流量的镜像拷贝,无需依赖测试人员手工构造消息队列报文数据(即mq报文数据),业务场景覆盖全面,报文数据拟真度更高。
34.s102、获取所述待测试场景信息中包括的待测试场景,及各待测试场景对应的目标消息队列。
35.在本实施例中,也可以基于服务器对待测试对象进行多种业务场景下的测试,例如对上述列举的应用程序在正常购买场景下进行测试,对上述列举的应用程序在拼团购买场景下进行测试,对上述列举的应用程序在限时优惠场景下进行测试。为了对待测试对象在多种具体业务场景分别进行测试,需要先获取具体的待测试场景信息,具体如待测试场景名称即可理解为待测试场景信息,待测试场景信息中包括若干个待测试场景(也就是包
括至少1个待测试场景)。在获取了待测试场景信息,服务器即可根据各待测试场景从相应的消息队列服务器中获取镜像拷贝流量数据以进行后续测试。
36.在一实施例中,步骤s102包括:
37.获取所述待测试场景信息中所述包括待测试场景的第一总个数;其中,所述第一总个数记为n;
38.获取所述待测试场景信息中包括的第i号待测试场景;其中,i的初始取值为1,且i的取值范围是[1,n];
[0039]
若确定所述第i号待测试场景对应的是单消息队列消息测试模式,获取所述第i号待测试场景相应的目标消息队列;
[0040]
若确定所述第i号待测试场景对应的是多消息队列消息测试模式,获取所述第i号待测试场景相应的多个消息队列组成目标消息队列;
[0041]
将i的取值自增1更新i的取值;
[0042]
若i的取值未超出n,返回执行所述获取所述待测试场景信息中包括的第i号待测试场景的步骤;
[0043]
若i的取值超出n,将第1号待测试场景相应的目标消息队列至第n号待测试场景相应的目标消息队列进行保存。
[0044]
在本实施例中,为了针对待测试对象进行多种业务场景下的测试,此时可以依序获取每一个待测试场景所需交互的目标消息队列及对应的消息队列服务器,从而确定每一个业务场景下需要获取多少数据量的镜像拷贝流量数据进行测试。
[0045]
例如第1号待测试场景(如正常购买场景)对应的是单消息队列消息测试模式,其只需要从消息队列服务器集群中的消息队列服务器1获取镜像拷贝流量数据,以消息队列服务器1作为第1号待测试场景对应的目标消息队列,在针对第1号待测试场景进行测试时需从消息队列服务器1中获取镜像拷贝流量数据进行测试。
[0046]
例如第2号待测试场景(如限时优惠场景)对应的是多消息队列消息测试模式,其只需要从消息队列服务器集群中的消息队列服务器2-消息队列服务器10均获取镜像拷贝流量数据,以消息队列服务器2-消息队列服务器10组成的当前队列集群作为第2号待测试场景对应的目标消息队列,在针对第2号待测试场景进行测试时需从消息队列服务器2-消息队列服务器10中均获取镜像拷贝流量数据进行测试。
[0047]
可见,只有先确定了待测试场景是单消息队列消息测试模式或是多消息队列消息测试模式,才能对应获取目标消息队列从而进一步获取测试所用的镜像拷贝流量数据。
[0048]
在一实施例中,所述若确定所述第i号待测试场景对应的是单消息队列消息测试模式,获取所述第i号待测试场景相应的目标消息队列,包括:
[0049]
若确定所述第i号待测试场景对应的是单消息队列消息测试模式,调用预设的第一消息队列选择策略,根据所述第一消息队列选择策略从消息队列服务器集群中获取所述第i号待测试场景相应的目标消息队列。
[0050]
在本实施例中,所述第一消息队列选择策略用于根据待测试场景的场景名称在消息队列服务器集群中获取具有对应业务场景用户数据的消息队列服务器作为目标消息队列服务器。或者是所述第一消息队列选择策略用于随机在消息队列服务器集群中获取一个消息队列服务器作为目标消息队列服务器。例如仍然参考上述示例,第1号待测试场景(如
正常购买场景)对应的是单消息队列消息测试模式,而在消息队列服务器集群中消息队列服务器1中的用户数据具有正常购买场景的业务场景,这样根据所述第一消息队列选择策略从消息队列服务器集群中选中消息队列服务器1作为目标消息队列服务器,之后从消息队列服务器1这一目标消息队列服务器中获取镜像拷贝流量数据作为目标消息队列进行测试。可见,通过所述第一消息队列选择策略可以快速选定目标消息队列从而进行下一步测试,提高整个测试过程的效率。
[0051]
在一实施例中,所述若确定所述第i号待测试场景对应的是多消息队列消息测试模式,获取所述第i号待测试场景相应的多个消息队列组成目标消息队列,包括:
[0052]
若确定所述第i号待测试场景对应的是多消息队列消息测试模式,调用预设的第二消息队列选择策略,根据所述第二消息队列选择策略从消息队列服务器集群中获取所述第i号待测试场景的多个消息队列组成目标消息队列。
[0053]
其中,根据所述第二消息队列选择策略相应的最低测试数据需求量、及消息队列服务器集群中各消息队列服务器中镜像拷贝流量数据的数据量确定所选定的消息队列服务器集合,以满足所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量。
[0054]
在本实施例中,所述第二消息队列选择策略用于根据待测试场景对应的最低测试数据需求量(最低测试数据需求量是一个预设值)及消息队列服务器集群中各消息队列服务器中镜像拷贝流量数据的数据量来确定所选定的消息队列服务器集合,以满足所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量。例如仍然参考上述示例,第2号待测试场景(如限时优惠场景)对应的是多消息队列消息测试模式,第2号待测试场景的最低测试数据需求量是2000万,经分析可知消息队列服务器2-消息队列服务器10组成的当前队列集群中所有镜像拷贝流量数据的总数据量是2005万,满足了所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量的要求,这样根据所述第二消息队列选择策略从消息队列服务器集群中选中消息队列服务器2-消息队列服务器10组成的当前队列集群,之后从消息队列服务器2-消息队列服务器10这多个目标消息队列服务器中获取镜像拷贝流量数据作为目标消息队列进行测试。可见,通过所述第二消息队列选择策略也可以快速选定目标消息队列从而进行下一步测试,提高整个测试过程的效率。
[0055]
s103、根据各待测试场景对应的目标消息队列及与各目标消息队列的镜像拷贝流量数据,获取与各待测试场景相应的镜像拷贝流量数据集。
[0056]
在本实施例中,由于各个消息队列服务器中已预先复制了某一时间段的真实业务数据作为镜像拷贝流量数据,当已知了各待测试场景对应的目标消息队列,并且已知与各目标消息队列的镜像拷贝流量数据,即可得到每一待测试场景分别需从哪些目标消息队列中获取镜像拷贝流量数据从而组成相应的镜像拷贝流量数据集。通过这一定向检索获取数据方式,提高了数据获取的效率。
[0057]
s104、将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行生产版本下的测试,得到与各待测试场景对应的第一测试结果集,将所述第一测试结果集存储至hive数据库。
[0058]
在本实施例中,当获取了各待测试场景相应的镜像拷贝流量数据集后,对待测试
对象进行生产版本下的测试,其中待测试对象的生产版本即待测试对象正在供用户正常使用的版本。对待测试对象进行生产版本下的测试时,是为了获取待测试对象在生产环境下的测试结果。若相对于各待测试场景相应的镜像拷贝流量数据集分别通过流量重放分别对待测试对象进行生产版本下的测试,即可得到各待测试场景分别相应的第一测试结果,由各待测试场景分别相应的第一测试结果组成第一测试结果集。
[0059]
为了后续比对测试结果,可以将与各待测试场景对应的测试结果存储至hive数据库中相应的分区表中,例如待测试场景1对应的测试结果存储在hive数据库中的分区表a1中,待测试场景2对应的测试结果存储在hive数据库中的分区表a2中等。
[0060]
在一实施例中,步骤s104包括:
[0061]
获取第j号待测试场景的镜像拷贝流量数据集;其中j的初始取值为1,且j的取值范围是[1,n],所述待测试场景信息中所述包括待测试场景的第一总个数记为n;
[0062]
将所述第j号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的被消费时间中日期参数移除,得到各镜像拷贝流量数据的数据消费日内时间;
[0063]
将所述第j号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据根据数据消费日内时间的升序进行排序,得到排序结果;
[0064]
将所述排序结果依序进行流量重放对待测试对象进行生产版本下的第j轮测试,得到与第j号待测试场景对应的第j轮测试结果,将第j轮测试结果存储至hive数据库中的第aj分区表中;
[0065]
将j的取值自增1更新j的取值;
[0066]
若j的取值未超出n,返回执行所述获取第j号待测试场景的镜像拷贝流量数据集的步骤;
[0067]
若j的取值超出n,由第1轮测试结果至第n轮测试结果组成第一测试结果集。
[0068]
在本实施例中,由于镜像拷贝流量数据集中每一条镜像拷贝流量数据都具有加入消息队列的时间以及被消费后移出消息队列的时间这些属性,也就是每一条镜像拷贝流量数据是何时从消息队列中被消费进入至对应的服务器都是已知的。这样可以将镜像拷贝流量数据集中各条镜像拷贝流量数据被消费进入至对应的服务器的被消费时间中具体日期去除,只保留各条镜像拷贝流量数据的被消费时间中除日期之外的其他部分(例如此时至保留了被消费时间中的小时取值、分钟取值及秒取值),将被消费时间中除日期之外的其他部分可以简记为数据消费日内时间,这样再将镜像拷贝流量数据集中各条镜像拷贝流量数据根据数据消费日内时间进行升序排序处理然得到排序结果,然后将排序结果中各镜像拷贝流量数据根据数据消费日内时间发送至服务器进行模拟测试,通过这一方式实现了流量重放。而且由于消除了日期对排序结果的影响,可以将多个不同日期的镜像拷贝流量数据有效组合成同一日的数据从而以流量重放的方式参与测试,提升测试数据的数据量,测试效果更佳。
[0069]
其中,在服务器中基于各待测试场景相应的镜像拷贝流量数据集分别对待测试对象进行生产版本下的测试时,还可以获取服务器在对待测试对象进行生产版本下的测试时的每秒请求处理量(英文全称是query per second,简记为qpc)以作为服务器的第一mq处理性能基线。
[0070]
s105、将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对
象进行待发布版本下的测试,得到与各待测试场景对应的第二测试结果集,将所述第二测试结果集存储至hive数据库。
[0071]
在本实施例中,还可对待测试对象进行待发布版本下的测试,其中待测试对象的待发布即待测试对象在通过测试后即可上线供用户更新使用的版本,其本质仍是一个测试版本。对待测试对象进行待发布版本下的测试时,是为了获取待测试对象在测试环境下的测试结果。若相对于各待测试场景相应的镜像拷贝流量数据集分别通过流量重放分别对待测试对象进行待发布版本下下的测试,即可得到各待测试场景分别相应的第二测试结果,由各待测试场景分别相应的测试结果组成第二测试结果集。
[0072]
为了后续比对测试结果,可以将与各待测试场景对应的第二测试结果存储至hive数据库中相应的分区表中,例如待测试场景1对应的第二测试结果存储在hive数据库中的分区表b1中,待测试场景2对应的测试结果存储在hive数据库中的分区表b2中等。
[0073]
在一实施例中,步骤s105包括:
[0074]
获取第k号待测试场景的镜像拷贝流量数据集;其中k的初始取值为1,且k的取值范围是[1,n],所述待测试场景信息中所述包括待测试场景的第一总个数记为n;
[0075]
将所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的被消费时间中日期参数移除,得到所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的数据消费日内时间;
[0076]
将所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据根据数据消费日内时间的升序进行排序,得到排序结果;
[0077]
将所述排序结果依序进行流量重放对待测试对象进行待发布本本下的第k轮测试,得到与第k号待测试场景对应的第k轮测试结果,将第k轮测试结果存储至hive数据库中的第bk分区表中;
[0078]
将k的取值自增1更新k的取值;
[0079]
若k的取值未超出n,返回执行所述获取第k号待测试场景的镜像拷贝流量数据集的步骤;
[0080]
若k的取值超出n,由第1轮测试结果至第n轮测试结果组成第二测试结果集。
[0081]
在本实施例中,在对待测试对象进行待发布版本下的测试的过程也是参考对待测试对象进行生产版本下的测试。而且在服务器中基于各待测试场景相应的镜像拷贝流量数据集分别对待测试对象进行待发布版本下的测试时,还可以获取服务器在对待测试对象进行生产版本下的测试时的每秒请求处理量以作为服务器的第二mq处理性能基线。
[0082]
s106、将hive数据库中的所述第一测试结果集和所述第二测试结果集进行差异性比较得到相应的差异比较结果,将所述差异比较结果发送至接收终端。
[0083]
在本实施例中,当完成了将所述第一测试结果集和所述第二测试结果集均存储在hive数据库中的不同分区后,例如仍参考上述实例,将hive数据库中第一测试结果集中存储在第a1分区表中的数据与第二测试结果集中存储在第b1分区表中的数据进行差异性比较,得到第一差异比较子结果;之后将第一测试结果集中存储在第a2分区表中的数据与第二测试结果集中存储在第b2分区表中的数据进行差异性比较,得到第二差异比较子结果;依次类推直至获取到第n差异比较子结果,从而将第一差异比较子结果至第n差异比较子结果进行组合并填充到预设的空白模板中,即可得到差异比较结果,将所述差异比较结果发
送至接收终端即可及时查看比较结果。
[0084]
该方法实现了使用真实流量数据的镜像数据参与待测试对象分别在生产版本和待发布版本下的测试,测数数据获取效率高,数据量充足且均是真实历史业务数据,提高了测试效率和测试准确度。
[0085]
本发明实施例还提供一种基于场景化消息队列的数据测试装置,该基于场景化消息队列的数据测试装置用于执行前述基于场景化消息队列的数据测试方法的任一实施例。具体地,请参阅图3,图3是本发明实施例提供的基于场景化消息队列的数据测试装置100的示意性框图。
[0086]
其中,如图3所示,基于场景化消息队列的数据测试装置100包括测试场景信息获取单元101、目标消息队列获取单元102、镜像数据集获取单元103、第一测试结果集获取单元104、第二测试结果集获取单元105、测试结果比对单元106。
[0087]
测试场景信息获取单元101,用于响应于消息队列多场景测试指令,获取与所述消息队列多场景测试指令相应的待测试场景信息。
[0088]
在本实施例中,是以服务器为执行主体来描述技术方案。具体的,服务器本地安装有hive数据库,服务器与消息队列服务器集群(消息队列服务器集群中包括多个消息队列服务器,每一个消息队列服务器可以部署针对某一具体场景的消息队列)进行通讯和数据交互,这样即可基于服务器对待测试对象(例如待测试对象为某一款能对消息队列中用户数据进行处理的功能模块,该功能模块属于某一款应用程序中的单个或多个功能模块,更具体如用户验证模块、用户信息合并模块等)进行多种环境下的测试,例如在生产版本这一环境下对待测试对象基于消息队列的镜像拷贝流量数据进行测试,或是在待发布版本这一环境下对待测试对象基于消息队列的镜像拷贝流量数据进行测试。其中,消息队列服务器中的镜像拷贝流量数据是真实业务数据的镜像,完全复制了某一时间段的真实业务数据,其用于测试相较于手动构造消息队列报文数据效率更高,测试效果更佳。即由于测试过程采用的是消息队列中真实流量的镜像拷贝,无需依赖测试人员手工构造消息队列报文数据(即mq报文数据),业务场景覆盖全面,报文数据拟真度更高。
[0089]
目标消息队列获取单元102,用于获取所述待测试场景信息中包括的待测试场景,及各待测试场景对应的目标消息队列。
[0090]
在本实施例中,也可以基于服务器对待测试对象进行多种业务场景下的测试,例如对上述列举的应用程序在正常购买场景下进行测试,对上述列举的应用程序在拼团购买场景下进行测试,对上述列举的应用程序在限时优惠场景下进行测试。为了对待测试对象在多种具体业务场景分别进行测试,需要先获取具体的待测试场景信息,具体如待测试场景名称即可理解为待测试场景信息,待测试场景信息中包括若干个待测试场景(也就是包括至少1个待测试场景)。在获取了待测试场景信息,服务器即可根据各待测试场景从相应的消息队列服务器中获取镜像拷贝流量数据以进行后续测试。
[0091]
在一实施例中,目标消息队列获取单元102包括:
[0092]
第一总个数获取单元,用于获取所述待测试场景信息中所述包括待测试场景的第一总个数;其中,所述第一总个数记为n;
[0093]
第一子待测试场景获取单元,用于获取所述待测试场景信息中包括的第i号待测试场景;其中,i的初始取值为1,且i的取值范围是[1,n];
[0094]
子目标消息队列第一获取单元,用于若确定所述第i号待测试场景对应的是单消息队列消息测试模式,获取所述第i号待测试场景相应的目标消息队列;
[0095]
子目标消息队列第二获取单元,用于若确定所述第i号待测试场景对应的是多消息队列消息测试模式,获取所述第i号待测试场景相应的多个消息队列组成目标消息队列;
[0096]
第一自增单元,用于将i的取值自增1更新i的取值;
[0097]
第一执行单元,用于若i的取值未超出n,返回执行所述获取所述待测试场景信息中包括的第i号待测试场景的步骤;
[0098]
第二执行单元,用于若i的取值超出n,将第1号待测试场景相应的目标消息队列至第n号待测试场景相应的目标消息队列进行保存。
[0099]
在本实施例中,为了针对待测试对象进行多种业务场景下的测试,此时可以依序获取每一个待测试场景所需交互的目标消息队列及对应的消息队列服务器,从而确定每一个业务场景下需要获取多少数据量的镜像拷贝流量数据进行测试。
[0100]
例如第1号待测试场景(如正常购买场景)对应的是单消息队列消息测试模式,其只需要从消息队列服务器集群中的消息队列服务器1获取镜像拷贝流量数据,以消息队列服务器1作为第1号待测试场景对应的目标消息队列,在针对第1号待测试场景进行测试时需从消息队列服务器1中获取镜像拷贝流量数据进行测试。
[0101]
例如第2号待测试场景(如限时优惠场景)对应的是多消息队列消息测试模式,其只需要从消息队列服务器集群中的消息队列服务器2-消息队列服务器10均获取镜像拷贝流量数据,以消息队列服务器2-消息队列服务器10组成的当前队列集群作为第2号待测试场景对应的目标消息队列,在针对第2号待测试场景进行测试时需从消息队列服务器2-消息队列服务器10中均获取镜像拷贝流量数据进行测试。
[0102]
可见,只有先确定了待测试场景是单消息队列消息测试模式或是多消息队列消息测试模式,才能对应获取目标消息队列从而进一步获取测试所用的镜像拷贝流量数据。
[0103]
在一实施例中,所述子目标消息队列第一获取单元还用于:
[0104]
若确定所述第i号待测试场景对应的是单消息队列消息测试模式,调用预设的第一消息队列选择策略,根据所述第一消息队列选择策略从消息队列服务器集群中获取所述第i号待测试场景相应的目标消息队列。
[0105]
在本实施例中,所述第一消息队列选择策略用于根据待测试场景的场景名称在消息队列服务器集群中获取具有对应业务场景用户数据的消息队列服务器作为目标消息队列服务器。或者是所述第一消息队列选择策略用于随机在消息队列服务器集群中获取一个消息队列服务器作为目标消息队列服务器。例如仍然参考上述示例,第1号待测试场景(如正常购买场景)对应的是单消息队列消息测试模式,而在消息队列服务器集群中消息队列服务器1中的用户数据具有正常购买场景的业务场景,这样根据所述第一消息队列选择策略从消息队列服务器集群中选中消息队列服务器1作为目标消息队列服务器,之后从消息队列服务器1这一目标消息队列服务器中获取镜像拷贝流量数据作为目标消息队列进行测试。可见,通过所述第一消息队列选择策略可以快速选定目标消息队列从而进行下一步测试,提高整个测试过程的效率。
[0106]
在一实施例中,所述子目标消息队列第二获取单元还用于:
[0107]
若确定所述第i号待测试场景对应的是多消息队列消息测试模式,调用预设的第
二消息队列选择策略,根据所述第二消息队列选择策略从消息队列服务器集群中获取所述第i号待测试场景的多个消息队列组成目标消息队列。
[0108]
其中,根据所述第二消息队列选择策略相应的最低测试数据需求量、及消息队列服务器集群中各消息队列服务器中镜像拷贝流量数据的数据量确定所选定的消息队列服务器集合,以满足所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量。
[0109]
在本实施例中,所述第二消息队列选择策略用于根据待测试场景对应的最低测试数据需求量(最低测试数据需求量是一个预设值)及消息队列服务器集群中各消息队列服务器中镜像拷贝流量数据的数据量来确定所选定的消息队列服务器集合,以满足所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量。例如仍然参考上述示例,第2号待测试场景(如限时优惠场景)对应的是多消息队列消息测试模式,第2号待测试场景的最低测试数据需求量是2000万,经分析可知消息队列服务器2-消息队列服务器10组成的当前队列集群中所有镜像拷贝流量数据的总数据量是2005万,满足了所选定的消息队列服务器集合中镜像拷贝流量数据的总数据量超出所述最低测试数据需求量的要求,这样根据所述第二消息队列选择策略从消息队列服务器集群中选中消息队列服务器2-消息队列服务器10组成的当前队列集群,之后从消息队列服务器2-消息队列服务器10这多个目标消息队列服务器中获取镜像拷贝流量数据作为目标消息队列进行测试。可见,通过所述第二消息队列选择策略也可以快速选定目标消息队列从而进行下一步测试,提高整个测试过程的效率。
[0110]
镜像数据集获取单元103,用于根据各待测试场景对应的目标消息队列及与各目标消息队列的镜像拷贝流量数据,获取与各待测试场景相应的镜像拷贝流量数据集。
[0111]
在本实施例中,由于各个消息队列服务器中已预先复制了某一时间段的真实业务数据作为镜像拷贝流量数据,当已知了各待测试场景对应的目标消息队列,并且已知与各目标消息队列的镜像拷贝流量数据,即可得到每一待测试场景分别需从哪些目标消息队列中获取镜像拷贝流量数据从而组成相应的镜像拷贝流量数据集。通过这一定向检索获取数据方式,提高了数据获取的效率。
[0112]
第一测试结果集获取单元104,用于将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行生产版本下的测试,得到与各待测试场景对应的第一测试结果集,将所述第一测试结果集存储至hive数据库。
[0113]
在本实施例中,当获取了各待测试场景相应的镜像拷贝流量数据集后,对待测试对象进行生产版本下的测试,其中待测试对象的生产版本即待测试对象正在供用户正常使用的版本。对待测试对象进行生产版本下的测试时,是为了获取待测试对象在生产环境下的测试结果。若相对于各待测试场景相应的镜像拷贝流量数据集分别通过流量重放分别对待测试对象进行生产版本下的测试,即可得到各待测试场景分别相应的第一测试结果,由各待测试场景分别相应的第一测试结果组成第一测试结果集。
[0114]
为了后续比对测试结果,可以将与各待测试场景对应的测试结果存储至hive数据库中相应的分区表中,例如待测试场景1对应的测试结果存储在hive数据库中的分区表a1中,待测试场景2对应的测试结果存储在hive数据库中的分区表a2中等。
[0115]
在一实施例中,第一测试结果集获取单元104包括:
[0116]
第一子镜像拷贝流量数据集获取单元,用于获取第j号待测试场景的镜像拷贝流量数据集;其中j的初始取值为1,且j的取值范围是[1,n],所述待测试场景信息中所述包括待测试场景的第一总个数记为n;
[0117]
第一数据消费日内时间获取单元,用于将所述第j号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的被消费时间中日期参数移除,得到各镜像拷贝流量数据的数据消费日内时间;
[0118]
第一排序结果获取单元,用于将所述第j号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据根据数据消费日内时间的升序进行排序,得到排序结果;
[0119]
第一测试结果分区存储单元,用于将所述排序结果依序进行流量重放对待测试对象进行生产版本下的第j轮测试,得到与第j号待测试场景对应的第j轮测试结果,将第j轮测试结果存储至hive数据库中的第aj分区表中;
[0120]
第二自增单元,用于将j的取值自增1更新j的取值;
[0121]
第三执行单元,用于若j的取值未超出n,返回执行所述获取第j号待测试场景的镜像拷贝流量数据集的步骤;
[0122]
第四执行单元,用于若j的取值超出n,由第1轮测试结果至第n轮测试结果组成第一测试结果集。
[0123]
在本实施例中,由于镜像拷贝流量数据集中每一条镜像拷贝流量数据都具有加入消息队列的时间以及被消费后移出消息队列的时间这些属性,也就是每一条镜像拷贝流量数据是何时从消息队列中被消费进入至对应的服务器都是已知的。这样可以将镜像拷贝流量数据集中各条镜像拷贝流量数据被消费进入至对应的服务器的被消费时间中具体日期去除,只保留各条镜像拷贝流量数据的被消费时间中除日期之外的其他部分(例如此时至保留了被消费时间中的小时取值、分钟取值及秒取值),将被消费时间中除日期之外的其他部分可以简记为数据消费日内时间,这样再将镜像拷贝流量数据集中各条镜像拷贝流量数据根据数据消费日内时间进行升序排序处理然得到排序结果,然后将排序结果中各镜像拷贝流量数据根据数据消费日内时间发送至服务器进行模拟测试,通过这一方式实现了流量重放。而且由于消除了日期对排序结果的影响,可以将多个不同日期的镜像拷贝流量数据有效组合成同一日的数据从而以流量重放的方式参与测试,提升测试数据的数据量,测试效果更佳。
[0124]
其中,在服务器中基于各待测试场景相应的镜像拷贝流量数据集分别对待测试对象进行生产版本下的测试时,还可以获取服务器在对待测试对象进行生产版本下的测试时的每秒请求处理量(英文全称是query per second,简记为qpc)以作为服务器的第一mq处理性能基线。
[0125]
第二测试结果集获取单元105,用于将各待测试场景相应的镜像拷贝流量数据集通过流量重放分别对待测试对象进行待发布版本下的测试,得到与各待测试场景对应的第二测试结果集,将所述第二测试结果集存储至hive数据库。
[0126]
在本实施例中,还可对待测试对象进行待发布版本下的测试,其中待测试对象的待发布即待测试对象在通过测试后即可上线供用户更新使用的版本,其本质仍是一个测试版本。对待测试对象进行待发布版本下的测试时,是为了获取待测试对象在测试环境下的测试结果。若相对于各待测试场景相应的镜像拷贝流量数据集分别通过流量重放分别对待
测试对象进行待发布版本下下的测试,即可得到各待测试场景分别相应的第二测试结果,由各待测试场景分别相应的测试结果组成第二测试结果集。
[0127]
为了后续比对测试结果,可以将与各待测试场景对应的第二测试结果存储至hive数据库中相应的分区表中,例如待测试场景1对应的第二测试结果存储在hive数据库中的分区表b1中,待测试场景2对应的测试结果存储在hive数据库中的分区表b2中等。
[0128]
在一实施例中,第二测试结果集获取单元105包括:
[0129]
第二子镜像拷贝流量数据集获取单元,用于获取第k号待测试场景的镜像拷贝流量数据集;其中k的初始取值为1,且k的取值范围是[1,n],所述待测试场景信息中所述包括待测试场景的第一总个数记为n;
[0130]
第二数据消费日内时间获取单元,用于将所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的被消费时间中日期参数移除,得到所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据的数据消费日内时间;
[0131]
第二排序结果获取单元,用于将所述第k号待测试场景的镜像拷贝流量数据集中各镜像拷贝流量数据根据数据消费日内时间的升序进行排序,得到排序结果;
[0132]
第二测试结果分区存储单元,用于将所述排序结果依序进行流量重放对待测试对象进行待发布本本下的第k轮测试,得到与第k号待测试场景对应的第k轮测试结果,将第k轮测试结果存储至hive数据库中的第bk分区表中;
[0133]
第三自增单元,用于将k的取值自增1更新k的取值;
[0134]
第五执行单元,用于若k的取值未超出n,返回执行所述获取第k号待测试场景的镜像拷贝流量数据集的步骤;
[0135]
第六执行单元,用于若k的取值超出n,由第1轮测试结果至第n轮测试结果组成第二测试结果集。
[0136]
在本实施例中,在对待测试对象进行待发布版本下的测试的过程也是参考对待测试对象进行生产版本下的测试。而且在服务器中基于各待测试场景相应的镜像拷贝流量数据集分别对待测试对象进行待发布版本下的测试时,还可以获取服务器在对待测试对象进行生产版本下的测试时的每秒请求处理量以作为服务器的第二mq处理性能基线。
[0137]
测试结果比对单元106,用于将hive数据库中的所述第一测试结果集和所述第二测试结果集进行差异性比较得到相应的差异比较结果,将所述差异比较结果发送至接收终端。
[0138]
在本实施例中,当完成了将所述第一测试结果集和所述第二测试结果集均存储在hive数据库中的不同分区后,例如仍参考上述实例,将hive数据库中第一测试结果集中存储在第a1分区表中的数据与第二测试结果集中存储在第b1分区表中的数据进行差异性比较,得到第一差异比较子结果;之后将第一测试结果集中存储在第a2分区表中的数据与第二测试结果集中存储在第b2分区表中的数据进行差异性比较,得到第二差异比较子结果;依次类推直至获取到第n差异比较子结果,从而将第一差异比较子结果至第n差异比较子结果进行组合并填充到预设的空白模板中,即可得到差异比较结果,将所述差异比较结果发送至接收终端即可及时查看比较结果。
[0139]
该装置实现了使用真实流量数据的镜像数据参与待测试对象分别在生产版本和待发布版本下的测试,测数数据获取效率高,数据量充足且均是真实历史业务数据,提高了
测试效率和测试准确度。
[0140]
上述基于场景化消息队列的数据测试装置可以实现为计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
[0141]
请参阅图4,图4是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是服务器,也可以是服务器集群。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0142]
参阅图4,该计算机设备500包括通过装置总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
[0143]
该存储介质503可存储操作装置5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于场景化消息队列的数据测试方法。
[0144]
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
[0145]
该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于场景化消息队列的数据测试方法。
[0146]
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0147]
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的基于场景化消息队列的数据测试方法。
[0148]
本领域技术人员可以理解,图4中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图4所示实施例一致,在此不再赘述。
[0149]
应当理解,在本发明实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0150]
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的基于场景化消息队列的数据测试方法。
[0151]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法
步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0152]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0153]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0154]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0155]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,后台服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0156]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献