一种基于店铺维度的订单调度系统压力测试方法及装置与流程

文档序号:17536678发布日期:2019-04-29 14:03阅读:308来源:国知局
一种基于店铺维度的订单调度系统压力测试方法及装置与流程

本发明实施例涉及系统测试技术领域,具体涉及一种基于店铺维度的订单调度系统压力测试方法及装置。



背景技术:

随着智能物流领域系统的丰富,为了保证系统在各种场景下都能够长期稳定的运行,对系统进行压力测试是非常关键的一环。

现有的技术中,对于以店铺为维度的调度服务做压力测试,一般需要临时生成店铺数据,订单数据和构造骑士数据等;而且没有完整的测试流程。



技术实现要素:

为解决现有订单调度服务压力测试中的问题,本发明实施例提供一种基于店铺维度的订单调度系统压力测试方法及装置。

第一方面,本发明实施例提供一种基于店铺维度的订单调度系统压力测试方法,该方法包括:自动采集流程,具体包括:根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息;根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息;压力测试流程,具体包括:进行压测压力的配置以及进行压测初始化;根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单;若判断获知压测结束,则进行压测结果的采集。

第二方面,本发明实施例提供一种基于店铺维度的订单调度系统压力测试装置,该装置包括:自动采集子装置,具体用于:根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息;根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息;压力测试子装置,具体用于:进行压测压力的配置以及进行压测初始化;根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单;若判断获知压测结束,则进行压测结果的采集。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的基于店铺维度的订单调度系统压力测试方法及装置,通过定期对线上数据进行采集,并生成压测用的店铺信息、骑士信息及订单信息,保证了压测时有可靠的实时数据,不需要临时生成;压力测试时通过进行压测压力的配置、压测的实施以及压测结果采集,实现了完整的压测流程。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于店铺维度的订单调度系统压力测试方法流程图;

图2是本发明另一实施例提供的基于店铺维度的订单调度系统压力测试方法的自动采集流程图;

图3是本发明又一实施例提供的基于店铺维度的订单调度系统压力测试方法的压力测试流程图;

图4是本发明实施例提供的基于店铺维度的订单调度系统压力测试装置结构示意图;

图5是本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明实施例提供的基于店铺维度的订单调度系统压力测试方法流程图。如图1所示,所述方法包括:

步骤101、自动采集流程,具体包括:根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息;根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息;

根据预设的采集周期,进行所述自动采集流程。所述采集周期可以通过填写配置文件的方式进行设置,比如设置为7天采集一次。

根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息。所述基础店铺信息是指从网上获取的一个真实店铺的信息,所述基础店铺作为实际店铺,用于生成高于线上实际店铺总数量的模拟店铺以用于进行压力测试。所述基础店铺的唯一标识可以为店铺id,所述基础店铺的坐标信息可以为经纬度信息,所述基础店铺的骑士信息包括基础店铺的平均骑士数量(以天计),所述基础店铺的峰值订单信息包括基础店铺的峰值订单数量。所述线上总店铺数量是指订单调度系统线上的实际店铺总量。

根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息。所述基础店铺需要立即调度的订单信息包括基础店铺需要立即调度的订单数量。基础店铺的峰值订单数量可以反映基础店铺需要立即调度的订单数量,可以将基础店铺需要立即调度的订单数量设置成大于基础店铺的峰值订单数量的某个值用于压力测试。根据基础店铺的峰值订单数量和基础店铺需要立即调度的订单数量之间的关系,可以根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息。

根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息。所述压测店铺信息是指用于压力测试的店铺信息,所述压测骑士信息是指用于压力测试的骑士信息,所述压测订单信息是指用于压力测试的订单信息。

所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息,根据所述基础店铺信息以及所述线上总店铺数量可以得到所述压测店铺信息以及所述压测骑士信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息可以得到所述压测订单信息。

步骤102、压力测试流程,具体包括:进行压测压力的配置以及进行压测初始化;根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单;若判断获知压测结束,则进行压测结果的采集。

根据压力测试的需求,可以在需要进行压力测试的任何时机进行压力测试,压力测试中利用自动采集流程得到的所述压测店铺信息、压测骑士信息以及压测订单信息。由于自动采集周期进行,因此,压力测试时可以利用最新完成的一个采集周期得到的数据信息。

压力测试首先进行压测压力的配置以及进行压测初始化。所述压测压力的配置主要用于设定压测的规则条件;所述压测初始化主要用于加载用于压测的相关信息。根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单,即进行压力测试的实施。根据压测压力的配置以及压测店铺信息、压测骑士信息以及压测订单信息,基于订单调度系统进行骑士信息更新、订单状态更新以及新订单下单的操作,模拟真实的下订单、订单指派、订单派送、订单完成等系列过程,以进行压力测试。

根据设定的条件,如达到压测的店铺的最大数量、压测被主动停止、下单轮次达到最大等,则判断获知压测结束。若判断获知压测结束,则进行压测结果的采集,所述压测结果用于反映订单调度系统是否能够在所施加的压力下稳定工作,从而根据压测结果判断系统的性能,完成压力测试。

本发明实施例通过定期对线上数据进行采集,并生成压测用的店铺信息、骑士信息及订单信息,保证了压测时有可靠的实时数据,不需要临时生成;压力测试时通过进行压测压力的配置、压测的实施以及压测结果采集,实现了完整的压测流程。

进一步地,基于上述实施例,所述根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息,具体包括:根据所述基础店铺的峰值订单信息获取基础店铺的峰值订单数量,通过采集高峰时刻的所述基础店铺的峰值订单数量的第一预设倍数的订单信息作为所述基础店铺需要立即调度的订单信息。

高峰时刻的订单数量更能反映系统是否能够承受压力。所述基础店铺的峰值订单信息包括基础店铺的峰值订单数量,所述基础店铺需要立即调度的订单信息包括基础店铺需要立即调度的订单数量。所述基础店铺需要立即调度的订单数量可以设置为基础店铺的峰值订单数量的第一预设倍数。所述第一预设倍数可以为1.5倍。所述高峰时刻包括出现峰值订单数量的时间段。因此,可以通过采集高峰时刻的所述基础店铺的峰值订单数量的第一预设倍数的订单信息作为所述基础店铺需要立即调度的订单信息。

在上述实施例的基础上,本发明实施例通过采集高峰时刻的所述基础店铺的峰值订单数量的第一预设倍数的订单信息作为所述基础店铺需要立即调度的订单信息,提高了压测订单信息的可靠性。

进一步地,基于上述实施例,所述压测店铺信息、所述压测骑士信息以及所述压测订单信息的生成过程,具体包括:对所述基础店铺的坐标信息进行坐标偏移,生成预设数量的坐标偏移数据对;其中,所述预设数量为所述线上总店铺数量乘以第二预设倍数;根据所述预设数量的坐标偏移数据对,分别对基础店铺的坐标信息进行坐标偏移,得到所述压测店铺信息;并分别对所述基础店铺的骑士信息以及所述基础店铺需要立即调度的订单信息做相应的坐标偏移,得到所述压测骑士信息以及所述压测订单信息。

本发明实施例中进行压力测试利用比线上实际总店铺数量更多数量的店铺进行压力测试。根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板。可以通过“复制”基础店铺信息,生成布局于多个坐标位置的模拟店铺作为压测店铺来进行压力测试。

由于所述基础店铺信息包括基础店铺的坐标信息,首先对所述基础店铺的坐标信息进行坐标偏移,生成预设数量的坐标偏移数据对。所述预设数量根据拟进行压力测试的店铺数量而定。所述预设数量可以设置成大于线上总店铺数量的某个值,因此,所述预设数量可以根据所述线上总店铺数量确定。所述预设数量为所述线上总店铺数量乘以第二预设倍数,所述第二预设倍数可以为1.5倍。比如,若线上总店铺数量为100个,则可以生成150个坐标偏移数据对。

根据所述预设数量的坐标偏移数据对,分别对基础店铺的坐标信息进行坐标偏移,得到所述压测店铺信息。比如,根据所生成的150个坐标偏移数据对,分别对基础店铺的坐标信息进行坐标偏移,可以得到150个模拟店铺。对基础店铺的坐标信息进行坐标偏移相当于改变基础店铺的位置信息。由于坐标偏移对可以包括(0,0),因此,所生成的压测店铺可以包括所述基础店铺。每个所述压测店铺可以根据所述基础店铺的唯一标识的形式生成相应的唯一标识。所述压测店铺信息可以包括压测店铺的地址以及唯一标识。

