CN117743165A - 基于场景的流量测试方法、装置、电子设备及存储介质 - Google Patents
基于场景的流量测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117743165A CN117743165A CN202311758899.9A CN202311758899A CN117743165A CN 117743165 A CN117743165 A CN 117743165A CN 202311758899 A CN202311758899 A CN 202311758899A CN 117743165 A CN117743165 A CN 117743165A
- Authority
- CN
- China
- Prior art keywords
- order
- playback
- data
- driver
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000003993 interaction Effects 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000004590 computer program Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 238000012216 screening Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于场景的流量测试方法、装置,属于计算机技术领域。所述方法包括:根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;根据所述真实日志数据获取所述目标场景的回放数据;基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;根据所述回放请求信息,生成对所述测试系统的测试报告。本方法可以针对业务系统的指定场景进行流量测试,并生成测试报告,无需人工创建测试数据,大大提升了测试效率,并且,根据业务系统实际运行日志生成回放数据,可以更加准确和全面的复原真实场景,有助于准确定位业务系统中的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及基于场景的流量测试方法、装置、电子设备,以及计算机可读存储介质。
背景技术
随着网络技术的发展,网络应用领域日益广阔,提供各种场景的在线业务系统层出不穷,并且在线业务系统包含的细分业务场景越来越多。以在线出行系统为例,其中可以包括很多业务场景,例如上下车地点搜索、在线约车、订单管理等。随着出行系统的业务场景扩充,业务系统的复杂度增加,业务系统的测试难度也逐渐增大。对于不同的业务场景,需要生成相应的测试数据用于测试需要更新的业务系统。然而,人工创建测试数据的工作量大,且难以获取全面的测试数据,导致测试效率低,测试效果差。
可见,现有技术中对在线业务系统的测试方法仍需要改进。
发明内容
本申请实施例提供一种基于场景的流量测试方法及装置、电子设备及存储介质,能够提升业务系统的测试效率,快速定位目标场景的运行问题。
第一方面,本申请实施例提供了一种基于场景的流量测试方法,包括:
根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;
根据所述真实日志数据获取所述目标场景的回放数据;
基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;
根据所述回放请求信息,生成对所述测试系统的测试报告。
第二方面,本申请实施例提供了一种基于场景的流量测试装置,包括:
真实日志数据获取模块,用于根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;
回放数据获取模块,用于根据所述真实日志数据获取所述目标场景的回放数据;
业务回放模块,用于基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;
测试报告生成模块,用于根据所述回放请求信息,生成对所述测试系统的测试报告。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的基于场景的流量测试方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的基于场景的流量测试方法的步骤。
本申请实施例公开的基于场景的流量测试方法,通过根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;根据所述真实日志数据获取所述目标场景的回放数据;基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;根据所述回放请求信息,生成对所述测试系统的测试报告,可以针对业务系统的指定场景进行流量测试,并生成测试报告,无需人工创建测试数据,大大提升了测试效率,并且,通过根据业务系统实际运行日志,生成回放数据,可以更加准确和全面的复原真实场景,有助于准确定位业务系统运行过程中发现的问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例公开的基于场景的流量测试方法流程图;
图2是本申请实施例公开的网约车场景中业务回放操作流程示意图之一;
图3是本申请实施例公开的网约车场景中业务回放操作流程示意图之二;
图4网约车场景的测试报告示意图之一;
图5网约车场景的测试报告示意图之二;
图6是本申请实施例公开的基于场景的流量测试装置的结构示意图;
图7示意性地示出了用于执行根据本申请的方法的电子设备的框图;以及
图8示意性地示出了用于保持或者携带实现根据本申请的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以网约车系统中的约车场景为例,现有技术中,当需要测试网约车业务时,获取需要编写大量的测试数据,然后通过脚本运行测试数据,对网约车业务进行测试,或者需要人工执行业务流程,进行测试,测试效率低,并且,难以全面测试。本申请实施例中公开的基于场景的流量测试方法,可以通过流量回放系统实施,该流量回放系统可以通过业务系统的现有接口获取业务系统在线运行过程中录制的全量日志,之后,对全量日志进行解析、处理,筛选得到目标场景的真实日志数据。然后,进一步从真实日志数据中提取相关业务请求,并按照设定的回放策略生成实际业务系统中网约车场景的流量数据(如全部链路请求)构成的回放数据。之后,基于回放数据与测试系统交互,收集测试系统的反馈,并生成测试报告,不需要人工生成测试数据,不仅测试效率高,且测试结果更加全面、准确。
具体的,如图1所示,本申请实施例公开的一种基于场景的流量测试方法包括:步骤110至步骤140。
步骤110,根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据。
本申请实施例中所述的业务系统可以为网约车系统。在所述业务系统中,乘客可以通过乘客客户端执行打车、搜索上下车地点等操作,司机可以通过司机客户端执行注册、登录、验证、接单、处理订单、上报位置信息等操作。所述业务系统在线运行过程中,会实时录制全部请求和交互日志,记为“全量日志”。全量日志中,包括各种业务场景的日志数据。以业务系统为网约车系统为例,业务场景包括但不限于:订单场景、上下车地点搜索、补贴发放等场景。
每一条日志包括对应的场景信息,进一步的,通过对全量日志基于场景信息进行筛选,即可得到目标场景的日志数据,本申请实施例中记为“真实日志数据”。即所述真实日志数据是真实乘客或真实司机通过客户端与业务系统进行交互的过程中产生的日志数据。所述日志数据中按照交互过程中链路请求的发生时间顺序,将请求类型、请求体、响应体等交互数据进行全量录制,便于后续分析业务系统出现的问题。
以目标场景为网约车场景为例,从全量日志中筛选约车订单相关的链路请求,例如:下单、司机来接乘客、上车、开始行程、到达目的地、下车、付款等链路请求。然后,根据订单号、司机信息、乘客信息等将一个个完成的订单流程串起来,得到每个订单号对应的网约车订单的订单数据。
根据全量日志,获取目标场景的真实日志数据的具体实施方式,参见现有技术,此处不再赘述。
针对不同目标场景,获取的真实日志数据各不相同。
以目标场景为网约车场景为例,所述真实日志数据包括:至少一条网约车订单的订单数据,所述订单数据包括:订单号,与所述订单号关联的订单事件信息、订单轨迹信息、司机信息和乘客信息。其中,所述订单事件信息包括但不限于:事件类型、请求参数、请求接口、事件发生位置。订单轨迹信息是在订单履行过程中司机客户端向网约车系统上报的一系列司机位置。所述司机信息包括姓名、手机号码等基础信息,还包括:所属城市、司机类型、账户属性信息等,其中,账户属性信息例如可以包括:账户余额,历史订单,搜索记录,司机流水等等。所述乘客信息包括:姓名、手机号码等基础信息。
在真实日志数据中,订单数据按照订单生成时间先后顺序存储。
以目标场景为上下车地点搜索场景为例,所述真实日志数据包括:上下车地点搜索日志,所述上下车地点搜索日志包括:搜索关键词、基于所述搜索关键词请求第一预设搜索服务的第一请求体,以及,所述搜索关键词对应的第一召回结果。其中,所述第一预设搜索服务是所述业务系统提供的搜索服务,如上下车地点搜索服务,所述第一预设搜索服务用于在乘客客户端或司机客户端向所述第一预设搜索服务发送搜索请求时,基于所述搜索请求中携带的搜索关键词,召回与所述搜索关键词描述的地点匹配的兴趣点,这些兴趣点构成了第一召回结果。乘客客户端或司机客户端向所述第一预设搜索服务发送的搜索请求中包括:第一请求体,所述第一请求体是按照预设协议格式对所述搜索关键词进行封装得到的。
步骤120,根据所述真实日志数据获取所述目标场景的回放数据。
对于不同的真实日志数据,需要从中提取不同的信息,以生成对应的回放数据。在不同的目标场景下,需要生成的回放数据不同。例如,对于上下车地点搜索场景,可以仅获取乘客的基础信息和搜索请求相关的信息,如搜索关键词、请求体、召回结果。又例如,对于网约车场景,则需要获取司机的基础信息、乘客的基础信息、订单数据等。
下面针对不同目标场景,对回放数据的生成过程进行举例说明。
以目标场景为网约车场景为例,可选的,所述根据所述真实日志数据获取所述目标场景的回放数据,包括:基于所述司机信息对所述订单数据进行聚合,得到每个司机的一批订单数据;针对每个司机的订单数据,对所述司机的每条订单数据按照网约车订单的订单生成时间正序排列,之后,按照所述订单轨迹信息中位置坐标对应的位置生成时间对每条订单数据中的所述位置坐标进行正序排列,得到排序订单数据;将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据。
例如,一位司机的一批回放数据可以存储为如下结构:{司机信息,订单列表}。其中,司机信息进一步包括:司机标识、车辆信息、司机电话;所述订单列表中的网约车订单为该司机在订单筛选条件下的所有订单的订单数据。其中,每个订单的订单数据包括:乘客信息、订单事件和若干位置坐标。例如,订单列表中的订单可以为指定司机在指定时间段内的订单数据。进一步的,订单列表中各网约车订单的订单数据按照网约车订单的订单生成时间先后顺序从前向后排列,并且,对每个订单中的位置坐标按照位置生成时间先后顺序,从前向后排列。通常情况下,每个订单的位置坐标是有序的坐标序列,是按照位置坐标的上报时间先后顺序从前向后排列的。对每个司机的一批订单数据执行上述排列后,得到各司机的排序订单数据。
接下来,将排序订单数据中的司机与测试系统中预置的虚拟司机进行关联,并将乘客与测试系统中预置的虚拟乘客进行关联,从而得到回放数据。
可选的,所述将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据,包括:通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,通过预置的虚拟乘客的指定乘客信息,替换所述排序订单数据中乘客信息包括的指定乘客信息,得到所述网约车场景中每批订单数据对应的回放数据。例如,将该司机的排序订单数据中的指定司机信息,替换为流量回放系统中预置的某位虚拟司机的所述指定司机信息,以及,将该司机的排序订单数据中的指定乘客信息,替换为流量回放系统中预置的某位或某几位虚拟乘客的所述指定乘客信息,从而完成虚拟司机和虚拟乘客与订单数据的关联,得到该司机对应的回放数据。其中,所述指定司机信息包括:姓名、电话号码等司机基础信息;所述指定乘客信息包括:姓名、电话号码等乘客基础信息。
在一些可选的实施例中,所述通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,包括:根据所述排序订单数据中所述司机的司机特征,选择预置的虚拟司机;根据选择的所述虚拟司机的指定司机信息,替换所述排序订单数据中所述司机的所述指定司机信息,其中,所述司机特征包括以下一项或多项:司机所在城市、司机类型。例如,选择与排序订单数据中的司机属于相同司机类型且所述同一城市的虚拟司机的姓名、手机号码,替换排序订单数据中司机的姓名和电话号码。
其中,所述司机类型例如包括但不限于以下一种或多种类型:专车、优享、出租车等。本申请的实施例中,所述预置的虚拟司机可以为参考业务系统的注册司机数据自动生成的虚拟司机,之后,为各虚拟司机分别设置用于接收短信验证或登录信息的电话号码。所述乘客信息可以按照预设规则生成。
通过替换司机和乘客的基础信息,实现了司机信息和乘客信息的隐私保护,另一方面,通过保留司机账户的属性信息,最大程度还原真实数据,以提升测试结果的准确度。
以目标场景为上下车地点搜索场景为例,可选的,所述真实日志数据包括:上下车地点搜索日志,所述上下车地点搜索日志包括:搜索关键词、基于所述搜索关键词请求第一预设搜索服务的第一请求体,以及,所述搜索关键词对应的第一召回结果。其中,所述第一请求体是按照预设协议格式对所述搜索关键词进行封装得到的。相应的,所述根据所述真实日志数据获取所述目标场景的回放数据,包括:根据所述上下车地点搜索日志,获取真实日志数据中的所述搜索关键词的词频;根据所述词频筛选所述搜索关键词,得到至少一个回放关键词,并将所述至少一个回放关键词作为回放数据。
例如,对于一段时间内的上下车地点搜索日志,统计其中每个搜索关键词出现的词频,并选择词频最高的指定数量搜索关键词,作为回放关键词。
步骤130,基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息。
以目标场景为网约车场景为例,所述订单事件信息包括:订单事件、所述订单事件对应的请求参数、请求接口和事件发生位置,如图2所示,所述基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息,包括:子步骤S1至子步骤S3。
子步骤S1,基于当前批回放数据,获取当前虚拟司机的账户信息。
子步骤S2,基于所述当前虚拟司机的账户信息,登录所述测试系统。
本子步骤中,可以调用测试系统的预设登录接口,模拟司机登录业务系统的操作,以登录测试系统。
其中,所述测试系统的实现方式与所述业务系统相同,可以认为,测试系统是所述业务系统的复制系统。
子步骤S3,基于所述当前批回放数据中的按照时间正序排列的位置坐标,依序获取司机位置作为当前位置,之后,基于所述当前位置的执行业务回放操作。
如前文所述,替换司机信息和乘客信息得到的回放数据中,每个网约车订单的订单数据按照订单生成时间正序排列,进一步的,每个订单数据中的位置坐标按照系统时间正序排列。则回放过程中,依序回放当前虚拟司机的每个网约车订单,在回放每个网约车订单时,按照当前网约车订单的位置坐标的从前向后的排列顺序,依次获取当前位置,并基于当前位置执行业务回放操作。
在一些可选的实施例中,如图3所示,基于所述当前位置的执行业务回放操作,包括:子步骤S31至子步骤S34。
子步骤S31,向所述测试系统上报所述当前位置;
子步骤S32,根据所述订单事件信息对应的事件发生位置,获取所述当前位置对应的所述订单事件;
子步骤S33,响应于未获取到所述当前位置对应的订单事件,结束基于所述当前位置的业务回放操作;
子步骤S34,响应于获取到所述当前位置对应的订单事件,基于获取到的所述订单事件获取相应请求参数和请求接口,之后,基于获取的所述请求参数调用所述测试系统的所述请求接口,并记录所述业务回放操作对应的回放请求信息,其中,所述回放请求信息包括:所述当前位置对应的所述业务系统中的订单号、所述当前位置对应的所述测试系统中的订单号、请求类型,以及,请求结果。
其中,所述请求类型选自于:一次网约车订单产生到完成过程中,司机客户端向业务系统发送的各请求的类型。可选的,所述请求类型包括但不限于以下任意一种:登录请求、验证请求、接单请求、服务请求等。
如前文所述,在订单数据中的订单事件信息中包括具体的订单事件,以及所述订单事件对应的请求参数、请求接口和事件发生位置。因此,在将当前订单的订单轨迹信息中位置坐标依次上报至测试系统的过程中,可以将当前上报的位置坐标(即当前位置)与当前订单的每个事件发生位置进行比较,查找发生在当前位置的订单事件。
若未查找到发生在当前位置的订单事件,则记录当前上报位置坐标的业务回放操作对应的回放请求信息,用于后续生成测试报告。其中,所述回放请求信息包括:所述当前位置对应的所述业务系统中的订单号、所述当前位置对应的所述测试系统中的订单号、请求类型(如上报位置坐标),以及,请求结果。其中,流量回放系统向测试系统发送接单请求之后,测试系统会为当前虚拟司机账号生成一个测试系统中的订单号,在此请求之后以及对当前订单结束之前,流量回放系统向测试系统上报的位置坐标匹配的订单号均为测试系统生成的当前订单号。之后,订单回放系统继续上报当前订单的下一个位置坐标,若当前订单的最后一个位置坐标上报完成,则继续上报下一个订单的位置坐标。
若查找到发生在当前位置的订单事件,则流量回放系统按照查找到的订单事件对应的请求参数、请求接口,向测试系统发送事件请求,从而执行事件回放,并获取测试系统相应的事件请求结果,之后,记录当前发送的事件请求对应的回放请求信息,用于后续生成测试报告。其中,所述回放请求信息包括:所述当前位置对应的所述业务系统中的订单号、所述当前位置对应的所述测试系统中的订单号、请求类型(如所述事件类型、请求参数、请求接口),以及,请求结果。之后,订单回放系统继续上报当前订单的下一个位置坐标,若当前订单的最后一个位置坐标上报完成,则继续上报下一个订单的位置坐标。
按照上述方法,完成一个司机的一批回放数据。
之后,继续获取另一个司机的一批回放数据,执行业务回放操作,直至全部司机的回放数据处理完成。
在一些可选的实施例中,可以通过多个回放服务端分布式执行业务回放操作。相应的,在根据所述真实日志数据获取所述目标场景的回放数据之后,还包括:将所述回放数据存储至预设数据库;通知预设消息队列回放数据准备完成。所述回放服务端通过预先注册所述预设消息队列的通知消息,获取到回放数据准备完成的消息,之后,访问所述预设数据库获取待处理的回放数据。进一步的,在每个所述回放服务端完成基于一批回放数据的业务回放操作之后,将所述预设数据库中相应批次的回放数据删除或者标记为处理完成。
不同的目标场景在业务系统中的执行流程不同,业务回放操作的流程也不同。
又以目标场景为上下车地点搜索场景为例,所述基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息,包括:基于所述回放数据中的每个所述回放关键词,分别执行以下业务回放操作:基于所述回放关键词,生成第二请求体;基于所述第二请求体,请求所述测试系统的第二预设搜索服务;获取所述第二预设搜索服务输出的第二召回结果,并记录请求所述第二预设搜索服务的请求信息,所述回放请求信息包括:第二请求体、第二召回结果。
在流量回放系统基于所述回放关键词,生成第二请求体时,可以对从业务系统中获取的所述上下车地点搜索日志中基于所述搜索关键词请求第一预设搜索服务的第一请求体进行修改,通过所述回放关键词替换第一请求体中的搜索关键词,得到第二请求体,同时,基于测试系统中第二预设搜索服务(即上下车地点搜索服务)的信息,替换第一请求体对应的请求头中第一预设搜索服务的信息,从而得到第二请求体对应的请求头,之后,组合所述第二请求体,以即第二请求体对应的请求头,请求第二预设搜索服务。进一步的,流量回放系统记录请求所述第二预设搜索服务的请求信息,用于后续生成测试报告使用。其中,所述请求信息包括:第二请求体。
之后,相应的,所述流量回放系统获取所述第二预设搜索服务输出的第二召回结果。其中,所述第二召回结果中包括测试系统基于所述回放关键词召回的关键词列表。
步骤140,根据所述回放请求信息,生成对所述测试系统的测试报告。
完成基于回放数据的业务回放操作之后,接下来,根据执行业务回放操作过程中生成的所述回放请求信息,生成对所述测试系统的测试报告。
以目标场景为网约车场景为例,如前文所述,所述回放请求信息包括:相应所述业务回放操作对应的所述业务系统中的第一订单号和所述测试系统中的第二订单号、请求类型,以及,请求结果,相应的,所述根据所述回放请求信息,生成对所述测试系统的测试报告,包括:根据所述第一订单号和所述请求结果,生成对所述测试系统的测试报告,其中,所述测试报告包括以下一种或多种信息:回放订单数量、成功数量、失败数量;和/或,根据所述第一订单号、所述第二订单号、所述请求类型,以及,所述请求结果,生成对所述测试系统的测试报告详情,其中,所述测试报告详情包括:所述业务回放操作对应的所述第一订单号和所述第二订单号的对应关系,所述业务回放操作针对所述第一订单号执行的请求类型列表,以及,各所述请求类型对应的请求结果。
例如,可以统计包含相同第一订单号的订单回放信息中的请求结果,将请求结果均指示请求成功的第一订单号,作为回放成功的第一订单号,进一步统计回放成功的第一订单号的数量,作为成功数量。再例如,可以统计包含相同第一订单号的订单回放信息中的请求结果,将请求结果中包括指示请求失败的请求结果的第一订单号,作为回放失败的第一订单号,进一步统计回放失败的第一订单号的数量,作为失败数量。之后,根据所述成功数量、所述失败数量,生成如图4所示的测试报告。
另一方面,可以将对每个第一订单号对应的所述回放请求信息,以列表的形式生成如图5所示的测试报告详情,其中,每一行对应一个第一订单号和一个第二订单号,在一行的各列字段中,分别记录第一订单号、第一订单号在会回放过程中对应的第二订单号、第一订单号对应的执行结果等信息。例如,当测试人员点击图4中的“详情”按钮,进一步查看对应日期的订单测试详情时,进一步的,针对选定的一行测试结果,还可以进一步展示针对相应日期测试的每一条网约车订单的回放结果。更进一步的,针对每一条网约车订单的回放结果,可以进一步展示该网约车订单回放过程中顺序执行的请求,以及请求结果,使得测试人员更加直观、快速定位测试系统在网约车场景中订单环节的问题。
以目标场景为上下车地点搜索场景为例,所述根据所述回放请求信息,生成对所述测试系统的测试报告,包括:根据所述回放请求信息中第二召回结果,以及,所述上下车地点搜索日志中的第一召回结果,计算召回结果相似度,其中,所述第二召回结果对应的所述回放关键词与所述第一召回结果对应的所述搜索关键词相同;根据所述召回结果相似度、所述第一召回结果对应的第一请求体,以及,所述第二召回结果对应的第二请求体,生成搜索结果对比报告。其中,所述第一召回结果和所述第二召回结果的召回结果相似度的计算方法可参照现有技术,此处不再赘述。
例如,对于回放数据中的回放关键词K,基于回放关键词K生成第二请求体Q2之后,基于该第二请求体Q2请求测试系统的上下车地点搜索,即前述第二预设搜索服务,得到第二召回结果A2。之后,将所述上下车地点搜索日志中搜索关键词K的第一召回结果A1与第二召回结果A2计算相似度,得到召回结果相似度。其中,所述召回结果相似度可以根据第一召回结果和第二召回结果的交集与第一召回结果的比值得到。
进一步的,可以将所述回放关键词K、所述召回结果相似度、第二请求体Q2、第一请求体Q1等以列表的形式生成测试报告。
以上以网约车场景、上下车地点搜索场景为例,对基于场景的流量会放方法的具体实施方式进行了举例说明。本领域技术人员应当理解,本申请实施例公开的基于场景的流量测试方法还适用于网约车系统的其他场景,本申请实施例中不再一一列举。
本申请实施例公开的基于场景的流量测试方法,通过根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;根据所述真实日志数据获取所述目标场景的回放数据;基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;根据所述回放请求信息,生成对所述测试系统的测试报告,可以针对业务系统的指定场景进行流量测试,并生成测试报告,无需人工创建测试数据,大大提升了测试效率,并且,通过根据业务系统实际运行日志,生成回放数据,可以更加准确和全面的复原真实场景,有助于准确定位业务系统运行过程中发现的问题。
本申请实施例还公开了一种基于场景的流量测试装置,如图6所示,所述装置包括:
真实日志数据获取模块610,用于根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;
回放数据获取模块620,用于根据所述真实日志数据获取所述目标场景的回放数据;
业务回放模块630,用于基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;
测试报告生成模块640,用于根据所述回放请求信息,生成对所述测试系统的测试报告。
可选的,所述目标场景包括:网约车场景,所述真实日志数据包括:至少一条网约车订单的订单数据,所述订单数据包括:订单号,与所述订单号关联的订单事件信息、订单轨迹信息、司机信息和乘客信息,所述回放数据获取模块620,进一步用于:
基于所述司机信息对所述订单数据进行聚合,得到每个司机的一批订单数据;
针对每个司机的订单数据,对所述司机的每条订单数据按照网约车订单的订单生成时间正序排列,之后,按照所述订单轨迹信息中位置坐标对应的位置生成时间对每条订单数据中的所述位置坐标进行正序排列,得到排序订单数据;
将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据。
可选的,所述将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据,包括:
通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,通过预置的虚拟乘客的指定乘客信息,替换所述排序订单数据中乘客信息包括的指定乘客信息,得到所述网约车场景中每批订单数据对应的回放数据。
可选的,所述订单事件信息包括:订单事件、所述订单事件对应的请求参数、请求接口和事件发生位置,所述基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息,包括:
基于当前批回放数据,获取当前虚拟司机的账户信息;
基于所述当前虚拟司机的账户信息,登录所述测试系统;
基于所述当前批回放数据中的按照时间正序排列的位置坐标,依序获取司机位置作为当前位置,并基于所述当前位置的执行以下业务回放操作:
向所述测试系统上报所述当前位置;
根据所述订单事件信息对应的事件发生位置,获取所述当前位置对应的所述订单事件;
响应于未获取到所述当前位置对应的订单事件,结束基于所述当前位置的业务回放操作;
响应于获取到所述当前位置对应的订单事件,基于获取到的所述订单事件获取相应请求参数和请求接口,之后,基于获取的所述请求参数调用所述测试系统的所述请求接口,并记录所述业务回放操作对应的回放请求信息,其中,所述回放请求信息包括:所述当前位置对应的所述业务系统中的订单号、所述当前位置对应的所述测试系统中的订单号、请求类型,以及,请求结果。
可选的,所述回放请求信息包括:相应所述业务回放操作对应的所述业务系统中的第一订单号和所述测试系统中的第二订单号、请求类型,以及,请求结果,所述测试报告生成模块640,进一步用于:
根据所述第一订单号和所述请求结果,生成对所述测试系统的测试报告,其中,所述测试报告包括以下一种或多种信息:回放订单数量、回放成功率、回放失败率;和/或,
根据所述第一订单号、所述第二订单号、所述请求类型,以及,所述请求结果,生成对所述测试系统的测试报告详情,其中,所述测试报告详情包括:所述业务回放操作对应的所述第一订单号和所述第二订单号的对应关系,所述业务回放操作针对所述第一订单号执行的请求类型列表,以及,各所述请求类型对应的请求结果。
可选的,所述通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,包括:
根据所述排序订单数据中所述司机的司机特征,选择预置的虚拟司机;
根据选择的所述虚拟司机的指定司机信息,替换所述排序订单数据中所述司机的所述指定司机信息,其中,所述司机特征包括以下一项或多项:司机所在城市、司机类型。
本申请实施例公开的基于场景的流量测试装置,用于实现本申请实施例中所述的基于场景的流量测试方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的基于场景的流量测试装置,通过根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;根据所述真实日志数据获取所述目标场景的回放数据;基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;根据所述回放请求信息,生成对所述测试系统的测试报告,可以针对业务系统的指定场景进行流量测试,并生成测试报告,无需人工创建测试数据,大大提升了测试效率,并且,通过根据业务系统实际运行日志,生成回放数据,可以更加准确和全面的复原真实场景,有助于准确定位业务系统运行过程中发现的问题。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种基于场景的流量测试方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其一种核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的电子设备中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图7示出了可以实现根据本申请的方法的电子设备。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。该电子设备传统上包括处理器710和存储器720及存储在所述存储器720上并可在处理器710上运行的程序代码730,所述处理器710执行所述程序代码730时实现上述实施例中所述的方法。所述存储器720可以为计算机程序产品或者计算机可读介质。存储器720可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器720具有用于执行上述方法中的任何方法步骤的计算机程序的程序代码730的存储空间7201。例如,用于程序代码730的存储空间7201可以包括分别用于实现上面的方法中的各种步骤的各个计算机程序。所述程序代码730为计算机可读代码。这些计算机程序可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。所述计算机程序包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行根据上述实施例的方法。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的基于场景的流量测试方法的步骤。
这样的计算机程序产品可以为计算机可读存储介质,该计算机可读存储介质可以具有与图7所示的电子设备中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩存储在所述计算机可读存储介质中。所述计算机可读存储介质通常为如参考图8所述的便携式或者固定存储单元。通常,存储单元包括计算机可读代码730’,所述计算机可读代码730’为由处理器读取的代码,这些代码被处理器执行时,实现上面所描述的方法中的各个步骤。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本申请的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种基于场景的流量测试方法,其特征在于,所述方法包括:
根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;
根据所述真实日志数据获取所述目标场景的回放数据;
基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;
根据所述回放请求信息,生成对所述测试系统的测试报告。
2.根据权利要求1所述的方法,其特征在于,所述目标场景包括:网约车场景,所述真实日志数据包括:至少一条网约车订单的订单数据,所述订单数据包括:订单号,与所述订单号关联的订单事件信息、订单轨迹信息、司机信息和乘客信息,所述根据所述真实日志数据获取所述目标场景的回放数据,包括:
基于所述司机信息对所述订单数据进行聚合,得到每个司机的一批订单数据;
针对每个司机的订单数据,对所述司机的每条订单数据按照网约车订单的订单生成时间正序排列,之后,按照所述订单轨迹信息中位置坐标对应的位置生成时间对每条订单数据中的所述位置坐标进行正序排列,得到排序订单数据;
将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据,包括:
通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,通过预置的虚拟乘客的指定乘客信息,替换所述排序订单数据中乘客信息包括的指定乘客信息,得到所述网约车场景中每批订单数据对应的回放数据。
4.根据权利要求2所述的方法,其特征在于,所述订单事件信息包括:订单事件、所述订单事件对应的请求参数、请求接口和事件发生位置,所述基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息,包括:
基于当前批回放数据,获取当前虚拟司机的账户信息;
基于所述当前虚拟司机的账户信息,登录所述测试系统;
基于所述当前批回放数据中的按照时间正序排列的位置坐标,依序获取司机位置作为当前位置,并基于所述当前位置的执行以下业务回放操作:
向所述测试系统上报所述当前位置;
根据所述订单事件信息对应的事件发生位置,获取所述当前位置对应的所述订单事件;
响应于未获取到所述当前位置对应的订单事件,结束基于所述当前位置的业务回放操作;
响应于获取到所述当前位置对应的订单事件,基于获取到的所述订单事件获取相应请求参数和请求接口,之后,基于获取的所述请求参数调用所述测试系统的所述请求接口,并记录所述业务回放操作对应的回放请求信息,其中,所述回放请求信息包括:所述当前位置对应的所述业务系统中的订单号、所述当前位置对应的所述测试系统中的订单号、请求类型,以及,请求结果。
5.根据权利要求1所述的方法,其特征在于,所述回放请求信息包括:相应所述业务回放操作对应的所述业务系统中的第一订单号和所述测试系统中的第二订单号、请求类型,以及,请求结果,所述根据所述回放请求信息,生成对所述测试系统的测试报告,包括:
根据所述第一订单号和所述请求结果,生成对所述测试系统的测试报告,其中,所述测试报告包括以下一种或多种信息:回放订单数量、回放成功率、回放失败率;和/或,
根据所述第一订单号、所述第二订单号、所述请求类型,以及,所述请求结果,生成对所述测试系统的测试报告详情,其中,所述测试报告详情包括:所述业务回放操作对应的所述第一订单号和所述第二订单号的对应关系,所述业务回放操作针对所述第一订单号执行的请求类型列表,以及,各所述请求类型对应的请求结果。
6.根据权利要求3所述的方法,其特征在于,所述通过预置的虚拟司机的指定司机信息,替换所述排序订单数据中司机信息包括的所述指定司机信息,包括:
根据所述排序订单数据中所述司机的司机特征,选择预置的虚拟司机;
根据选择的所述虚拟司机的指定司机信息,替换所述排序订单数据中所述司机的所述指定司机信息,其中,所述司机特征包括以下一项或多项:司机所在城市、司机类型。
7.一种基于场景的流量测试装置,其特征在于,所述装置包括:
真实日志数据获取模块,用于根据业务系统在线运行过程中录制的全量日志,获取所述业务系统中目标场景的真实日志数据;
回放数据获取模块,用于根据所述真实日志数据获取所述目标场景的回放数据;
业务回放模块,用于基于所述回放数据与所述业务系统对应的测试系统交互,执行业务回放操作,并记录所述业务回放操作对应的回放请求信息;
测试报告生成模块,用于根据所述回放请求信息,生成对所述测试系统的测试报告。
8.根据权利要求7所述的装置,其特征在于,所述目标场景包括:网约车场景,所述真实日志数据包括:至少一条网约车订单的订单数据,所述订单数据包括:订单号,与所述订单号关联的订单事件信息、订单轨迹信息、司机信息和乘客信息,所述回放数据获取模块,进一步用于:
基于所述司机信息对所述订单数据进行聚合,得到每个司机的一批订单数据;
针对每个司机的订单数据,对所述司机的每条订单数据按照网约车订单的订单生成时间正序排列,之后,按照所述订单轨迹信息中位置坐标对应的位置生成时间对每条订单数据中的所述位置坐标进行正序排列,得到排序订单数据;
将所述排序订单数据和预置的虚拟司机、虚拟乘客进行关联,得到每批订单数据对应的回放数据。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的程序代码,其特征在于,所述处理器执行所述程序代码时实现权利要求1至6任意一项所述的基于场景的流量测试方法。
10.一种计算机可读存储介质,其上存储有程序代码,其特征在于,该程序代码被处理器执行时实现权利要求1至6任意一项所述的基于场景的流量测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311758899.9A CN117743165A (zh) | 2023-12-19 | 2023-12-19 | 基于场景的流量测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311758899.9A CN117743165A (zh) | 2023-12-19 | 2023-12-19 | 基于场景的流量测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743165A true CN117743165A (zh) | 2024-03-22 |
Family
ID=90277077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311758899.9A Pending CN117743165A (zh) | 2023-12-19 | 2023-12-19 | 基于场景的流量测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743165A (zh) |
-
2023
- 2023-12-19 CN CN202311758899.9A patent/CN117743165A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111915366B (zh) | 一种用户画像构建方法、装置、计算机设备及存储介质 | |
CN112100052B (zh) | 一种接口测试场景的回放方法及装置 | |
US11977536B2 (en) | Anomaly detection data workflow for time series data | |
CN109635857A (zh) | 人车轨迹监测分析方法、装置、设备及存储介质 | |
CN112488652B (zh) | 工单审核方法、系统、终端和存储介质 | |
CN113781454B (zh) | 一种车辆损伤检测方法、装置、设备及存储介质 | |
CN113704077B (zh) | 测试用例生成方法及装置 | |
US20240004847A1 (en) | Anomaly detection in a split timeseries dataset | |
US20240242597A1 (en) | Alarm method and device | |
CN114185770A (zh) | 生成测试数据的方法、装置、计算机设备和存储介质 | |
CN110968511B (zh) | 一种推荐引擎的测试方法、装置、计算设备和系统 | |
CN109711849B (zh) | 以太坊地址画像生成方法、装置、电子设备及存储介质 | |
KR102155793B1 (ko) | 인공지능 학습데이터 생성을 위한 크라우드소싱 기반 프로젝트의 작업단가 관리 방법 및 장치 | |
CN110807679B (zh) | 基于区块链的出租车发票生成方法及装置 | |
CN117743165A (zh) | 基于场景的流量测试方法、装置、电子设备及存储介质 | |
US20240070269A1 (en) | Automatic selection of data for target monitoring | |
CN116062009A (zh) | 故障分析方法、装置、电子设备及存储介质 | |
CN113254335A (zh) | 测试数据的处理方法、装置、服务器及存储介质 | |
CN110648222A (zh) | 一种基于运营商数据识别大学生网贷风险的分析方法与系统 | |
CN118410317B (zh) | 基于多方移动终端的应用管理方法及装置 | |
CN118093384B (zh) | 金融基础设施系统的跟账测试方法及相关设备 | |
CN116863407B (zh) | 物联网监控数据处理方法及系统 | |
CN113238966B (zh) | 报表平台前端测试方法、装置、设备及存储介质 | |
CN116955830B (zh) | 基于吸烟舱的信息推送方法、计算机设备与可读存储介质 | |
CN111612562B (zh) | 数据标记方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |