数据推送服务的测试方法、设备、存储介质及程序产品与流程

文档序号:25517272发布日期:2021-06-18 20:02阅读:81来源:国知局
数据推送服务的测试方法、设备、存储介质及程序产品与流程
本申请涉及计算机技术中的自动驾驶、云计算、智能交通等领域,尤其涉及一种数据推送服务的测试方法、设备、存储介质及程序产品。
背景技术
:目前,云控平台、车联网、地图应用等第三方平台获取红绿灯数据,通常是由负责红绿灯数据处理及推送的服务向上述第三方平台按需推送红绿灯数据:红绿灯数据推送服务通过接收路侧设备发送的路口红绿灯数据之后,按照需求进行数据处理,生成需要向第三方平台推送的红绿灯数据,并推送给第三方平台。为了测试负责红绿灯数据处理及推送服务的性能,传统的测试方法中对服务进行端到端的集成测试。路侧设备采集红绿灯数据,并将红绿灯数据发送给待测试的目标服务,目标服务对红绿灯数据进行处理得到第三方平台所需的红绿灯数据后,将得到的红绿灯数据推送至第三方平台。基于路侧设备采集红绿灯数据,以及第三方平台呈现的红绿灯数据,通常是基于单一路口的少量红绿灯数据进行测试,对目标服务的压力测试不足,导致上线后的目标服务的及时性和稳定性差。技术实现要素:本申请提供了一种数据推送服务的测试方法、设备、存储介质及程序产品。根据本申请的第一方面,提供了一种数据推送服务的测试方法,包括:根据红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送所述红绿灯数据,所述待测试服务用于对所述红绿灯数据进行处理,并向第三方平台推送处理后的结果数据;所述多个路口的红绿灯数据用于对所述待测试服务进行测试;采集所述待测试服务的测试数据。根据本申请的第二方面,提供了一种数据推送服务的测试设备,包括:数据构造及推送单元,用于根据红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送所述红绿灯数据,所述待测试服务用于对所述红绿灯数据进行处理,并向第三方平台推送处理后的结果数据;所述多个路口的红绿灯数据用于对所述待测试服务进行测试;测试数据采集单元,用于采集所述待测试服务的测试数据。根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。根据本申请的第五方面,提供了一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。根据本申请的技术实现了对数据推送服务的压力测试,提高了上线后的数据推送服务的及时性和稳定性。应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是根据本申请实施例的数据推送服务的测试系统架构图;图2是本申请第一实施例提供的数据推送服务的测试方法流程图;图3是本申请第二实施例提供的数据推送服务的测试方法流程图;图4是本申请第二实施例提供的一个路口的多相位构造状态的示例图;图5是本申请第三实施例提供的数据推送服务的测试设备示意图;图6是本申请第四实施例提供的数据推送服务的测试设备示意图;图7是用来实现本申请实施例的数据推送服务的测试方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本申请提供一种数据推送服务的测试方法、设备、存储介质及程序产品,应用于计算机技术中的自动驾驶、云计算、智能交通等领域,以实现对数据推送服务的压力测试,提高上线后的数据推送服务的及时性和稳定性。本申请提供的测试方法具体可以应用于如图1所示的用于对绿灯数据处理及推送的数据推送服务进行测试的系统架构,如图1所示,该系统架构包括:测试工具11、数据推送服务12和至少一个第三方平台(图1中以第三方平台13、第三方平台14、第三方平台15为例进行示例性地说明,对于第三方平台的数量不做具体限定)。其中,数据推送服务12用于接收红绿灯数据,对接收到的红绿灯进行处理(如协议转换、数据分发、读写、持久化处理等)得到各个第三方平台所需的数据结果,并将各数据结果推送至对应的第三方平台。本申请中待测试服务是指待测试的数据推送服务。测试工具11通过执行本实施例提供的测试方法,根据预先定义的红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,来模拟线上多个路口的路侧设备高并发地向数据推送服务12推送红绿灯数据的极限测试场景,在待测试服务处理红绿灯数据的过程中,对待测试服务进行测试,能够在上述极限测试场景下实现待测试服务的压力测试,提高上线后的目标服务的及时性和稳定性。图2是本申请第一实施例提供的数据推送服务的测试方法流程图。本实施例的执行主体可以是数据推送服务的测试装置,具体可以是部署于电子设备上的测试工具,本实施例以测试工具为例进行示例性地说明。如图2所示,该方法具体步骤如下:步骤s201、根据红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,待测试服务用于对红绿灯数据进行处理,并向第三方平台推送处理后的结果数据;多个路口的红绿灯数据用于对待测试服务进行测试。本实施例中,红绿灯数据推送的协议规则是预先定义的向待测试服务推送红绿灯数据的规则。红绿灯数据推送的协议规则可以包括:采用的协议、数据格式、数据结构、推送频率、红绿灯颜色跳变规则、以及与第三方平台的映射逻辑等等。测试工具可以根据预先定义的红绿灯数据推送的协议规则,自动地构造多个路口的红绿灯数据,能够模拟路侧设备采集到的红绿灯数据。其中,多个路口的红绿灯数据用于对待测试服务进行测试;待测试服务用于对接收到的红绿灯数据进行处理,并向第三方平台推送处理后的结果数据。本实施例中,可以并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,来模拟多个路口的路侧设备采集红绿灯数据并向待测试服务推送红绿灯数据的场景,模拟出了线上大并发量地向待测试服务推送红绿灯数据时的准确性、实时性和顺序性,构造出对待测试服务的高并发的极限测试场景。示例性地,可以通过多进程或多线程的方式实现并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据。步骤s202、采集待测试服务的测试数据。在通过测试工具构造出对待测试服务的高并发的极限测试场景下,对待测试服务进行测试,采集待测试服务的测试数据。该步骤中,测试工具可以采集用于评估待测试服务的性能及功能逻辑是否正常的测试数据,基于测试数据可以评估待测试服务的性能和功能是否满足要求。例如,可以采集待测试服务的性能指标、运行数据、及第三方平台呈现的待测试服务对红绿灯数据的处理结果等。本申请实施例通过根据预先定义的红绿灯数据推送的协议规则,通过并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,来模拟多个路口的路侧设备采集红绿灯数据并向待测试服务推送红绿灯数据的场景,模拟出了线上大并发量地向待测试服务推送红绿灯数据时的准确性、实时性和顺序性,构造出对待测试服务的高并发的极限测试场景,在该极限测试场景下,对待测试服务进行测试,能够实现对待测试服务的压力测试,提高上线后的目标服务的及时性和稳定性。图3是本申请第二实施例提供的数据推送服务的测试方法流程图。在上述第一实施例的基础上,本实施例中,为每个路口分配一个进程,进程用于构造对应路口的红绿灯数据,并向待测试服务推送所构造的红绿灯数据;通过每个进程异步地进行构造红绿灯数据和向待测试服务推送所构造的红绿灯数据的处理,能够保证大量路口的红绿灯数据在向待测试服务推送过程及之前不阻塞,且能够模拟不同路口的红绿灯数据之间的隔离性,防止不同路口的红绿灯数据之间的相互干扰。进一步地,可以采用多进程多线程的方式,每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据;通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据,来实现红绿灯数据构造和推送的异步处理,能够提高数据构造及推送的效率,提高向待测试服务推送红绿灯数据的实时性,保证向待测服务推送红绿灯数据的频率能够满足压力测试的要求,模拟实时地、高并发地向待测服务推送红绿灯数据的极限测试场景。如图3所示,该方法具体步骤如下:步骤s301、获取红绿灯数据推送的协议规则。本实施例中,红绿灯数据推送的协议规则是预先定义的向待测试服务推送红绿灯数据的规则。红绿灯数据推送的协议规则可以包括:采用的协议、数据格式、数据结构、推送频率、红绿灯颜色跳变规则、以及与第三方平台的映射逻辑等等。其中,采用的协议是指向待测试服务推送数据时所采用的协议,可以是http协议或者其他通信协议。数据格式是指向待测试服务推送的红绿灯数据的格式,可以是json格式、pb格式等。数据结构是指向待测试服务推送的红绿灯数据的结构信息,例如,红绿灯数据的结构可以是所在城市+路口标识+相位信息等。推送频率是指向待测试服务推送红绿灯数据的频率。红绿灯颜色跳变规则是指向待测试服务推送的红绿灯数据应当满足的跳变规则。例如,红绿灯不同颜色持续时长、颜色跳变的顺序等。与第三方平台的映射逻辑是指待测试服务如何将接受到的红绿灯数据映射到第三方平台,转换成第三方平台能够识别的数据。例如,测试工具向待测试服务推送的红绿灯数据中相位信息的标识信息(如phaseid,不同相位对应的phaseid不同),映射到第三方平台可以是道路方向和车流向。在需要进行待测试服务的测试时,首先获取预先定义的红绿灯数据推送的协议规则,协议规则中已经定义了红绿灯颜色跳变规则和推送频率,然后测试工具可以根据预先定义的红绿灯数据推送的协议规则,自动地构造多个路口的红绿灯数据,并向待测试服务推送所构造的红绿灯数据,能够保证向待测试服务推送红绿灯数据的准确性、顺序性和实时性。步骤s302、为每个路口分配一个进程,进程用于构造对应路口的红绿灯数据,并向待测试服务推送所构造的红绿灯数据。本实施例中,为每个路口分配一个进程,每个进程负责对应路口的红绿灯数据的构造和推送,能够模拟不同路口的红绿灯数据之间的隔离性,防止不同路口的红绿灯数据之间的相互干扰。通过多个进程并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,来模拟多个路口的路侧设备采集红绿灯数据并向待测试服务推送红绿灯数据的场景,模拟出了线上大并发量地向待测试服务推送红绿灯数据时的准确性、实时性和顺序性,构造出对待测试服务的高并发的极限测试场景。步骤s303、通过每个进程异步地进行构造红绿灯数据和向待测试服务推送所构造的红绿灯数据的处理。为了测试服务的性能极限,模拟线上红绿灯数据的运作方式,构造大量静态路口红绿灯数据。路口的红绿灯数据可以包括多相位的红绿灯信息,如左转、右转、直行、左转待转,直行待行等基础相位信息。例如,一个路口的多相位构造状态可以如图4所示,图4中以一个十字路口为例,对单一路口的多相位构造进行示例性地说明,如图4所示,一个十字路口(编号为2,图4中的2是指红绿灯对应的路口编号)可以四组红绿灯,每一组红绿灯均包括多个相位的红绿灯,图中的“←”“→”“↑”分别表示相位信息。其中,模拟的路口的数量可以根据具体应用场景中测试需要进行设置和调整,例如可以是50个、100个、200个等,本实施例此处不做具体限定。该步骤中,每个进程异步地进行构造红绿灯数据和向待测试服务推送所构造的红绿灯数据的处理,通过异步实现构造数据和推送数据这两个过程,能够保证大量路口的红绿灯数据在向待测试服务推送过程及之前不阻塞。一种可选的实施方式中,可以采用多进程多线程的方式,每个路口对应的进程可以包括多个线程,由不同的线程分别用于构造数据和推送数据,从而实现多线程异步处理,能够提高向待测试服务推送红绿灯数据的并发量。示例性地,每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据;通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据。这样,通过多线程异步的方式来实现红绿灯数据构造和推送的异步处理,能够提高数据构造及推送的效率,提高向待测试服务推送红绿灯数据的实时性,保证向待测服务推送红绿灯数据的频率能够满足压力测试的要求,模拟实时地、高并发地向待测服务推送红绿灯数据的极限测试场景。一种可选的实施方式中,为了提高向待测试服务推送数据的流畅性,测试工具可以与待测试服务部署在同一网段下,能够避免网络延迟造成向待测试服务推送红绿灯数据的延迟,从而提高了向待测试服务推送数据的准确性、实时性和顺序性。待测试服务在接收到测试工具推送的红绿灯数据之后,对红绿灯数据进行逻辑处理,包括数据协议转换、数据分发、数据读写、可持久化处理等,最终生成第三方平台所需的红绿灯数据,并传输至第三方平台。本实施例中,通过上述步骤s301-s303,通过多进程多线程的方式,每个路口对应一个进程,每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据;通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据,来实现红绿灯数据构造和推送的异步处理,能够提高数据构造及推送的效率,提高向待测试服务推送红绿灯数据的实时性,保证向待测服务推送红绿灯数据的频率能够满足压力测试的要求,模拟实时地、高并发地向待测服务推送红绿灯数据的极限测试场景。在上述实时地、高并发地向待测服务推送红绿灯数据的极限测试场景下,通过步骤s304-s305实现对待测试服务的性能测试和/或功能测试。步骤s304、采集待测试服务的测试数据。在上述实时地、高并发地向待测服务推送红绿灯数据的极限测试场景下,采集待测试服务的性能测试数据和/或功能测试数据,进一步根据试数据可以确定待测试服务的测试结果,能够在通过测试工具构造出对待测试服务的高并发的极限测试场景下,实现对待测试服务的压力测试,提高数据推送服务的及时性和稳定性。一种可选的实施方式中,在上述实时地、高并发地向待测服务推送红绿灯数据的极限测试场景下,采集待测试服务的性能测试数据,得到待测试服务的性能指标,实现待测试服务的压力测试和性能测试。其中,待测试服务的性能测试数据可以包括以下一项或多项性能指标:服务的处理时间、服务启动成功率、稳定时长、cpu资源占用率、内存资源占用率。另外,待测试服务的性能指标还可以包括其他能够衡量服务的性能的指标,本实施例此处不做具体限定。另外,待测试服务在接收到测试工具推送的红绿灯数据之后,还可以直接向测试工具返回红绿灯数据是否推送成功的结果状态。例如,结果状态可以包括:推送成功、推送失败、服务崩溃等。可选地,待测试服务在接收到测试工具推送的红绿灯数据之后,向测试工具返回结果状态与对红绿灯数据进行逻辑处理可以异步地进行。这样,待测试服务在接收到测试工具推送的红绿灯数据之后,返回的结果状态只是表明是否测试工具是否向待测试服务成功推送数据,待测试服务并未完成红绿灯数据的逻辑处理,通过现有的http协议监测返回值的方式,不能直接得到待测试服务的响应时间和响应性能。本实施例中,对于服务的处理时间这一性能指标,可以利用向待测试服务推送红绿灯数据的时间戳,以及待测试服务向第三方平台推送红绿灯数据的逻辑处理结果的时间戳,可以准确地确定待测试服务的处理时间,也即待测试服务的响应时间。具体可以采用如下方式进行测试:对于每一条红绿灯数据,获取向待测试服务推送红绿灯数据的第一时间戳,以及待测试服务向第三方平台推送红绿灯数据对应的数据结果的第二时间戳;根据第一时间戳和第二时间戳,计算待测试服务的处理时间。这样,能够准确地确定待测试服务的处理时间,也即待测试服务的响应时间。进一步地,获取向待测试服务推送红绿灯数据的第一时间戳,可以通过如下方式实现:获取向待测试服务推送红绿灯数据的第一推送日志;从第一推送日志中,提取向待测试服务推送每条红绿灯数据的第一时间戳。这样,能够自动获取到向待测试服务推送每条红绿灯数据的时间戳,为自动测试待测试服务的处理时间提供数据基础。其中,第一推送日志是测试工具向待测试服务推送红绿灯数据后所记录的推送日志。测试工具在向待测试服务推送红绿灯数据之后,记录红绿灯数据的第一推送日志,第一推送日志中记录了推送红绿灯数据的时间戳,也即第一时间戳,从而能够自动记录向待测试服务推送数据的第一时间戳。进一步地,获取待测试服务向第三方平台推送第二红绿灯数据的第二时间戳,具体可以采用如下方式实现:获取待测试服务的第二推送日志;从第二推送日志中,提取待测试服务向第三方平台推送每条红绿灯数据对应的数据结果的第二时间戳。这样,能够自动获取到待测试服务向第三方平台推送数据的时间戳,为自动测试待测试服务的处理时间提供数据基础。其中,第二推送日志是待测试服务向第三方平台推送数据的推送日志,第二推送日志记录了待测试服务向第三方法平台推送数据结果的时间戳,也即第二时间戳。示例性地,待测试服务向第三方平台提供服务接口,第三方平台通过调用服务接口来获取数据。第二推送日志可以是待测试服务对第三方平台提供的服务接口记录的日志信息。待测试服务的部分性能指标及通过标准的一个示例如下表1所示:表1序号性能指标通过标准1服务启动成功率(配置文件正常情况下)100%2稳定时长24小时3cpu资源占用率<80%4内存资源占用率<80%其中,稳定时长是指在服务不重启的情况下,服务稳定运行的时长。本实施例中,待测试服务的服务启动成功率、稳定时长、cpu资源占用率、内存资源占用率等性能指标的测试方法与现有技术类似,本实施例中是在上述多路口多相位红绿灯数据的高并发量的极限测试场景下进行的测试,具体测试方法此处不再赘述。进一步地,通过利用测试工具(例如,可以是locust工具或者jemeter等压力测试工具)测试待测试服务对第三方平台提供的服务接口的性能,可以实现对待测试服务的部分性能指标的测试。例如,可以采集对第三方平台提供的服务接口的响应时间,采集从向待测试服务推送红绿灯数据到第三方平台的输出对应数据结果的耗时。例如,待测试服务为启动单个容器(docker)服务,配置为cpu24核,内存16g,向待测试服务推送红绿灯数据的推送频率为1赫兹(hz)或者4赫兹(hz),对应每秒查询率(queriespersecond,简称qps)为路口数量×1或者路口数量×4,待测试服务向第三方平台提供的服务接口的性能的一个示例如下表2所示:表2其中,rest是指表述性状态传递(representationalstatetransfer,简称rest)。例如,待测试服务为双服务,即启动2个容器(docker)服务的情况下,配置为cpu24核,内存16g,向待测试服务推送红绿灯数据的推送频率为1赫兹(hz)或者4赫兹(hz),对应每秒查询率(queriespersecond,简称qps)为路口数量×1或者路口数量×4,待测试服务向第三方平台提供的服务接口的性能的一个示例如下表3所示:表3另一种可选的实施方式中,在上述实时地、高并发地向待测服务推送红绿灯数据的极限测试场景下,还可以采集待测试服务的功能测试数据,以对待测试服务的功能逻辑进行测试,能够在通过测试工具构造出对待测试服务的高并发的极限测试场景下,测试待测试服务的功能逻辑是否正常。示例性地,待测试服务的功能逻辑可以包括如下表4所示的测试点:表4其中,p0bug是指性能、稳定性相关的缺陷,p1bug是指功能相关的缺陷。云控平台、某地图应用和车联网是待测试服务的第三方平台的示例。本实施例中,采集待测试服务的功能测试数据,包括用于对待测试服务进行功能测试时所需采集的所有数据。例如,可以包括用于确定上述表4中的指标项是否符合通过标准所需的所有数据。其中,采集待测试服务的功能测试数据的方法与现有技术类似,不同在于本实施例中是在上述多路口多相位红绿灯数据的高并发量的极限测试场景下进行测试数据的采集,具体采集测试数据的方法没有不同,此处不再赘述。本实施例的一种可选的实施方式中,测试工具可以部署在与待测试服务同一网段下的多台服务器上。例如,假设路口数量为200,可以在服务器1上部署测试工具,负责编号为1-100的路口的红绿灯数据的构造及推送;在服务器2上部署测试工具,负责编号为101-200的路口的红绿灯数据的构造及推送。步骤s305、根据待测试服务的测试数据,确定对待测试服务的测试结果。在上述实时地、高并发地向待测服务推送红绿灯数据的极限测试场景下,采集到待测试服务的测试数据之后,根据待测试服务的测试数据,可以确定待测试服务的性能是否满足要求,待测服务的功能逻辑是否正确,得到待测试服务的测试结果。本实施例的一种可选的实施方式中,还可以设置待测试服务的开关控制功能,通过该开关控制功能能够对服务进行启动测试或者关闭测试的状态进行配置。当服务配置为启动测试时,可以通过本申请提供的测试方法对服务进行测试。当服务正式上线后,可以将服务配置为关闭测试时,此时不对服务进行测试,服务正常运行。当在服务无人或很少人使用的时间段,将服务配置为启动测试,即可对服务进行测试。本申请实施例通过多进程多线程的方式,每个路口对应一个进程,每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据;通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据,来实现红绿灯数据构造和推送的异步处理,能够提高数据构造及推送的效率,提高向待测试服务推送红绿灯数据的实时性,保证向待测服务推送红绿灯数据的频率能够满足压力测试的要求,模拟实时地、高并发地向待测服务推送红绿灯数据的极限测试场景,并实现极限测试场景下待测试服务的性能指标和功能逻辑的测试,实现对待测试服务的压力测试,提高上线后的目标服务的及时性和稳定性。图5是本申请第三实施例提供的数据推送服务的测试设备示意图。本申请实施例提供的数据推送服务的测试设备可以执行数据推送服务的测试方法实施例提供的处理流程。如图5所示,该数据推送服务的测试设备50包括:数据构造及推送单元501和测试数据采集单元502。具体地,数据构造及推送单元501,用于根据红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,待测试服务用于对红绿灯数据进行处理,并向第三方平台推送处理后的结果数据;多个路口的红绿灯数据用于对待测试服务进行测试。测试数据采集单元502,用于采集待测试服务的测试数据。本申请实施例提供的设备可以具体用于执行上述第一实施例提供的方法实施例,具体功能此处不再赘述。本申请实施例通过根据预先定义的红绿灯数据推送的协议规则,通过并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,来模拟多个路口的路侧设备采集红绿灯数据并向待测试服务推送红绿灯数据的场景,模拟出了线上大并发量地向待测试服务推送红绿灯数据时的准确性、实时性和顺序性,构造出对待测试服务的高并发的极限测试场景,在该极限测试场景下,对待测试服务进行测试,能够实现对待测试服务的压力测试,提高上线后的目标服务的及时性和稳定性。图6是本申请第四实施例提供的数据推送服务的测试设备示意图。本申请实施例提供的数据推送服务的测试设备可以执行数据推送服务的测试方法实施例提供的处理流程。如图6所示,该数据推送服务的测试设备60包括:数据构造及推送单元601和测试数据采集单元602。具体地,数据构造及推送单元601用于根据红绿灯数据推送的协议规则,并行地构造多个路口的红绿灯数据,并向待测试服务推送红绿灯数据,待测试服务用于对红绿灯数据进行处理,并向第三方平台推送处理后的结果数据;多个路口的红绿灯数据用于对待测试服务进行测试。测试数据采集单元602用于采集待测试服务的测试数据。一种可选地实施方式中,如图6所示,数据构造及推送单元601包括:进程分配模块6011,用于为每个路口分配一个进程,进程用于构造对应路口的红绿灯数据,并向待测试服务推送所构造的红绿灯数据。数据构造及推送模块6012,用于通过每个进程异步地进行构造红绿灯数据和向待测试服务推送所构造的红绿灯数据的处理。一种可选地实施方式中,数据构造及推送模块6012包括:数据构造子模块,用于每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据。数据推送子模块,用于通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据。一种可选地实施方式中,如图6所示,测试数据采集单元602包括:性能测试模块6021和/或功能测试模块6022。其中,性能测试模块6021用于采集待测试服务的性能测试数据。功能测试模块6022用于采集待测试服务的功能测试数据。一种可选地实施方式中,性能测试模块6021包括:服务处理时间测试子模块,用于:对于每一条红绿灯数据,获取向待测试服务推送红绿灯数据的第一时间戳,以及待测试服务向第三方平台推送数据结果的第二时间戳,数据结果为待测试服务根据第三方平台的需求对红绿灯数据进行处理后得到的;根据第一时间戳和第二时间戳,计算待测试服务的处理时间。一种可选地实施方式中,服务处理时间测试子模块还用于:获取向待测试服务推送红绿灯数据的第一推送日志;从第一推送日志中,提取向待测试服务推送每条红绿灯数据的第一时间戳。一种可选地实施方式中,服务处理时间测试子模块还用于:向待测试服务推送红绿灯数据之后,记录红绿灯数据的第一推送日志。一种可选地实施方式中,服务处理时间测试子模块还用于:获取待测试服务向第三方平台推送结果数据的第二推送日志;从第二推送日志中,提取待测试服务向第三方平台推送每条红绿灯数据对应的数据结果的第二时间戳。一种可选地实施方式中,如图6所示,设备60还包括:测试结果确定单元603,用于:根据待测试服务的测试数据,确定对待测试服务的测试结果。本申请实施例提供的设备可以具体用于执行上述第二实施例提供的方法实施例,具体功能此处不再赘述。本申请实施例通过多进程多线程的方式,每个路口对应一个进程,每个进程包括数据构造线程和数据推送线程,通过每个进程的数据构造线程,构造一个路口的红绿灯数据;通过进程的数据推送线程,向待测试服务推送数据构造线程所构造的路口的红绿灯数据,来实现红绿灯数据构造和推送的异步处理,能够提高数据构造及推送的效率,提高向待测试服务推送红绿灯数据的实时性,保证向待测服务推送红绿灯数据的频率能够满足压力测试的要求,模拟实时地、高并发地向待测服务推送红绿灯数据的极限测试场景,并实现极限测试场景下待测试服务的性能指标和功能逻辑的测试,实现对待测试服务的压力测试,提高上线后的目标服务的及时性和稳定性。根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。根据本申请的实施例,本申请还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如数据推送服务的测试方法。例如,在一些实施例中,数据推送服务的测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram703并由计算单元701执行时,可以执行上文描述的数据推送服务的测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据推送服务的测试方法。本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtualprivateserver",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1