CN113765693A - 一种需求测试方法、装置、服务器及存储介质 - Google Patents

一种需求测试方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN113765693A
CN113765693A CN202110127494.XA CN202110127494A CN113765693A CN 113765693 A CN113765693 A CN 113765693A CN 202110127494 A CN202110127494 A CN 202110127494A CN 113765693 A CN113765693 A CN 113765693A
Authority
CN
China
Prior art keywords
message
server
requirement
demand
test
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.)
Granted
Application number
CN202110127494.XA
Other languages
English (en)
Other versions
CN113765693B (zh
Inventor
赵志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Tuoxian Technology Co Ltd
Original Assignee
Beijing Jingdong Tuoxian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Tuoxian Technology Co Ltd filed Critical Beijing Jingdong Tuoxian Technology Co Ltd
Priority to CN202110127494.XA priority Critical patent/CN113765693B/zh
Publication of CN113765693A publication Critical patent/CN113765693A/zh
Application granted granted Critical
Publication of CN113765693B publication Critical patent/CN113765693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种需求测试方法、装置、服务器及存储介质。该方法应用于预发服务器,包括:在监测到需求测试事件时,从预发服务器的预发主题中获取需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录;确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致;若否,则调用配置有消息需求标识的待调用接口,以使设置有该待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果。本发明实施例的技术方案,在根据需求标识的比较结果确定消息路由到的预发服务器无法对待测试需求进行测试时,调用配置有消息需求标识的待调用接口以使设置有待调用接口的目标服务器进行测试,达到了高效的多需求并行测试的效果。

Description

一种需求测试方法、装置、服务器及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种需求测试方法、装置、设备及存储介质。
背景技术
随着大家对于身体健康的重视程度越来越高,很多企业的健康部门的业务规模迅速增长,它们往往存在多个需求需要测试MQ消息的情况,该需求可以理解为需要实现的某种功能。
需要说明的是,在新版本(即能够实现需要实现的某种功能的应用程序,该应用程序也可以称为系统)没有上线时,线上服务器需要将其接收到的MQ消息路由至预发服务器,然后由接收到该MQ消息的预发服务器对该MQ消息进行消费来完成需求测试。
在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:现有的需求测试方案的测试效率较低。
发明内容
本发明实施例提供了一种需求测试方法、装置、设备及存储介质,解决了现有的需求测试方案的测试效率较低的问题。
第一方面,本发明实施例提供了一种需求测试方法,应用于预发服务器,该方法可以包括:
在监测到需求测试事件时,从预发服务器的预发主题中获取需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录;
确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致,其中消息需求标识包括可对与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识;
若否,则调用配置有消息需求标识的待调用接口,以使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中目标服务器包括可测试待测试需求的部署有预发环境的服务器。
第二方面,本发明实施例提供了一种需求测试方法,应用于线上服务器,该方法可以包括:
在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段;
确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录;
若是,则将MQ消息路由至预发服务器的预发主题中,以使预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果;
其中,消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
第三方面,本发明实施例还提供了一种需求测试装置,配置于预发服务器,该装置可以包括:
需求测试记录获取模块,用于在监测到需求测试事件时,从预发服务器的预发主题中获取需求测试事件对应的MQ消息、获取MQ消息的需求测试记录;
需求标识确定模块,用于确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致,其中消息需求标识包括可对与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识;
需求测试模块,用于若否,则调用配置有消息需求标识的待调用接口,以使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中目标服务器包括可测试待测试需求的部署有预发环境的服务器。
第四方面,本发明实施例还提供了一种需求测试装置,配置于线上服务器,该装置可以包括:
路由字段提取模块,用于在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段;
需求测试记录确定模块,用于确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录;
MQ消息路由模块,用于若是,则将MQ消息路由至预发服务器的预发主题中,以使预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果;
其中,消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
第五方面,本发明实施例还提供了一种预发服务器,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例一所提供的需求测试方法。
第六方面,本发明实施例还提供了一种线上服务器,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例二和/或实施例三所提供的需求测试方法。
第七方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的需求测试方法。
本发明实施例的技术方案,通过从预发服务器的预发主题中获取监测到的需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录,该需求测试记录中存储有用于表示与该MQ消息对应的待测试需求是哪个需求的消息需求标识;由于预发服务器只能对某个可测试需求进行测试,因此将消息需求标识与预发服务器自身配置的用于表示可测试需求的服务器需求标识进行对比,并根据对比结果确定该预发服务器是否可以对该MQ消息进行消费来得到待测试需求的测试结果;若二者不一致,即预发服务器不能对该MQ消息进行消费,那么为了保证本次MQ消息的正常消费,并且不会影响到其余的预发服务器的消费过程,可以调用配置有消息需求标识的待调用接口,以使设置有该待调用接口的能够对待测试需求进行测试的配置有预发环境的目标服务器对MQ消息进行消费,由此得到了待测试需求的测试结果。上述技术方案,如果通过消息需求标识和服务器需求标识的对比结果确定消息路由到的预发服务器不是能够对与MQ消息对应的待测试需求进行测试的服务器,则可以基于消息需求标识找到的待调用接口的调用使得设置有待调用接口的目标服务器进行需求测试,其因为无需对任何预发服务器进行限制而可以进行多需求并行测试,由此达到了待测试需求的高效测试的效果。
附图说明
图1是本发明实施例一中的一种需求测试方法的流程图;
图2是本发明实施例二中的一种需求测试方法的流程图;
图3是本发明实施例三中的一种需求测试方法的流程图;
图4是本发明实施例三中的一种需求测试方法中可选示例的流程图;
图5是本发明实施例四中的一种需求测试装置的结构框图;
图6是本发明实施例五中的一种需求测试装置的结构框图;
图7是本发明实施例六中的一种预发服务器的结构示意图;
图8是本发明实施例七中的一种预发服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:为了提高预发环境(即在预发机器中部署的环境)上的代码消费的测试效率,多需求并行测试势在必行。在实际应用中,很多情况都可能涉及到多需求并行测试,如某个需求的测试可能需要横跨多个服务器,即某个功能可能需要基于部署在多个服务器上的系统相互配合来实现,此时需要多个需求并行测试;再比如有时多个需求的测试可能涉及到同一个系统,此时也需要多需求并行测试。示例性的,假设某需求是医生给患者推荐药品,其可能涉及到商品推荐系统和结算系统(因为医生推荐药品后可以得到佣金);假设某需求是医生问诊,其也可能涉及到结算系统(因为医生问诊后可以得到佣金)。上述两个需求都涉及到结算系统,那么在进行需求测试时,它们需要更改结算系统中的不同地方处的出现更改的代码,这相当于需要对出现更改的代码进行并行测试的两个分支,这可以保证一个分支测试完毕则可以上线,无需等待另一个分支的测试结果,那么这两个分支可以分别部署到不同的预发机器上,这就是多需求并行测试。
需要说明的是,这里阐述的“多个”可以是两个、三个、四个等等,在此未做具体限定。而且,如何将线上服务器接收到的MQ消息正确路由到部署有与该MQ消息对应的最新撰写的待测试代码的预发机器上,这是实现多需求并行测试的关键所在。
实施例一
图1是本发明实施例一中提供的一种需求测试方法的流程图。本实施例可适用于MQ需求测试的情况,尤其适用于MQ多需求并行测试的情况。该方法可以由本发明实施例提供的需求测试装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在预发服务器上。
参见图1,本发明实施例的方法具体包括如下步骤:
S110、在监测到需求测试事件时,从预发服务器的预发主题中获取与需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录。
其中,需求测试事件可以是由预发服务器监测到的用于测试需求的事件。MQ消息可以是基于设置在预发服务器上的MQ接收到的与待测试需求有关的消息,MQ可以理解为能够提供消息生产与订阅消费能力的消息中间件。主题(即topic)是MQ中用于进行MQ消息存储的存储单元,而预发topic是为了进行消息路由而预先设置的topic。由于预发服务器不能直接接收到线上环境的MQ消息,因此线上服务器可以将接收到的线上的MQ消息路由到预发服务器的预发topic中,以便预发服务器在监测到需求测试事件时,可以从自身的预发topic中获取相应的MQ消息。上述消息路由可以理解为通过路由规则动态规划消息的传输路径,以使消息按照过滤条件从消息源路由到目标节点。
需要说明的是,上文所述的预发服务器可以是部署有预发环境的服务器,其也可以称为预发机器。预发环境可以是无限模拟用户真正使用的线上环境的环境,全部代码都需要在预发环境中测试完毕后才能上线。相对于线上环境。预发环境中的新功能对应的代码为最新代码,而其他功能代码和生产环境一致。在预发环境进行需求测试的目的在于,不会对影响到线上环境的用户正常访问。当然,部署有线上环境的服务器可以称为线上服务器,其也可简称为线上机器。
需求测试记录可以是与MQ消息对应的待测试需求的记录,其中可以记录有与该待测试需求关联的多个内容,如用于表示哪个系统可以进行待测试需求的需求测试的系统身份标识、用于表示该待测试需求属于哪个待测试的需求的消息需求标识、用于表示该待测试需求是否为待测试的需求的路由字段等等,在此未做具体限定。需求测试记录存在的原因在于,某待测试需求可能会横跨多个系统,代码在开发完成准备测试前,通常会需要先建立一个待测试需求,本发明实施例可以对该待测试需求进行配置,如配置人员在配置中心配置与该待测试需求关联的系统(即能够对该待测试需求进行测试的系统)、路由字段、消息需求标示等等。需求测试记录可以从配置有该需求测试记录的地方获取,示例性的,需求测试记录可以存储在需求测试名单中,由于需求测试记录中的需求均是需进行需求测试的需求,因此需求测试名称也可以称为白名单,那么需求测试记录可以从集成在线上服务器的某系统中的可以实现白名单获取功能的虚拟的白名单客户端中获取,该白名单客户端可以立即为一串代码。
S120、确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致,其中消息需求标识可包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识。
其中,由于线上服务器在将MQ消息路由到某预发机器上时,接收到该MQ消息的预发服务器不一定是部署有与该MQ消息对应的待测试代码的预发服务器,这是因为为了降低需求测试的成本,每个待测试代码只会部署在一个预发服务器上,而消息路由到的目标节点是随机的,因此MQ消息不一定能够路由到正确的预发服务器上。因此,预发服务器在获取到MQ消息后,可以将需求测试记录中的消息需求标识和预发服务器的服务器需求标识进行对比,并根据对比结果判断该预发服务器中是否部署有与该MQ消息对应的待测试代码。上述服务器需求标识可以是预先为预发服务器配置的用于表示其可以对哪个待测试需求进行测试的标识。
S130、若否,则调用配置有消息需求标识的待调用接口,以使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中目标服务器包括可测试待测试需求的部署有预发环境的服务器。
其中,如果二者不一致,则说明该预发服务器无法对该MQ消息进行消费来完成相应的待测试需求的测试。在此基础上,为了实现该待测试需求的测试,由于可以进行该待测试需求测试的部署有预发环境的目标服务器上设置有接口,该接口可以是配置有相应的消息需求标识的虚拟的待调用接口,因此MQ消息路由到的预发服务器可以基于消息需求标识找到相应的待调用接口,进而对其进行调用,通过这种方式使得设置有该待调用接口的目标服务器可以对该MQ消息进行消费,由此得到了该待测试需求的本次的测试结果。
上述需求测试方案,无需通过限制错误的预发服务器(即未部署有待测试代码的服务器)的消费的方式保证只有正确的预发服务器才能对MQ消息进行消费,那些被限制的预发服务器无法对任何MQ消息进行消费,这意味着各待测试需求只能串行进行测试,其在多需求并行测试的应用场景下,会严重影响到测试效率,而且那些路由到被限制的预发服务器上的MQ消息无法正常消费。然而,本发明实施例所述的需求测试方法,即使MQ消息路由到了错误的预发机器上,其也可以通过配置有消息需求标识的待调用接口的调用来使得正确的预发服务器(即目标服务器)能够消费到该MQ消息,由于其无需对任何预发服务器和/或线上服务器进行限制,可以实现多需求并行测试,由此极大的提高了线上MQ多需求并行测试的效率,节约了线上测试回归的时间;而且其不会遗漏任何的MQ消息和/或对其线上服务造成影响,由此实现了完整的需求测试的效果。
在此基础上,可选的,如果预发服务器即为目标服务器,那么预发服务器可以直接对MQ消息进行消费。具体的,其可以从MQ消息的预设属性中获取MQ消息的真实主题,其可以是线上服务器在将MQ消息路由到预发服务器前将该真实主题存储到预设属性中,该真实主题可以是该MQ消息的真正的主题;预发服务器上部署有消息处理工厂,该消息处理工厂可以理解为用于维护全部的topic和与每个真实topic对应的消息处理器,其可以根据真实topic确定相应的消息处理器,并基于该消息处理器对MQ消息进行消费,该消息处理器可以立即为消息处理工厂中的一段代码。这种工厂模式消息处理方式是基于与真实topic对应的消息处理器对MQ消息进行消费,由此达到了MQ消息的准确消费的效果。
本发明实施例的技术方案,通过从预发服务器的预发主题中获取监测到的需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录,该需求测试记录中存储有用于表示与该MQ消息对应的待测试需求是哪个需求的消息需求标识;由于预发服务器只能对某个可测试需求进行测试,因此将消息需求标识与预发服务器自身配置的用于表示可测试需求的服务器需求标识进行对比,并根据对比结果确定该预发服务器是否可以对该MQ消息进行消费来得到待测试需求的测试结果;若二者不一致,即预发服务器不能对该MQ消息进行消费,那么为了保证本次MQ消息的正常消费,并且不会影响到其余的预发服务器的消费过程,可以调用配置有消息需求标识的待调用接口,以使设置有该待调用接口的能够对待测试需求进行测试的配置有预发环境的目标服务器对MQ消息进行消费,由此得到了待测试需求的测试结果。上述技术方案,如果通过消息需求标识和服务器需求标识的对比结果确定消息路由到的预发服务器不是能够对与MQ消息对应的待测试需求进行测试的服务器,则可以基于消息需求标识找到的待调用接口的调用使得设置有待调用接口的目标服务器进行需求测试,其因为无需对任何预发服务器进行限制而可以进行多需求并行测试,由此达到了待测试需求的高效测试的效果。
一种可选的技术方案,MQ消息包括由接收到MQ消息的线上服务器路由至预发服务器上的预发主题中的消息,需求测试记录还包括部署在线上服务器上的系统的系统身份标识;相应的,调用配置有消息需求标识的待调用接口,可以包括:从需求测试记录中获取系统身份标识,调用配置有系统身份标识和消息需求标识的待调用接口。其中,考虑到某个待测试需求可能需要横跨多个系统,即某个需求可能需要横跨分别部署有多个系统的预发服务器,那么为了准确找到真正能对该MQ消息进行消费的目标服务器,因此在需求测试记录中还可以记录有系统身份标识,该系统身份标识可以是部署在从线上接收到该MQ消息的系统的身份标识,而真正能对该MQ消息进行消费的目标服务器上也部署有该系统,当然目标服务器上的系统和线上服务器上的系统在待测试代码方面是存在区别的。在此基础上,设置在目标服务器上的待调用接口上也配置有相应的系统身份标识,那么基于系统身份标识和消息需求标识唯一确定的预发服务器必然是能够对该MQ消息进行消费的目标服务器。上述系统身份标识可以简称为系统ID。
一种可选的技术方案,调用配置有消息需求标识的待调用接口,可以包括:基于远程过程调用协议(Remote Procedure Call Protocol,RPC)中的泛化调用策略调用配置有消息需求标识的待调用接口。其中,预发服务器在启动时,其可以配置有服务器需求标识,还可以启动设置在该预发服务器上的待调用接口,该调用接口上可以配置有消息需求标识,在此基础上还可以配置有系统ID,该系统ID可以是部署在该预发机器上的系统的身份标识;该待调用接口可以一直在监听来等待rpc调用,错误的预发服务器通过rpc调用可以找到相应的待调用接口。在实际应用中,可选的,可以通过泛化调用rpc的方式实现接口调用来自动模拟MQ消费过程,具体来说可以是在别名中带上消息需求标识的后缀,消息路由到的预发服务器根据该别名可以找到对应的待调用接口。一种可选的别名构成公式为标准预发别名+系统ID+消息需求标识。上述技术方案,通过rpc泛化调用的方式实现了自动模拟MQ消费的过程,其因为无需引入jar包而具有操作便捷的效果。
一种可选的技术方案,每条需求测试记录可包括消息需求标识、系统身份标识和路由字段;和/或包含同一消息需求标识的各条需求测试记录存储在同一需求测试名单中。其中,在数据库层面设置包含至少一条需求测试记录的需求测试名单的目的,一是用来控制是否将MQ消息从线上环境路由到预发环境,二是让正确的预发服务器对MQ消息能够消费。实际应用中,一种可选的需求测试名单中的一条需求测试记录可以包括消息需求标识、系统身份标识和路由字段,在此以需求测试名单是表结构为例,其中的需求测试记录如表1所示:
表1需求测试记录
字段 说明
business_scene 消息需求标识
system_id 系统ID(系统身份标识)
white_key 白名单值(即路由字段)
其中,businee_scene+system_id+white_key可以构成唯一索引,而system_id+white_key也可以构成唯一索引,防止白名单值出现在不同的待测试需求中,这是多需求并行测试的关键所在。另外在配置需求测试名单时,由于一个需求可能横跨多个系统,那么可以根据需求维度将多个系统统一配置一张需求测试名单中,即一个需求可以对应于一张需求测试名单,而与该需求关联的多个系统均可以统一配置在该需求测试名单中,也就是说以需求为单位构建需求测试名单,配置人员在配置需求时勾选系统,这可以大大提高配置效率,并且达到将线上环境的MQ消息统一转发至预发环境的效果。
实施例二
在对本发明实施例二中的需求测试方法进行详细介绍前,先对其执行主体——线上服务器的一些情况进行简单介绍。可选的,部署在每个线上服务器上的系统都可以在配置中心配置一个系统ID,这是为了用于区分系统和查询需求。可选的,线上服务器可以配置一个消息处理工厂,里面维护全部topic和与每个真实topic对应的消息处理器,该消息处理器用于处理相应的topic。可选的,线上服务器可以配置一个统一的预发topic,统一的预发topic用于对MQ消息进行转投,即线上服务器接收到的全部的MQ消息可以先转投到该预发topic,其中转投可以理解为将接收到的MQ消息消费,并且重新发一个新的队列消息。另外,补充一点说明,每个待测试需求所部署的系统还可以配置一个消息需求标识,其可以表示该系统接收到的MQ消息是用于进行与该消息需求标识对应的待测试需求的需求测试的效果,其是多需求并行测试的关键,即某个系统在部署到某个预发环境时,其需要基于该消息需求标识来标识自己是属于哪个待测试需求中的,从实质内容上来说,某个系统的消息需求标识和部署有该系统的预发服务器的服务器需求标识是一致的。然而,部署在线上环境的系统因为无需进行需求测试而可以无需配置有消息需求标识。
图2是本发明实施例二中提供的一种需求测试方法的流程图。本实施例可适用于MQ需求测试的情况,尤其适用于MQ多需求并行测试的情况。该方法可以由本发明实施例提供的需求测试装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在线上服务器上。
参见图2,本实施例的方法具体可以包括如下步骤:
S210、在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段。
其中,消息处理事件可以是由线上服务器监测到的用于处理消息的事件,如在监听到真实的MQ消息时可以认为监测到该消息处理事件。获取与该消息处理事件对应的MQ消息,从该MQ消息中提取路由字段,该路由字段有助于确定该MQ消息是由线上服务器直接对其进行处理,还是先将其路由到预发处理器上,再由预发处理器对其进行处理。
S220、确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录。
其中,部署在线上服务器上的系统均配置有自己的需求测试名单,该需求测试名单可以表示出当该系统部署在预发服务器上时,其可以对具有哪些路由字段的MQ消息进行需求测试,换言之,根据需求测试名单中是否包括与路由字段有关的需求测试记录可以确定对MQ消息进行消费的消费对象是线上服务器还是预发服务器,即确定是否需要对MQ消息进行路由,该路由字段可能是医生_key、患者_key等等关键字段。在实际应用中,可选的,需求测试名单中的每条需求测试记录可以包括系统ID和路由字段,在此基础上还可以包括系统ID和路由字段所属的某个待测试需求。可选的,需求测试名单可以存储在部署于线上服务器上的白名单客户端中。再可选的,若MQ消息的路由字段未存在于需求测试名单中,说明该MQ消息不再任何待测试需求中,此时线上服务器可以对其直接进行消费;否则,可以执行下述步骤。
S230、若是,则将MQ消息路由至预发服务器的预发主题中,以使预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
其中,当MQ消息的路由字段存在于需求测试名单时,这说明该MQ消息存在于某待测试需求中,此时线上服务器不能对其进行消费,需要将其路由到预发服务器上的预发主题中,因为只有预发服务器才能进行需求测试。由此,预发服务器根据接收到的MQ消息进行相应处理,其处理过程已在实施例一中进行详细阐述,在此不再赘述。在实际应用中,可选的,上述步骤可以由部署在线上服务器上的MQ路由客户端来执行,该MQ路由客户端可以理解为集成在线上服务器的某系统中的可以实现消息路由的虚拟的客户端。
本发明实施例的技术方案,通过从获取的与监测到的消息处理事件对应的MQ消息中提取路由字段,并基于该路由字段在与部署在线上服务器上的系统匹配的需求测试名单中进行查询,以便根据查询结果确定是否需要将MQ消息路由到预发服务器上;若根据查询结果确定需求测试名单中存在该路由字段,这说明该MQ消息是线上服务器无法消费的消息,需要将其进行消息路由至预发服务器的预发主题中,以使预发服务器根据接收到的MQ消息进行相应处理。上述技术方案,通过判断MQ消息中的路由字段是否命中与部署在线上服务器上的系统匹配的需求测试名单的方式,可以准确确定是否需要将MQ消息路由至预发服务器上,进而达到了基于正确的服务器处理MQ消息的效果。
一种可选的技术方案,将MQ消息路由至预发服务器的预发主题中,包括:将MQ消息转投至线上服务器的预发主题上,且将MQ消息的真实主题放置在MQ消息的预设属性上;从线上服务器的预发主题中将已放置真实主题的MQ消息路由至预发服务器的预发主题上,以使预发服务器从预发服务器的预发主题中获取MQ消息,并从MQ消息的预设属性中提取真实主题。其中,该线上服务器的预发主题可以是预先设置的用于进行消息路由的一类消息的存储单元,转投可以理解为将接收到的MQ消息进行消费,并重新发送一个新的消息队列,该消息队列可以理解为同一类的MQ消息的集合;与此同时,还可以将该MQ消息的真实topic放置在MQ消息的预设属性上,以便预发服务器可以从该预设属性中获取该真是topic。由此,当从线上服务器的预发主题中将已放置真实主题的MQ消息路由至预发服务器的预发主题后,预发服务器可以从自身的预发主题中获取MQ消息,并对其进行相应处理,由此实现了MQ消息路由的效果。
实施例三
图3是本发明实施例三中提供的一种需求测试方法的流程图。本实施例以上述实施例二为基础进行优化。在本实施例中,可选的,上述需求测试方法,还可以包括:基于预设时间间隔从名单缓存服务器中拉取当前版本号,将当前版本号和存储于线上服务器的本地缓存中的本地版本号进行对比:若本地版本号为空、或是当前版本号高于本地版本号,则从名单缓存服务器中读取当前的需求测试名单和当前版本号,并将读取结果缓存于本地缓存中;相应的,确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录,具体可以包括:从本地缓存中获取与部署在线上服务器上的系统匹配的需求测试名单,确定需求测试名单中是否存在与路由字段对应的需求测试记录。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例的方法具体可以包括如下步骤:
S310、基于预设时间间隔从名单缓存服务器中拉取当前版本号,将当前版本号和存储于线上服务器的本地缓存中的本地版本号进行对比。
其中,预设时间间隔可以是预先设定的时间间隔,比如5秒、10秒、15秒等等,其设置的目的在于保证线上服务器的本地缓存中缓存的需求测试名单是最新配置的需求测试名单。名单缓存服务器可以认为是部署有线上环境的用于缓存需求测试名单的服务器,比如redis缓存服务器等等。从名单缓存服务器中拉取最新配置的需求测试名单的当前版本号,将其和存储于线上服务器的本地缓存中的本地版本号进行对比,该本地本版号可以是缓存在本地缓存中的需求测试名单的版本号。在实际应用中,可选的,本地本版号可能为空,此时本地缓存中未存储有任何的需求测试名单;本地版本号可能小于当前版本号,此时本地缓存中的需求测试名单并非是最新配置的需求测试名单;本地版本号可能等于当前版本号,此时本地缓存中的需求测试名单是最新配置的需求测试名单。
需要说明的是,针对名单缓存服务器中缓存的需求测试名单和当前版本号,其可以是在名单缓存配置中心每次进行配置更新(需求测试名单和当前版本号的同时更新)时,同步更新到名单缓存服务器中的数据,可选的,该名单缓存配置中心可以是不同于名单缓存服务器的服务器。在实际应用中,可选的,在名单缓存配置中进行配置时,为防止多人并发操作,可以基于乐观锁控制更新。具体的,如果假设每次配置更新时未存在冲突,则对更新操作持有乐观态度,在同一事务中,先查询版本号,然后在更新时带上该版本号,若数据库中该条被更新数据的版本号等于刚才查询的版本号,则进行更新,否则不进行更新。上述名单缓存配置中心也可以称为白名单配置中心。
S320、若本地版本号为空、或是当前版本号高于本地版本号,则从名单缓存服务器中读取当前的需求测试名单和当前版本号,并将读取结果缓存于本地缓存中。
其中,当本地版本号为空或是当前版本号高于本地版本号时,这说明本地缓存中未存储有最新的需求测试名单,那么线上服务器可以从名单缓存服务器中读取当前的需求测试名单,以便后续线上服务器可以从本地缓存中读取得到最新配置的需求测试名单,由此保证了消息路由的准确性;而且由于本地缓存是线上服务器上的内存,从本地缓存中读取需求测试名单的读取速度高于名单缓存服务器,快速读取的需求测试名单进一步加快了需求测试效率。需要说明的是,在实际应用中,可选的,上述S310和S320可以基于部署在线上服务器上的白名单客户端实现。
S330、在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段。
S340、从本地缓存中获取与部署在线上服务器上的系统匹配的需求测试名单,确定需求测试名单中是否存在与路由字段对应的需求测试记录。
S350、若是,则将MQ消息路由至预发服务器的预发主题中,以使预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
本发明实施例的技术方案,通过定时对比从名单缓存服务器中拉取的当前版本号和线上服务器的本地缓存中缓存的本地版本号,在二者不一致时将名单缓存服务器中最新配置的需求测试名单缓存于本地缓存,以便后续线上服务器可以从本地缓存中读取得到最新配置的需求测试名单,由此保证了消息路由的准确性,并且具有较高读取速度的本地缓存进一步加快了需求测试效率。
为了将线上服务器和预发服务器的执行过程结合起来,以便从整体上更好地理解上述各技术方案的具体实现过程,下面结合具体示例对其进行示例性的说明。示例性的,参见图4,在此以将线上服务器称为线上机器、预发服务器称为预发机器和需求测试名单称为白名单为例,部署在线上机器上的MQ路由客户端在监听到MQ消息a后,从a中提取路由字段,根据部署在线上机器上的系统的系统ID和路由字段在缓存于线上机器的本地缓存中的白名单中进行查询,若未查询到相应的需求测试记录,则直接对a进行消费,否则将a路由到预发机器上。预发机器接收a,获取a的真实topic,并且从需求测试记录中获取a的消息需求标识,将其与预发机器所配置的服务器需求标识进行对比,若一致则基于与真实topic对应的消息处理工厂中的消息处理器对a进行消费,否则进行rpc泛化调用。在rpc泛化调用中,调用与a真正对应的目标机器(即目标服务器),若调用成功则模拟消费成功;否则,可以调用标准预发rpc进行模拟消费,出现这种情况的原因可能是,目标机器已经被其余的需求使用了,但是原有需求的配置还在白名单中,因此出现调用失败的情况。部署在线上机器的白名单客户端定时从redis缓存服务器中拉取当前版本号,并将其与该线上机器的本地缓存中缓存的本地版本号进行对比。若二者一致则等待下次的定时拉取;否则,可以从redis缓存服务器中拉取最新配置的白名单,并将最新配置的白名单缓存至本地缓存中。缓存在redis缓存服务器中的当前版本号和白名单可以是白名单配置中心在配置更新时更新到redis缓存服务器中的数据。
上述技术方案,通过白名单命中+集中转投+工厂模式消息处理+rpc泛化调用机制+redis缓存的方式,实现了高效的完整的MQ多需求并行测试的效果。
实施例四
图5为本发明实施例四提供的需求测试装置的结构框图,该装置用于执行上述实施例一所提供的需求测试方法。该装置与上述实施例一的需求测试方法属于同一个发明构思,在需求测试装置的实施例中未详尽描述的细节内容,可参考上述需求测试方法的实施例。参见图5,该装置配置于预发服务器,可以包括:需求测试记录获取模块410、需求标识确定模块420和需求测试模块430。
其中,需求测试记录获取模块410,用于在监测到需求测试事件时,从预发服务器的预发主题中获取需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录;
需求标识确定模块420,用于确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致,其中消息需求标识包括可对与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识;
需求测试模块430,用于若否,则调用配置有消息需求标识的待调用接口,以使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中目标服务器包括可测试待测试需求的部署有预发环境的服务器。
可选的,MQ消息包括由接收到MQ消息的线上服务器路由至预发服务器上的预发主题中的消息,且需求测试记录还包括部署在线上服务器上的系统的系统身份标识,需求测试模块430,具体可以包括:
第一接口调用单元,用于从需求测试记录中获取系统身份标识,调用配置有系统身份标识和消息需求标识的待调用接口。
可选的,需求测试模块430,具体可以包括:
第二接口调用单元,用于基于远程过程调用协议中的泛化调用策略调用配置有消息需求标识的待调用接口。
可选的,在上述任一装置的基础上,该装置还可包括:
真实主题获取模块,用于若是,从MQ消息的预设属性中获取MQ消息的真实主题;MQ消息消费模块,用于确定预发服务器上与真实主题对应的消息处理器,基于消息处理器对MQ消息进行消费。
可选的,每条需求测试记录包括消息需求标识、系统身份标识和路由字段;和/或,包含同一消息需求标识的各条需求测试记录存储在同一需求测试名单中。
本发明实施例四提供的需求测试装置,通过需求测试记录获取模块从预发服务器的预发主题中获取监测到的需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录,该需求测试记录中存储有用于表示与该MQ消息对应的待测试需求是哪个需求的消息需求标识;由于该预发服务器只能对某个可测试需求进行测试,因此需求标识确定模块将消息需求标识与预发服务器自身配置的用于表示可测试需求的服务器需求标识进行对比,并根据对比结果确定该预发服务器是否可以对该MQ消息进行消费来得到待测试需求的测试结果;需求测试模块若二者不一致,即预发服务器不能对该MQ消息进行消费,那么为了保证本次MQ消息的正常消费,并且不会影响到其余的预发服务器的消费过程,可以调用配置有消息需求标识的待调用接口,以使设置有该待调用接口的能够对待测试需求进行测试的配置有预发环境的目标服务器对MQ消息进行消费,由此得到了待测试需求的测试结果。上述装置,若通过消息需求标识和服务器需求标识的对比结果确定消息路由到的预发服务器不是能够对与MQ消息对应的待测试需求进行测试的服务器,则可以基于消息需求标识找到的待调用接口的调用使得设置有待调用接口的目标服务器进行需求测试,其因为无需对任何预发服务器进行限制而可以进行多需求并行测试,由此达到了待测试需求的高效测试的效果。
本发明实施例所提供的需求测试装置可执行本发明实施例一所提供的需求测试方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述需求测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图6为本发明实施例五提供的需求测试装置的结构框图,该装置用于执行上述实施例二和/或实施例三所提供的需求测试方法。该装置与上述实施例二和/或实施例三的需求测试方法属于同一个发明构思,在需求测试装置的实施例中未详尽描述的细节内容,可以参考上述需求测试方法的实施例。参见图6,该装置配置于线上服务器上,具体可以包括:路由字段提取模块510、需求测试记录确定模块520和MQ消息路由模块530。
其中,路由字段提取模块510,用于在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段;
需求测试记录确定模块520,用于确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录;
MQ消息路由模块530,用于若是,则将MQ消息路由至预发服务器的预发主题中,以使该预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果;
其中,消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
可选的,MQ消息路由模块530,具体可以包括:
真实主题放置单元,用于将MQ消息转投至线上服务器的预发主题上,且将MQ消息的真实主题放置在MQ消息的预设属性上;
MQ消息路由单元,用于从线上服务器的预发主题中将已放置真实主题的MQ消息路由至预发服务器的预发主题上,以使预发服务器从预发服务器的预发主题中获取MQ消息,并从MQ消息的预设属性中提取真实主题。
可选的,在上述任一装置的基础上,该装置还可包括:
版本号对比模块,用于基于预设时间间隔从名单缓存服务器中拉取当前版本号,将当前版本号和存储于线上服务器的本地缓存中的本地版本号进行对比;
读取结果缓存模块,用于若本地版本号为空或当前版本号高于本地版本号,则从名单缓存服务器中读取当前的需求测试名单和当前版本号,并将读取结果缓存于本地缓存中。
本发明实施例五提供的需求测试装置,通过路由字段提取模块和需求测试记录确定模块从获取的与监测到的消息处理事件对应的MQ消息中提取路由字段,并基于该路由字段在与部署在线上服务器上的系统匹配的需求测试名单中进行查询,以便根据查询结果确定是否需要将MQ消息路由到预发服务器上;MQ消息路由模块若根据查询结果确定需求测试名单中存在该路由字段,这就说明该MQ消息是线上服务器无法消费的消息,需要将其进行消息路由至预发服务器的预发主题中,以使预发服务器根据接收到的MQ消息进行相应处理。上述装置,通过判断MQ消息中的路由字段是否命中与部署在线上服务器上的系统匹配的需求测试名单的方式,可以准确确定是否需要将MQ消息路由至预发服务器上,进而达到了基于正确的服务器处理MQ消息的效果。
本发明实施例所提供的需求测试装置可执行本发明实施例二和/或实施例三所提供的需求测试方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述需求测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例六
图7为本发明实施例六提供的一种预发服务器的结构示意图,如图7所示,该预发服务器包括存储器610、处理器620、输入装置630和输出装置640。预发服务器中的处理器620的数量可以是一个或多个,图7中以一个处理器620为例;预发服务器中的存储器610、处理器620、输入装置630和输出装置640可以通过总线或其它方式连接,图7中以通过总线650连接为例。
存储器610作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例一中的需求测试方法对应的程序指令/模块(例如,需求测试装置中的需求测试记录获取模块410、需求标识确定模块420和需求测试模块430)。处理器620通过运行存储在存储器610中的软件程序、指令以及模块,从而执行预发服务器的各种功能应用以及数据处理,即实现上述的需求测试方法。
存储器610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据预发服务器的使用所创建的数据等。此外,存储器610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器610可进一步包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。
实施例七
图8为本发明实施例七提供的一种线上服务器的结构示意图,如图8所示,该线上服务器包括存储器710、处理器720、输入装置730和输出装置740。线上服务器中的处理器720的数量可以是一个或多个,图8中以一个处理器720为例;线上服务器中的存储器710、处理器720、输入装置730和输出装置740可以通过总线或其它方式连接,图8中以通过总线750连接为例。
存储器710作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例二和/或实施例三中的需求测试方法对应的程序指令/模块(例如,需求测试装置中的路由字段提取模块510、需求测试记录确定模块520和MQ消息路由模块530)。处理器720通过运行存储在存储器710中的软件程序、指令以及模块,从而执行线上服务器的各种功能应用以及数据处理,即实现上述的需求测试方法。
存储器710可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据线上服务器的使用所创建的数据等。此外,存储器710可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器710可进一步包括相对于处理器720远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
实施例八
本发明实施例八提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种需求测试方法,应用于预发服务器,该方法可以包括:
在监测到需求测试事件时,从预发服务器的预发主题中获取需求测试事件对应的MQ消息、并获取MQ消息的需求测试记录;
确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识是否一致,其中消息需求标识包括可对与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识;
若否,则调用配置有消息需求标识的待调用接口,以使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果,其中目标服务器包括可测试待测试需求的部署有预发环境的服务器。
和/或,用于执行一种需求测试方法,应用于线上服务器,该方法可以包括:
在监测到消息处理事件时,获取与消息处理事件对应的MQ消息,并从MQ消息中提取路由字段;
确定与部署在线上服务器上的系统匹配的需求测试名单中是否存在与路由字段对应的需求测试记录;
若是,则将MQ消息路由至预发服务器的预发主题中,以使预发服务器在确定需求测试记录中的消息需求标识和预发服务器的服务器需求标识不一致时,调用配置有消息需求标识的待调用接口来使设置有待调用接口的目标服务器消费MQ消息,得到待测试需求的测试结果;
其中,消息需求标识包括与MQ消息对应的待测试需求的标识,服务器需求标识包括预发服务器的可测试需求的标识,目标服务器包括可测试待测试需求的部署有预发环境的服务器。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的需求测试方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种需求测试方法,其特征在于,应用于预发服务器,所述方法包括:
在监测到需求测试事件时,从所述预发服务器的预发主题中获取所述需求测试事件对应的MQ消息、并获取所述MQ消息的需求测试记录;
确定所述需求测试记录中的消息需求标识和所述预发服务器的服务器需求标识是否一致,其中所述消息需求标识包括可对与所述MQ消息对应的待测试需求的标识,所述服务器需求标识包括所述预发服务器的可测试需求的标识;
若否,则调用配置有所述消息需求标识的待调用接口,以使设置有所述待调用接口的目标服务器消费所述MQ消息,得到所述待测试需求的测试结果,其中所述目标服务器包括可测试所述待测试需求的部署有预发环境的服务器。
2.根据权利要求1所述的方法,其特征在于,所述MQ消息包括由接收到所述MQ消息的线上服务器路由至所述预发服务器上的预发主题中的消息,且所述需求测试记录还包括部署在所述线上服务器上的系统的系统身份标识;
所述调用配置有所述消息需求标识的待调用接口,包括:
从所述需求测试记录中获取所述系统身份标识,调用配置有所述系统身份标识和所述消息需求标识的待调用接口。
3.根据权利要求1所述的方法,其特征在于,所述调用配置有所述消息需求标识的待调用接口,包括:
基于远程过程调用协议中的泛化调用策略调用配置有所述消息需求标识的待调用接口。
4.根据权利要求1所述的方法,其特征在于,还包括:
若是,从所述MQ消息的预设属性中获取所述MQ消息的真实主题;
确定所述预发服务器上与所述真实主题对应的消息处理器,基于所述消息处理器对所述MQ消息进行消费。
5.根据权利要求1所述的方法,其特征在于,每条所述需求测试记录包括所述消息需求标识、系统身份标识和路由字段;和/或,包含同一所述消息需求标识的各条所述需求测试记录存储在同一需求测试名单中。
6.一种需求测试方法,其特征在于,应用于线上服务器,所述方法包括:
在监测到消息处理事件时,获取与所述消息处理事件对应的MQ消息,并从所述MQ消息中提取路由字段;
确定与部署在所述线上服务器上的系统匹配的需求测试名单中是否存在与所述路由字段对应的需求测试记录;
若是,则将所述MQ消息路由至预发服务器的预发主题中,以使所述预发服务器在确定所述需求测试记录中的消息需求标识和所述预发服务器的服务器需求标识不一致时,调用配置有所述消息需求标识的待调用接口来使设置有所述待调用接口的目标服务器消费所述MQ消息,得到待测试需求的测试结果;
其中,所述消息需求标识包括与所述MQ消息对应的待测试需求的标识,所述服务器需求标识包括所述预发服务器的可测试需求的标识,所述目标服务器包括可测试所述待测试需求的部署有预发环境的服务器。
7.根据权利要求6所述的方法,其特征在于,所述将所述MQ消息路由至预发服务器的预发主题中,包括:
将所述MQ消息转投至所述线上服务器的预发主题上,且将所述MQ消息的真实主题放置在所述MQ消息的预设属性上;
从所述线上服务器的预发主题中将已放置所述真实主题的所述MQ消息路由至所述预发服务器的预发主题上,以使所述预发服务器从所述预发服务器的预发主题中获取所述MQ消息,并从所述MQ消息的所述预设属性中提取所述真实主题。
8.根据权利要求6所述的方法,其特征在于,还包括:
基于预设时间间隔从名单缓存服务器中拉取当前版本号,将所述当前版本号和存储于所述线上服务器的本地缓存中的本地版本号进行对比:
若所述本地版本号为空、或是所述当前版本号高于所述本地版本号,则从所述名单缓存服务器中读取当前的所述需求测试名单和所述当前版本号,并将读取结果缓存于所述本地缓存中;
所述确定与部署在所述线上服务器上的系统匹配的需求测试名单中是否存在与所述路由字段对应的需求测试记录,包括:
从所述本地缓存中获取与部署在所述线上服务器上的系统匹配的所述需求测试名单,确定所述需求测试名单中是否存在与所述路由字段对应的需求测试记录。
9.一种需求测试装置,其特征在于,配置于预发服务器,所述装置包括:
需求测试记录获取模块,用于在监测到需求测试事件时,从所述预发服务器的预发主题中获取所述需求测试事件对应的MQ消息、并获取所述MQ消息的需求测试记录;
需求标识确定模块,用于确定所述需求测试记录中的消息需求标识和所述预发服务器的服务器需求标识是否一致,其中所述消息需求标识包括可对与所述MQ消息对应的待测试需求的标识,所述服务器需求标识包括所述预发服务器的可测试需求的标识;
需求测试模块,用于若否,则调用配置有所述消息需求标识的待调用接口,以使设置有所述待调用接口的目标服务器消费所述MQ消息,得到所述待测试需求的测试结果,其中所述目标服务器包括可测试所述待测试需求的部署有预发环境的服务器。
10.一种需求测试装置,其特征在于,配置于线上服务器,所述装置包括:
路由字段提取模块,用于在监测到消息处理事件时,获取与所述消息处理事件对应的MQ消息,并从所述MQ消息中提取路由字段;
需求测试记录确定模块,用于确定与部署在所述线上服务器上的系统匹配的需求测试名单中是否存在与所述路由字段对应的需求测试记录;
MQ消息路由模块,用于若是,则将所述MQ消息路由至预发服务器的预发主题中,以使所述预发服务器在确定所述需求测试记录中的消息需求标识和所述预发服务器的服务器需求标识不一致时,调用配置有所述消息需求标识的待调用接口来使设置有所述待调用接口的目标服务器消费所述MQ消息,得到待测试需求的测试结果;
其中,所述消息需求标识包括与所述MQ消息对应的待测试需求的标识,所述服务器需求标识包括所述预发服务器的可测试需求的标识,所述目标服务器包括可测试所述待测试需求的部署有预发环境的服务器。
11.一种预发服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的需求测试方法。
12.一种线上服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求6-8中任一所述的需求测试方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述的需求测试方法。
CN202110127494.XA 2021-01-29 2021-01-29 一种需求测试方法、装置、服务器及存储介质 Active CN113765693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110127494.XA CN113765693B (zh) 2021-01-29 2021-01-29 一种需求测试方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110127494.XA CN113765693B (zh) 2021-01-29 2021-01-29 一种需求测试方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN113765693A true CN113765693A (zh) 2021-12-07
CN113765693B CN113765693B (zh) 2024-06-18

Family

ID=78786511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110127494.XA Active CN113765693B (zh) 2021-01-29 2021-01-29 一种需求测试方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN113765693B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158370A (zh) * 2011-04-12 2011-08-17 瑞斯康达科技发展股份有限公司 一种自动化测试方法和系统
US9432437B1 (en) * 2013-08-15 2016-08-30 Sprint Communications Company L.P. Dynamic telemetry client message routing
CN110990248A (zh) * 2019-10-11 2020-04-10 北京银企融合技术开发有限公司 接口用例测试系统、方法、计算机设备及存储介质
CN111209202A (zh) * 2020-01-06 2020-05-29 北京字节跳动网络技术有限公司 终端应用测试方法和装置
CN111258898A (zh) * 2020-01-15 2020-06-09 平安医疗健康管理股份有限公司 自动化测试方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158370A (zh) * 2011-04-12 2011-08-17 瑞斯康达科技发展股份有限公司 一种自动化测试方法和系统
US9432437B1 (en) * 2013-08-15 2016-08-30 Sprint Communications Company L.P. Dynamic telemetry client message routing
CN110990248A (zh) * 2019-10-11 2020-04-10 北京银企融合技术开发有限公司 接口用例测试系统、方法、计算机设备及存储介质
CN111209202A (zh) * 2020-01-06 2020-05-29 北京字节跳动网络技术有限公司 终端应用测试方法和装置
CN111258898A (zh) * 2020-01-15 2020-06-09 平安医疗健康管理股份有限公司 自动化测试方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113765693B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN110427299B (zh) 微服务系统应用的日志处理方法、相关设备及系统
CN108255620B (zh) 一种业务逻辑处理方法、装置、业务服务器及系统
CN112905323B (zh) 数据处理方法、装置、电子设备及存储介质
CN111770002A (zh) 测试数据转发控制方法、装置、可读存储介质和电子设备
US9514176B2 (en) Database update notification method
CN112416708B (zh) 异步调用链路监控方法及系统
CN112434043A (zh) 一种数据同步方法、装置、电子设备及介质
CN113961832A (zh) 页面渲染的方法、装置、设备、存储介质及程序产品
CN114745295A (zh) 数据采集方法、装置、设备和可读存储介质
CN111817984A (zh) 消息发送方法、装置、设备及存储介质
CN109684093A (zh) 数据处理方法及系统
CN110430070B (zh) 一种服务状态分析方法、装置、服务器、数据分析设备及介质
CN111782502A (zh) 一种自动化测试的方法及装置
CN113626449A (zh) 数据存储、数据查询方法及相关设备
CN116545905A (zh) 一种服务健康检测方法、装置、电子设备及存储介质
CN111309693A (zh) 一种数据同步方法、装置、系统、电子设备及存储介质
CN113765693A (zh) 一种需求测试方法、装置、服务器及存储介质
CN112115149A (zh) 一种提供数据的方法和装置
CN111291127B (zh) 一种数据同步方法、装置、服务器及存储介质
CN108683533B (zh) 配置更新方法、配置更新的响应方法及服务器、系统
CN112261072A (zh) 一种服务调用方法、装置、设备和存储介质
CN109032655A (zh) 一种监控实例的配置方法、服务器及计算机可读存储介质
US20240028346A1 (en) Linking kubernetes resources with underlying cloud infrastructure
CN117424843B (zh) 一种管理方法、装置及ate测试系统
CN113965383B (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
GR01 Patent grant