根据所述预设数量的坐标偏移数据对,分别对所述基础店铺的骑士信息以及所述基础店铺需要立即调度的订单信息做相应的坐标偏移,得到所述压测骑士信息以及所述压测订单信息,使得所述压测骑士信息以及所述压测订单信息跟所述压测店铺信息的相对位置保持不变。

在上述实施例的基础上,本发明实施例通过对基础店铺的坐标信息进行坐标偏移,进而得到压测店铺信息、压测骑士信息以及压测订单信息,保证了足量的可模拟真实数据的压测数据。

进一步地,基于上述实施例,所述进行压测压力的配置,具体包括:配置起压店铺数量、最大店铺数量、每一轮增加的店铺数量、每轮下单次数、每个店铺一次下单数量、每个店铺骑士数量以及单个骑士订单数量上限。

在进行压测之前,需要设置压测的相关配置信息,可以称之为进行压测压力的配置。所述进行压测压力的配置,具体包括:配置起压店铺数量、最大店铺数量、每一轮增加的店铺数量、每轮下单次数、每个店铺一次下单数量、每个店铺骑士数量以及单个骑士订单数量上限。

其中,起压店铺数量和最大店铺数量是指按照逐步递增压力的方式进行压力测试时,第一轮压测所设置的店铺数量及最后一轮压测所设置的店铺数量。每一轮增加的店铺数量指按照逐步递增压力的方式进行压力测试时,后一轮压测比前一轮压测所增加的店铺数量。每轮下单次数设定了在一轮压力测试中的下单次数。每个店铺一次下单数量设定了在一轮压力测试中对于单个店铺的下单数量。每个店铺骑士数量以及单个骑士订单数量上限设定了压力测试中每个店铺的骑士数量以及每个骑士所能指派的最大订单数量。

在上述实施例的基础上,本发明实施例通过进行压测压力的配置,使得压测时有章可循,保证了压力测试的正常进行。

进一步地,基于上述实施例,所述进行压测初始化,具体包括:加载所述压测店铺信息、所述压测骑士信息以及所述压测订单信息。

所述进行压测初始化,具体包括:加载所述压测店铺信息、所述压测骑士信息以及所述压测订单信息。加载所述压测店铺信息、所述压测骑士信息以及所述压测订单信息是指获取周期性生成的所述压测店铺信息、所述压测骑士信息以及所述压测订单信息以用于压力测试,做好压测准备。

如果按照逐步递增压力的方式进行压力测试,可以一次性获取最大数量店铺所对应的压测店铺信息、压测骑士信息以及压测订单信息,也可按照每轮压测时所需获取相应的压测店铺信息、压测骑士信息以及压测订单信息。

在上述实施例的基础上,本发明实施例通过加载压测店铺信息、压测骑士信息以及压测订单信息进行压测初始化,为压测的实施提供基础。

进一步地,基于上述实施例,所述进行压测结果的采集,具体包括:对压测的数据记录进行采集,包括采集订单数量信息、订单指派情况记录信息、机器的内存使用信息以及cpu使用情况信息;对调度系统的日志进行采集,包括采集错误日志以及每一轮的耗费时间;所述每一轮的耗费时间包括指派耗时;对调度情况进行采集,包括采集每一轮订单剩余信息以及订单指派数量统计信息。

压测是指对订单调度系统进行压力测试,压测结果可以反映订单调度系统在面临所施加的调度压力的表现情况。

所述进行压测结果的采集,具体包括:对压测的数据记录进行采集,所述数据记录包括订单数量信息、订单指派情况记录信息、机器的内存使用信息以及cpu使用情况信息;对调度系统的日志进行采集,包括采集错误日志以及每一轮的耗费时间;所述每一轮的耗费时间包括指派耗时;对调度情况进行采集,包括采集每一轮订单剩余信息以及订单指派数量统计信息。

在上述实施例的基础上,本发明实施例通过对压测的数据记录、调度系统的日志以及调度情况进行采集,保证了压测结果的全面性。

进一步地,基于上述实施例,所述基础店铺的唯一标识以及所述基础店铺的坐标信息通过读取配置文件的方式获取。

可以通过写入配置文件的方式配置好线上基础店铺的信息,包括基础店铺的唯一标识以及所述基础店铺的坐标信息。相应地,在进行压测时,可以通过读取配置文件的方式读取所述基础店铺的唯一标识以及所述基础店铺的坐标信息。

在上述实施例的基础上,本发明实施例通过读取配置文件的方式获取基础店铺的唯一标识以及基础店铺的坐标信息,提高了基础店铺信息获取的便利性。

图2是本发明另一实施例提供的基于店铺维度的订单调度系统压力测试方法的自动采集流程图。如图2所示,自动采集流程的步骤包括:

步骤201:用户通过填写配置文件的方式,配置好线上基础店铺的信息;配置好自动采集的周期(比如:7天采集一次)。

步骤202:通过命令行,启动自动采集器。

步骤203:从配置文件中获取采集周期,并且根据采集周期循环进行采集。

步骤204:获取配置文件中的基础店铺信息。

步骤205:判断基础店铺信息是否完整,如果不完整,则跳转到步骤215,一轮采集完成;否则跳转到206。

步骤206:获取系统总店铺数量smax并且进行保存。

步骤207:获取基础店铺每天的平均骑士数量并且进行保存。

步骤208:获取基础店铺的峰值订单数量omax并且进行保存。

步骤209:获取基础店铺需要立即进行订单调度的订单信息。

步骤210:根据步骤208采集到的店铺的订单峰值omax,采集高峰时刻的订单信息,采集的订单数量为omax的1.5倍。

步骤211:根据基础店铺的坐标信息(lat,lng),进行坐标的随机偏移总店铺数量smax*1.5次,产生smax*1.5个偏移信息,保存这些偏移信息。

步骤212:根据步骤211产生的偏移,对基础店铺进行相同的偏移,生成smax*1.5个新的店铺shop_list。

步骤213:根据步骤211产生的坐标偏移信息对步骤210产生的订单信息进行相同的偏移,使得订单跟店铺的相对位置保持不变。

步骤214:保存步骤212的店铺信息和213的订单信息。

步骤215:一轮采集完成跳转到步骤203,进行循环。

图3是本发明又一实施例提供的基于店铺维度的订单调度系统压力测试方法的压力测试流程图。如图2所示,压力测试流程的步骤包括:

步骤301:用户通过填写配置文件的方式,配置好压测压力,比如:起压店铺数量shop_start;最大店铺数量shop_max;每一轮增加的店铺数量shop_step;每一轮下单多少次,每一个店铺一次下单多少;每一个店铺多少个骑士,骑士身上最多可以指派多少个订单等信息。

步骤302:根据步骤301的配置,在压测前对数据进行初始化,包括根据自动采集装置保存的店铺信息shop_list和单个店铺的骑士的个数,预生成骑士信息rider_list;根据步骤301设置的单店铺一次下单数量order_num,从自动采集装置保存的订单信息中获取order_num个订单。

步骤303:对压测过程进行判断,判断是否结束压测,判断的逻辑包括店铺数量是否已经达到最大值,压测是否被主动停止,下单轮次是否达到最大等条件。如果压测结束则跳转到步骤312进行压测结果采集;否则跳转到步骤304。

步骤304:系统压测操作,包括调用步骤305、步骤308、步骤309三个子操作。三个操作并行进行。

步骤305:系统更新骑士信息操作,模拟骑士回到店铺,刷新更新时间。

步骤306:判断是否需要更新,是的话就跳转到步骤307进行更新,否则跳转到303。判断条件用户自己定义,可以设置为周期更新或者只更新一次。

步骤307:使用步骤302初始化好的rider_list对骑士的信息进行更新。

步骤308:进行订单状态更新操作,模拟订单已经配送完成。操作完成后跳转到步骤303。

步骤309:新订单下单操作。

步骤310:判断是否需要进行新订单下单,如果不需要,跳转到步骤303,如果需要,则跳转到步骤311。

