推荐***预发布测试方法、装置及电子设备
技术领域
本申请涉及计算机测试技术领域,更具体地,涉及一种推荐***预发布测试方法、装置、电子设备及存储介质。
背景技术
推荐***(Recommender system)是一种帮助用户快速获取有用信息的复杂***,通过分析用户的历史行为,对用户画像进行建模,从而主动给用户推荐能够满足他们兴趣和需求的内容。目前的推荐***产品多样,涉及衣食住行的各个行业,涉及范围广。随着推荐***数据的巨量递增,如何确保线上用户流量激增的情况下,推荐***可以稳定的运行成为了一个不可忽视的问题。
发明内容
鉴于上述问题,本申请提出了一种推荐***预发布测试方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种推荐***预发布测试方法,该方法包括:获取与待测服务对应的参考参数,所述待测服务为确定的预发布服务;向推荐***发送携带所述参考参数的第一服务请求,所述第一服务请求为与第一用户流量对应的服务请求,所述第一用户流量为从整体流量中选取的部分流量;接收所述推荐***返回的与所述第一服务请求对应的第一服务;若所述第一服务满足目标条件,向所述推荐***发送携带所述参考参数的第二服务请求,以测试所述待测服务的服务性能,其中,所述第二服务请求为与第二用户流量对应的服务请求,所述第二服务请求的请求量大于所述第一服务请求的请求量,所述第二用户流量大于所述第一用户流量;接收所述推荐***返回的与所述第二服务请求对应的第二服务,基于所述第二服务获取所述待测服务的服务性能指标,以根据所述服务性能指标修改所述参考参数。
第二方面,本申请实施例提供了一种推荐***预发布测试装置,该装置包括:获取模块,用于获取与待测服务对应的参考参数,所述待测服务为确定的预发布服务;第一请求模块,用于向推荐***发送携带所述参考参数的第一服务请求,所述第一服务请求为与第一用户流量对应的服务请求,所述第一用户流量为从整体流量中选取的部分流量;第一接收模块,用于接收所述推荐***返回的与所述第一服务请求对应的第一服务;第二请求模块,用于若所述第一服务满足目标条件,向所述推荐***发送携带所述参考参数的第二服务请求,以测试所述待测服务的服务性能,其中,所述第二服务请求为与第二用户流量对应的服务请求,所述第二服务请求的请求量大于所述第一服务请求的请求量,所述第二用户流量大于所述第一用户流量;第二接收模块,用于接收所述推荐***返回的与所述第二服务请求对应的第二服务,基于所述第二服务获取所述待测服务的服务性能指标,以根据所述服务性能指标修改所述参考参数。
第三方面,本申请实施例提供了一种电子设备,包括存储器以及一个或多个处理器;一个或多个程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码由处理器运行时执行上述第一方面所述的方法。
本申请实施例提供的一种推荐***预发布测试方法、装置、电子设备及存储介质。本方法通过获取与待测服务对应的参考参数;继而向推荐***发送携带参考参数的第一服务请求;再接收推荐***返回的与第一服务请求对应的第一服务;若第一服务满足目标条件,向推荐***发送携带参考参数的第二服务请求,以测试待测服务的服务性能;再接收推荐***返回的与第二服务请求对应的第二服务,然后基于第二服务获取待测服务的服务性能指标,以根据服务性能指标修改参考参数。本方案通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本实施例提供的推荐***预发布测试方法的应用环境示意图。
图2示出了本申请一实施例提供的一种推荐***预发布测试方法的方法流程图。
图3示出了本申请另一实施例提供的一种推荐***预发布测试方法的方法流程图。
图4示出了本申请又一实施例提供的一种推荐***预发布测试方法的方法流程图。
图5示出了本申请再一实施例提供的一种推荐***预发布测试方法的方法流程图。
图6示出了本申请再一实施例提供的一种推荐***预发布测试方法的方法流程图。
图7示出了本申请实施例提供的一种推荐***预发布测试装置的结构框图。
图8示出了本申请实施例提供的一种电子设备的结构框图。
图9示出了本申请实施例的用于保存或者携带实现根据本申请实施例的推荐***预发布测试方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
推荐***是一种通过运用深度学习、神经网络等技术帮助用户快速获取有用信息的复杂***,通过分析用户的历史行为,对用户画像进行建模,从而主动给用户推荐能够满足他们兴趣和需求的内容。目前的推荐***产品多样,涉及衣食住行的各个行业,涉及范围广。例如,作为一种方式,可以根据用户的浏览内容推荐与用户的浏览内容相似的小视频或直播,或者是推荐用户感兴趣的短视频ID等。
然而,随着推荐***数据的巨量递增,推荐***所使用的服务器容易出现延时或者宕机等异常情况,从而影响推荐***的正常运行。
针对上述的问题,发明人经过长期的研究发现,可以通过在推荐***预发布测试的过程中,局部扩大用户流量、扩大请求量的方式对推荐***的待测服务的服务性能进行压测,可以实现提升待测服务的可靠性与稳定性。因此,提出了本申请实施例提供的一种推荐***预发布测试方法、装置、电子设备及存储介质。
为了便于后续详细的描述本申请实施例,下面参考附图1对本申请实施例提供的推荐***预发布测试方法所涉及的应用环境进行说明:
如图1所示,在将推荐***40的某一服务上线正式投入使用之前,为了避免后期线上用户流量激增的情况下,导致服务器出现异常情况,可以在该服务上线之前对其进行预发布测试,以便于待服务通过测试后再将其进行上线。可选的,本申请中,可以将需要进行预发布测试的服务视为待测服务。作为一种方式,可以由开发人员10在分层实验框架(即用于配置服务的实验框架)20中对待测服务进行配置,将配置好的服务存储至数据库30。推荐***40的可以通过服务器读取数据库中存储的与待测服务有关的实验配置,例如,可以通过服务器向数据库发送httpServer的方式读取数据库中存储的与待测服务有关的实验配置,以对待测服务的服务性能进行测试。
需要说明的是,本实施例中,测试***可以通过推荐***的推荐接口与推荐***通信连接。可选的,本实施例中测试***可以模拟推荐请求,通过http协议或者内部定义好的协议(比如yy协议或者thrift的rpc协议)与推荐***进行数据交互以完成测试。测试***通过设置待测服务对应的用户流量和用户请求量,请求推荐***的服务,返回的服务结果可以在测试***验收和检查。
本实施例中的测试***可以视为短视频或者直播平台对应的推荐***的测试工具,可以方便开发人员和产品运营测试人员对推荐***中需要上线的服务进行测试和验收,或者是对推荐***进行***异常排查和性能测试等。
其中,本实施例中的测试***可以是图1中的分层实验框架中包含单独开发的一层预发布层,该预发布层用于对待测服务的服务参数进行配置,本申请实施例中的推荐***预发布测试方法可以应用于该预发布层。
下面将结合附图具体描述本申请的各实施例。
请参阅图2,示出了本申请一实施例提供的一种推荐***预发布测试方法的流程图,本实施例提供一种推荐***预发布测试方法,可应用于测试***,该测试***可以用于测试推荐***的预发布服务的服务性能,该推荐***可以用于推荐用户感兴趣的各种内容(例如,这些内容可以包括直播,主播、视频、游戏)等,该方法包括:
步骤S110:获取与待测服务对应的参考参数。
其中,本实施例中的待测服务为确定的预发布服务,确定的预发布服务可以理解为所有需要进行上线的服务。可选的,需要进行上线的服务可以是配置有新策略的服务,也可以是需要修改策略的服务。待测服务可以包括多种策略,例如召回、排序以及重排等。
若待测服务是配置有新策略的服务或者是需要修改策略的服务,参考参数可以是待测服务的新增参数、替换参数和/或待删除的参数。可以理解的是,对于待测服务中的某一参考参数,在对其进行删除之前,可以进行验证删除该参考参数之后待测服务是否可以稳定运行,类似的,对于待测服务中配置的新增参考参数以及替换参考参数均可以按照上述方法进行测试。
作为一种方式,可以在测试***中配置与待测服务对应的参考参数,以便于可以基于该参考参数向推荐***发送模拟请求以对待测服务的服务性能进行测试,或者可以基于该参考参数准确获取对待测服务的测试结果。
步骤S120:发送携带所述参考参数的第一服务请求。
本实施例中,第一服务请求为与第一用户流量对应的服务请求,第一用户流量为从整体流量中选取的部分流量。例如,推荐***的策略A上线之前,可以通过慢慢增加用户流量进行上线测试,以测试策略A的服务性能。其中整体流量(即推全流量)可以是100%用户流量,而第一用户流量可以是10%用户流量。
作为一种方式,为了保证待测服务的服务性能的稳定性与可靠性,可以向推荐***发送携带上述参考参数的第一服务请求,以便于可以根据推荐***的返回结果判断待测服务的服务性能。例如,以上述示例,可以向推荐***发送携带策略A的第一服务请求。
步骤S130:查询与所述第一服务请求对应的第一服务。
推荐***在接收到第一服务请求之后,可以按照预先设定的推荐策略查询与第一服务请求对应的第一服务。例如,假设第一服务请求所请求的是召回,那么第一服务可以是与第一用户流量对应的第一召回。
步骤S140:返回所述第一服务。
可选的,推荐***在查询到与第一服务请求对应的第一服务时,可以返回第一服务给测试***。
步骤S150:接收所述推荐***返回的与所述第一服务请求对应的第一服务。
可选的,测试***可以接收推荐***返回的与第一服务请求对应的第一服务。
步骤S160:若所述第一服务满足目标条件,发送携带所述参考参数的第二服务请求,以测试所述待测服务的服务性能。
其中,目标条件可以理解为待测服务可以在与当前用户流量对应的请求量下正常运行。可选的,若第一服务满足目标条件,则第一服务可以在与第一用户流量对应的模拟请求下正常运行。在这种方式下,为了避免用户流量突然激增导致服务器出现宕机等异常而影响推荐效果,可以继续向推荐***发送携带参考参数的第二服务请求,以测试待测服务在用户流量增大后的服务性能。需要说明的是,本实施例中的第二服务请求为与第二用户流量对应的服务请求,第二服务请求的请求量大于第一服务请求的请求量,第二用户流量大于第一用户流量。
例如,第一用户流量可以是10%用户流量,第二用户流量可以是20%用户流量,或者可以是30%用户流量,可选的,第二用户流量的具体数值可以不作限定。
步骤S170:查询与所述第二服务请求对应的第二服务。
推荐***在接收到第二服务请求之后,可以按照预先设定的推荐策略查询与第二服务请求对应的第二服务。
步骤S180:返回所述第二服务。
可选的,推荐***在查询到与第二服务请求对应的第二服务时,可以返回第二服务给测试***。
步骤S190:接收所述推荐***返回的与所述第二服务请求对应的第二服务,基于所述第二服务获取所述待测服务的服务性能指标,以根据所述服务性能指标修改所述参考参数。
作为一种方式,测试***可以接收推荐***返回的与第二服务请求对应的第二服务,进而基于第二服务获取待测服务的服务性能指标,例如,可以根据第二服务的运行情况评估待测服务的服务性能。可选的,若第二服务的运行情况表征第二服务运行异常(即第二服务不满足目标条件),那么可以根据该服务性能指标修改参考参数,例如,调整参考参数的具体数值等。
本实施例提供的推荐***预发布测试方法,通过获取与待测服务对应的参考参数;继而向推荐***发送携带参考参数的第一服务请求;再接收推荐***返回的与第一服务请求对应的第一服务;若第一服务满足目标条件,向推荐***发送携带参考参数的第二服务请求,以测试待测服务的服务性能;再接收推荐***返回的与第二服务请求对应的第二服务,然后基于第二服务获取待测服务的服务性能指标,以根据服务性能指标修改参考参数。本方案通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
请参阅图3,示出了本申请另一实施例提供的一种推荐***预发布测试方法的流程图,本实施例提供一种推荐***预发布测试方法,可应用于测试***,该方法包括:
步骤S210:获取与所述待测服务关联的服务参数。
与待测服务关联的服务参数可理解为预先配置的可以表征待测服务的服务功能的参数。例如,假设待测服务为召回,那么与待测服务关联的服务参数可以是“recall”。可选的,若该召回为推荐***新增的一个召回,那么,与待测服务关联的服务参数可以配置为“recall_a”。
需要说明的是,与待测服务关联的服务参数可以是待测服务的最新的配置参数,或者可以是最新的待测服务的配置参数。
作为一种方式,为了便于在待测服务上线前对待测服务的服务性能进行测试,可以通过配置的方式获取与待测服务关联的服务参数。
步骤S220:对所述服务参数添加指定标识,得到与所述待测服务对应的参考参数。
作为一种方式,为了确保测试的准确性与可靠性,可以对与待测服务关联的服务参数添加指定标识,将携带有指定标识的服务参数作为与待测服务对应的参考参数。可选的,该指定标识可以待测服务需要被测试的功能仅在本实施例中的测试***起作用,而可以不在推荐***起作用,从而可以确保测试结果的准确性与可靠性。
可选的,该指定标识可以是PreLaunch_前缀。例如,待测服务新增了一个召回策略,可以将参考参数配置为“PreLaunch_recall_a”。推荐***可以自动屏蔽携带PreLaunch_前缀的参考参数,而测试***可以通过PreLaunch_前缀快速的获取到该参考参数。
例如,在一个具体的应用场景中,假设推荐***原有100个召回通道,先新增一个召回通道,即101召回通道。可选的,可以对这101号召回通道用10%的用户流量做实验,在该种方式下,压测的时候其他通道都是100%的用户流量。作为一种方式,为了便于区分,可以在压测的时候对101号通道配置PreLaunch_前缀,基于PreLaunch_前缀可以对101号召回通道通过局部增加用户流量并且增大用户请求量的方式对该通道进行压测。
步骤S230:向推荐***发送携带所述参考参数的第一服务请求。
步骤S240:接收所述推荐***返回的与所述第一服务请求对应的第一服务。
步骤S250:若所述第一服务满足目标条件,在指定时长内持续向所述推荐***发送携带所述参考参数的多个第二服务请求。
其中,指定时长可以是10分钟、30分钟或者是1小时等,具体数值可以不作限定。作为一种方式,若第一服务满足目标条件,可以在指定时长内持续向推荐***发送携带参考参数的多个第二服务请求,以实现在增大用户流量、同时增大请求量时,持续向推荐***发送多个第二服务请求,以对待测服务的服务性能进行压力测试。
步骤S260:接收所述推荐***返回的与所述多个第二服务请求分别对应的第二服务,基于所述分别对应的第二服务获取所述待测服务的服务性能指标。
可选的,测试***可以接收推荐***返回的与上述多个第二服务请求对应的第二服务,进而可以基于分别对应的第二服务获取待测服务的服务性能指标。可以理解的是,对于与多个第二服务请求分别对应的第二服务,可以包括可正常运行的服务以及无法正常运行的服务。
步骤S270:若所述服务性能指标表征所述推荐***存在异常,修改所述参考参数。
作为一种方式,可以通过服务性能指标判断推荐***是否存在异常。可选的,若服务性能指标表征推荐***存在异常,那么可以修改参考参数,以通过修改后的参考参数继续对待测服务的服务性能进行压测,直至待测服务的服务性能满足预期需求。
本实施例提供的推荐***预发布测试方法,通过对与待测服务关联的服务参数添加指定标识,得到参考参数,在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
请参阅图4,示出了本申请又一实施例提供的一种推荐***预发布测试方法的流程图,本实施例提供一种推荐***预发布测试方法,可应用于测试***,该方法包括:
步骤S310:获取与所述待测服务关联的服务参数。
步骤S320:对所述服务参数添加指定标识,得到与所述待测服务对应的参考参数。
步骤S330:向推荐***发送携带所述参考参数的第一服务请求。
步骤S340:接收所述推荐***返回的与所述第一服务请求对应的第一服务。
步骤S350:若所述第一服务满足目标条件,在指定时长内持续向所述推荐***发送携带所述参考参数的多个第二服务请求。
步骤S360:接收所述推荐***返回的与所述多个第二服务请求分别对应的第二服务,基于所述分别对应的第二服务获取所述待测服务的服务性能指标。
步骤S370:在每次接收所述推荐***返回的与所述第二服务请求对应的第二服务时,判断基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***是否存在异常。
作为一种方式,可以在每次接收到推荐***返回的与第二服务请求对应的第二服务时,判断基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***是否存在异常。
例如,在一个具体的应用场景中,假设第二服务请求为与20%用户流量对应的召回请求,与20%用户流量对应的请求量为1000qps,若预先配置了每一次召回服务对应的召回率为65%表征推荐***正常运行,那么可以将每次请求后接收到的推荐***返回的,与当次召回请求对应的召回率与预先配置的召回率进行比较。可选的,若与当次召回请求对应的召回率大于等于预先配置的召回率,那么可以判定基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***不存在异常。可选的,若与当次召回请求对应的召回率小于预先配置的召回率,那么可以判定基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***存在异常。
通过在每次接收到推荐***返回的与第二服务请求对应的第二服务时,判断基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***是否存在异常,可以提升待测服务的服务性能测试的频率,进而提升判断结果的准确性。
步骤S371:执行所述修改所述参考参数。
作为一种方式,若判定基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***存在异常,则可以修改参考参数,以重新对待测服务的服务性能进行测试。
步骤S372:上线所述待测服务。
作为另一种方式,若判定基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***不存在异常,那么可以直接上次按待测服务。
本实施例提供的推荐***预发布测试方法,通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***每次返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,进而判断推荐***是否存在异常,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
请参阅图5,示出了本申请再一实施例提供的一种推荐***预发布测试方法的流程图,本实施例提供一种推荐***预发布测试方法,可应用于测试***,该方法包括:
步骤S410:获取与所述待测服务关联的服务参数。
步骤S420:对所述服务参数添加指定标识,得到与所述待测服务对应的参考参数。
步骤S430:向推荐***发送携带所述参考参数的第一服务请求。
步骤S440:接收所述推荐***返回的与所述第一服务请求对应的第一服务。
步骤S450:若所述第一服务满足目标条件,在指定时长内持续向所述推荐***发送携带所述参考参数的多个第二服务请求。
步骤S460:接收所述推荐***返回的与所述多个第二服务请求分别对应的第二服务,得到多个返回的第二服务。
作为一种方式,若某些待测服务的返回结果在短期内看不出明显变化,或者是无法根据短期的返回结果判断推荐***是否存在异常,可以接收推荐***返回的与多个第二服务请求分别对应的第二服务,得到多个返回的第二服务,进而可以基于多个返回的第二服务对推荐***是否存在异常进行判断。
例如,测试***可以接收推荐***返回的与500qps分别对应的第二服务,将与与500qps分别对应的第二服务作为多个返回的第二服务。
步骤S470:基于所述多个返回的第二服务获取所述待测服务的服务性能指标。
步骤S480:判断所述服务性能指标所表征的推荐***是否存在异常。
作为一种方式,可以通过判断基于多个返回的第二服务获取的待测服务的服务性能指标,所表征的推荐***的出错率是否大于等于预设阈值的方式判断推荐***是否存在异常。其中,预设阈值可以根据实际情况进行设定,例如预设阈值可以是0.02、0.01或者是0.05等,具体数值可以不作限定。
可选的,若该出错率大于等于预设阈值,那么可以判定推荐***存在异常;若该出错率不大于等于预设阈值,那么可以判定推荐***不存在异常。
步骤S481:执行所述修改所述参考参数。
步骤S482:上线所述待测服务。
本实施例提供的推荐***预发布测试方法,通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***累积返回的与多个第二服务请求分别对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
请参阅图6,示出了本申请再一实施例提供的一种推荐***预发布测试方法的流程图,本实施例提供一种推荐***预发布测试方法,可应用于测试***,该方法包括:
步骤S510:获取与所述待测服务关联的服务参数。
步骤S520:向推荐***发送携带所述参考参数的第一服务请求。
步骤S530:接收所述推荐***返回的与所述第一服务请求对应的第一服务。
步骤S540:判断所述第一服务是否满足目标条件。
可选的,在接收推荐***返回的与第一服务请求对应的第一服务后,可以判断第一服务是否满足目标条件。其中,目标条件表征推荐***运行正常。作为一种实施方式,可以通过第一服务对应的服务性能指标判断第一服务是否满足目标条件。例如,假设第一服务是某条新配置的策略,与该第一服务对应的服务性能指标可以包括用户留存率、内容点击率或者是直播间进行入率等,可选的,可以通过判断用户留存率、内容点击率或者是直播间进行入率分别是否达到预设阈值的方式判断第一服务是否满足目标条件。若与该第一服务对应的服务性能指标包括一个性能指标,那么该性能指标满足预设阈值可以判定第一服务满足目标条件;而若与该第一服务对应的服务性能指标包括多个性能指标,那么多个性能指标需要均满足预设阈值时可以判定第一服务满足目标条件。
步骤S550:向所述推荐***发送携带所述参考参数的第二服务请求,以测试所述待测服务的服务性能。
可选的,若判定第一服务满足目标条件,为确保待测服务上线后用户流量激增的情况下依然可以稳定运行(在该种情况下,推荐***可以正常运行),可以向推荐***发送携带参考参数的第二服务请求,以测试待测服务的服务性能。
步骤S560:接收所述推荐***返回的与所述第二服务请求对应的第二服务。
步骤S570:判断所述第二服务是否满足目标条件。
需要说明的是,本实施例中的第二服务可以是继第一服务之后的多次第二服务。可选的,对于每一次增大用户流量、同时增大请求量对待测服务进行压测后,可以判断第二服务是否满足目标条件,以便于在确保当次第二服务满足目标条件的情况下,可以继续增大用户流量并且增大用户请求量后,对待测服务的服务性能进行压测,直至将用户流量增大至100%,以确保待测服务在上线后,在用户流量激增的情况下依然可以正常运行。
可选的,关于第二服务是否满足目标条件的具体判断过程及原理同判断第一服务是否满足目标条件的判断过程及判断原理,在此不再赘述。
步骤S571:基于所述第二服务获取所述待测服务的服务性能指标,以根据所述服务性能指标修改所述参考参数。
作为一种方式,若第二服务不满足目标条件,那么可以基于第二服务获取待测服务的服务性能指标,以根据服务性能指标修改参考参数。
步骤S572:上线所述待测服务。
作为另一种方式,若第二服务满足目标条件,在该种方式下,表征待测服务可以在推荐***稳定运行,那么可以直接上线待测服务。
本实施例提供的推荐***预发布测试方法,通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,判断第一服务是否满足目标条件,在第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,进而判断与第二服务请求对应的第二服务是否满足目标条件,通过多重判断提升了测试结果的准确性与可靠性,再基于推荐***返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
请参阅图7,为本申请实施例提供的一种推荐***预发布测试装置的结构框图,本实施例提供一种推荐***预发布测试装置600,运行于推荐***,所述装置600包括:获取模块610、第一请求模块620、第一接收模块630、第二请求模块640以及第二接收模块650:
获取模块610,用于获取与待测服务对应的参考参数,所述待测服务为确定的预发布服务。
可选的,本实施例中的参考参数可以包括所述待测服务的新增参数、替换参数和/或待删除的参数。
作为一种方式,获取模块610,具体可以用于获取与所述待测服务关联的服务参数;对所述服务参数添加指定标识,得到与所述待测服务对应的参考参数。
第一请求模块620,用于向推荐***发送携带所述参考参数的第一服务请求,所述第一服务请求为与第一用户流量对应的服务请求,所述第一用户流量为从整体流量中选取的部分流量。
第一接收模块630,用于接收所述推荐***返回的与所述第一服务请求对应的第一服务。
第二请求模块640,用于若所述第一服务满足目标条件,向所述推荐***发送携带所述参考参数的第二服务请求,以测试所述待测服务的服务性能,其中,所述第二服务请求为与第二用户流量对应的服务请求,所述第二服务请求的请求量大于所述第一服务请求的请求量,所述第二用户流量大于所述第一用户流量。
作为一种方式,第二请求模块640,可以用于若所述第一服务满足目标条件,在指定时长内持续向所述推荐***发送携带所述参考参数的多个第二服务请求。
第二接收模块650,用于接收所述推荐***返回的与所述第二服务请求对应的第二服务,基于所述第二服务获取所述待测服务的服务性能指标,以根据所述服务性能指标修改所述参考参数。
作为一种方式,第二接收模块650,可以用于接收所述推荐***返回的与所述多个第二服务请求分别对应的第二服务,基于所述分别对应的第二服务获取所述待测服务的服务性能指标;若所述服务性能指标表征所述推荐***存在异常,修改所述参考参数。
其中,作为一种实施方式,可以在每次接收所述推荐***返回的与所述第二服务请求对应的第二服务时,判断基于当次所接收到的第二服务获取的待测服务的服务性能指标所表征的推荐***是否存在异常;若存在异常,执行所述修改所述参考参数。
作为另一种实施方式,可以接收所述推荐***返回的与所述多个第二服务请求分别对应的第二服务,得到多个返回的第二服务;基于所述多个返回的第二服务计算所述待测服务的服务性能指标;判断所述服务性能指标所表征的推荐***是否存在异常;若存在异常,执行所述修改所述参考参数。
其中,可以通过判断所述服务性能指标所表征的推荐***的出错率是否大于等于预设阈值的方式,判断所述服务性能指标所表征的推荐***是否存在异常。可选的,若大于等于预设阈值,可以判定存在异常;若不大于等于预设阈值,可以判定不存在异常。
值得注意的是,本实施例中,若所述第二服务满足所述目标条件,可以上线所述待测服务。
本实施例提供的一种推荐***预发布测试装置,通过获取与待测服务对应的参考参数;继而向推荐***发送携带参考参数的第一服务请求;再接收推荐***返回的与第一服务请求对应的第一服务;若第一服务满足目标条件,向推荐***发送携带参考参数的第二服务请求,以测试待测服务的服务性能;再接收推荐***返回的与第二服务请求对应的第二服务,然后基于第二服务获取待测服务的服务性能指标,以根据服务性能指标修改参考参数。本方案通过在接收的与第一服务请求对应的第一服务满足目标条件的情况下,增加第一服务请求的请求量,同时增加第一服务对应的用户流量,向推荐***发送携带参考参数的第二服务请求,基于推荐***返回的与第二服务请求对应的第二服务获取待测服务的服务性能指标,实现了通过局部扩大用户流量,扩大请求量的方式对待测服务的服务性能进行压测,以提升待测服务的可靠性与稳定性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图8,基于上述的推荐***预发布测试方法及装置,本申请实施例还提供了一种可以执行前述推荐***预发布测试方法的电子设备100。电子设备100包括存储器102以及相互耦合的一个或多个(图中仅示出一个)处理器104,存储器102以及处理器104之间通信线路连接。存储器102中存储有可以执行前述实施例中内容的程序,而处理器104可以执行存储器102中存储的程序。
其中,处理器104可以包括一个或者多个处理核。处理器104利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器104可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器104可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器104中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现前述各个实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图9,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质700中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质700可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质700包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质700具有执行上述方法中的任何方法步骤的程序代码710的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码710可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。