步骤311:根据步骤302初始化的每个店铺order_num个订单和店铺信息shop_list,对每一个店铺进行订单模拟下单。

步骤312:进行压测数据记录,包括记录机器的使用情况(cpu,内存等)、新订单下单情况,下单周期,每一次下单时间,下单数量、店铺数量、每一轮店铺情况等数据。

步骤313:对调度服务的日志进行采集,包括采集错误日志,调度的耗时(指派时间,指派耗时等信息)

步骤314:对调度情况进行分析记录,包括分析每一次新订单下单的压单情况,订单的调度情况,不同压力情况下的压单情况等数据。

步骤315:压测结束。

现通过两个应用场景对本发明实施例提供的基于店铺维度的订单调度系统压力测试方法进一步说明。

场景一:现在有一项测试任务,需要对系统的稳定性进行验证,验证在500个店铺下面,每一个店铺10个骑士,每一个一次最大订单下单数量10个,系统的运行情况。使用系统进行压力测试。需要先使用自动采集子装置从线上找到一个参考店铺,把这个参考店铺的坐标信息拿到,然后拿到这个店铺的某一个峰值的时刻的订单信息,订单的数量要超过10个。然后使用压力测试子装置,设置起压店铺数量shop_start=500;最大店铺数量shop_max=500;每一轮增加的店铺数量shop_step=0;每一轮下单10次,下单周期为30s/次,每一个店铺一次下单10个;每一个店铺10个骑士。进行初始化,初始化500个店铺,500*10个骑士,500*10个订单信息。初始化完成后,进行压力测试,同时进行骑士信息更新、订单状态更新、新订单下单等操作。骑士信息只需要压测前更新一次,订单状态每30s更新一次。新订单下单,每次500个店铺进行下单。观察和记录压测结果。包括每一次订单是否可以正常指派出去,是否有压单,是否有错误日志产生,机器的内存和cpu使用是否正常等数据。

场景二:现在有一项测试任务,需要对系统的稳定性进行验证,验证在50-500个店铺下面,每一个店铺10个骑士,每一个一次最大订单下单数量10个,系统的运行情况。使用系统进行压力测试。设置起压店铺数量shop_start=50;最大店铺数量shop_max=500;每一轮增加的店铺数量shop_step=50;每一轮下单10次,下单周期为30s/次,每一个店铺一次下单10个;每一个店铺10个骑士。进行初始化,初始化500个店铺,500*10个骑士,500*10个订单信息。然后进行压力测试。在新订单下单处,根据该轮次的店铺数量,比如第一轮,则进行50个店铺的下单,第二轮则进行100个店铺的下单。最后进行压测结果的采集。

本发明实施例通过定期对线上数据进行采集,并生成压测用的店铺信息、骑士信息及订单信息,保证了压测时有可靠的实时数据,不需要临时生成;压测使用的订单和店铺信息自动采集,保证了订单的实时性和可靠性;压力测试时通过进行压测压力的配置、压测的实施以及压测结果采集,实现了完整的压测流程。

图4是本发明实施例提供的基于店铺维度的订单调度系统压力测试装置结构示意图。如图4所示,所述装置包括自动采集子装置10及压力测试子装置20,其中:

自动采集子装置10具体用于:根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息;根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息;

压力测试子装置20具体用于:进行压测压力的配置以及进行压测初始化;根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单;若判断获知压测结束,则进行压测结果的采集。

本发明实施例通过定期对线上数据进行采集,并生成压测用的店铺信息、骑士信息及订单信息,保证了压测时有可靠的实时数据,不需要临时生成;压力测试时通过进行压测压力的配置、压测的实施以及压测结果采集,实现了完整的压测流程。

进一步地,基于上述实施例,所述自动采集子装置10在用于根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息时,具体用于:根据所述基础店铺的峰值订单信息获取基础店铺的峰值订单数量,通过采集高峰时刻的所述基础店铺的峰值订单数量的第一预设倍数的订单信息作为所述基础店铺需要立即调度的订单信息。

在上述实施例的基础上,本发明实施例通过采集高峰时刻的所述基础店铺的峰值订单数量的第一预设倍数的订单信息作为所述基础店铺需要立即调度的订单信息,提高了压测订单信息的可靠性。

进一步地,基于上述实施例,所述自动采集子装置10在用于生成所述压测店铺信息、所述压测骑士信息以及所述压测订单信息时,具体用于:对所述基础店铺的坐标信息进行坐标偏移,生成预设数量的坐标偏移数据对;其中,所述预设数量为所述线上总店铺数量乘以第二预设倍数;根据所述预设数量的坐标偏移数据对,分别对基础店铺的坐标信息进行坐标偏移,得到所述压测店铺信息;并分别对所述基础店铺的骑士信息以及所述基础店铺需要立即调度的订单信息做相应的坐标偏移,得到所述压测骑士信息以及所述压测订单信息。

在上述实施例的基础上,本发明实施例通过对基础店铺的坐标信息进行坐标偏移,进而得到压测店铺信息、压测骑士信息以及压测订单信息,保证了足量的可模拟真实数据的压测数据。

进一步地,基于上述实施例,所述压力测试子装置20在用于进行压测压力的配置时,具体用于:配置起压店铺数量、最大店铺数量、每一轮增加的店铺数量、每轮下单次数、每个店铺一次下单数量、每个店铺骑士数量以及单个骑士订单数量上限。

在上述实施例的基础上,本发明实施例通过进行压测压力的配置,使得压测时有章可循,保证了压力测试的正常进行。

进一步地,基于上述实施例,所述压力测试子装置20在用于进行压测初始化时,具体用于:加载所述压测店铺信息、所述压测骑士信息以及所述压测订单信息。

在上述实施例的基础上,本发明实施例通过加载压测店铺信息、压测骑士信息以及压测订单信息进行压测初始化,为压测的实施提供基础。

进一步地,基于上述实施例,所述压力测试子装置20在进行压测结果的采集时,具体用于:对压测的数据记录进行采集,包括采集订单数量信息、订单指派情况记录信息、机器的内存使用信息以及cpu使用情况信息;对调度系统的日志进行采集,包括采集错误日志以及每一轮的耗费时间;所述每一轮的耗费时间包括指派耗时;对调度情况进行采集,包括采集每一轮订单剩余信息以及订单指派数量统计信息。

在上述实施例的基础上,本发明实施例通过对压测的数据记录、调度系统的日志以及调度情况进行采集,保证了压测结果的全面性。

进一步地,基于上述实施例,所述自动采集子装置10在用于获取所述基础店铺的唯一标识以及所述基础店铺的坐标信息时通过读取配置文件的方式获取。

在上述实施例的基础上,本发明实施例通过读取配置文件的方式获取基础店铺的唯一标识以及基础店铺的坐标信息,提高了基础店铺信息获取的便利性。

本发明实施例提供的基于店铺维度的订单调度系统压力测试装置,包括了自动采集子装置和压力测试子装置等两个子装置。通过自动采集子装置,定期对线上数据进行采集,保证了压测时有可靠的实时数据,不需要临时生成。压力测试子装置实现了一个完整的压测流程,方便了压测方案的实施同时又可以对日志进行监控,而且最终有压测结果和调度情况产出,方便分析结果。

本发明实施例提供的装置是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。

图5是本发明实施例提供的电子设备的实体结构示意图。如图5所示,该电子设备可以包括:处理器(processor)810、通信接口(communicationsinterface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:自动采集流程,具体包括:根据预设的采集周期,获取基础店铺信息以及线上总店铺数量,所述基础店铺信息包括基础店铺的唯一标识、基础店铺的坐标信息、基础店铺的骑士信息以及基础店铺的峰值订单信息;根据所述基础店铺的峰值订单信息得到基础店铺需要立即调度的订单信息;根据所述基础店铺信息、所述线上总店铺数量以及所述基础店铺需要立即调度的订单信息生成压测模板,所述压测模板包括压测店铺信息、压测骑士信息以及压测订单信息;压力测试流程,具体包括:进行压测压力的配置以及进行压测初始化;根据配置的所述压测压力进行骑士信息更新、订单状态更新以及新订单下单;若判断获知压测结束,则进行压测结果的采集。

此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1