CN116467187A - 一种灰度测试方法及装置 - Google Patents

一种灰度测试方法及装置 Download PDF

Info

Publication number
CN116467187A
CN116467187A CN202310336229.1A CN202310336229A CN116467187A CN 116467187 A CN116467187 A CN 116467187A CN 202310336229 A CN202310336229 A CN 202310336229A CN 116467187 A CN116467187 A CN 116467187A
Authority
CN
China
Prior art keywords
client
configuration information
version
gray scale
target application
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
Application number
CN202310336229.1A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310336229.1A priority Critical patent/CN116467187A/zh
Publication of CN116467187A publication Critical patent/CN116467187A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书一个或多个实施例提供一种灰度测试方法及装置,所述方法包括:分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端;在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。

Description

一种灰度测试方法及装置
技术领域
本说明书一个或多个实施例涉及软件测试领域,尤其涉及一种灰度测试方法及装置。
背景技术
应用配置可以指对应用的配置信息进行管理,通过管理一个应用的配置信息可以动态管理该应用对应的服务代码中的配置项,例如:根据服务需求为应用开启或关闭部分服务功能,或者根据应用的部署环境修改某个性能指标的阈值。
在对应用的配置信息进行修改时,倘若直接将修改后的配置信息发布,配置信息中存在的问题可能导致应用无法正常运行,从而影响到服务的稳定性。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种灰度测试方法及装置,可以解决相关技术中存在的不足。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种灰度测试的方法,所述方法包括:
分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端;
在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。
根据本说明书一个或多个实施例的第二方面,提出了一种灰度测试的方法,所述方法包括:
获取服务端针对目标应用发布的配置信息;其中,所述服务端维护有针对所述目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
加载获取到的配置信息;其中,在客户端为被选取的灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述灰度表发布的所述灰度版本的配置信息,在所述客户端不为所述灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述正式表发布的所述正式版本的配置信息。
根据本说明书一个或多个实施例的第三方面,提出了一种灰度测试的装置,所述方法包括:
维护单元:分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
第一确定单元:响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端;
发布单元:在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。
根据本说明书一个或多个实施例的第四方面,提出了一种灰度测试的装置,所述方法包括:
获取单元:获取服务端针对目标应用发布的配置信息;其中,所述服务端维护有针对所述目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
加载单元:加载获取到的配置信息;其中,在客户端为被选取的灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述灰度表发布的所述灰度版本的配置信息,在所述客户端不为所述灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述正式表发布的所述正式版本的配置信息。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面或第二方面所述方法的步骤。
根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。
根据本说明书一个或多个实施例的第七方面,提出了一种计算机程序,该程序被处理器执行时实现如第一方面或第二方面所述方法的步骤。
由以上技术方案可见,本说明书一个或多个实施例提供的灰度测试方法,一方面,通过分别维护针对目标应用的正式表和灰度表,其中,目标应用对应的正式版本的配置信息记录于正式表,目标应用对应的灰度版本的配置信息记录于灰度表,使得目标应用的两个版本的配置信息分别被记录于不同的表中,用户可以在灰度测试时对正式表和灰度表所记录的两个版本的配置信息进行查看、对比和分析,这有利于提高灰度测试的效率。另一方面,通过确定客户端是否为灰度测试客户端,使得服务端可以根据灰度表向灰度测试客户端发布灰度版本的配置信息,根据正式表向不为灰度测试客户端的客户端发布正式版本的配置信息,由于灰度版本的配置信息记录于灰度表中,而非正式表中,这避免了灰度版本的配置信息对正式版本造成影响,进而避免灰度版本的配置信息对不为灰度测试客户端的客户端造成服务干扰,提高了服务的稳定性。
附图说明
图1a是一示例性实施例提供的一种灰度测试系统的架构图。
图1b是一示例性实施例提供的另一种灰度测试系统的架构图。
图2是一示例性实施例提供的一种灰度测试方法的流程图。
图3是一示例性实施例提供的一种筛选条件设置界面的示意图。
图4是一示例性实施例提供的一种配置需求的确认方法的交互图。
图5是一示例性实施例提供的另一种配置需求的确认方法的交互图。
图6是一示例性实施例提供的另一种灰度测试方法的流程图。
图7是一示例性实施例提供的一种设备的示意结构图。
图8是一示例性实施例提供的一种灰度测试装置的框图。
图9是一示例性实施例提供的另一种灰度测试装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为对本说明书一个或多个实施例进行进一步说明,提供下列实施例:
应用已发布并且处于上线状态的版本可以被视为应用的正式版本。在正式版本上线运行的同时,开发人员可以基于一些原因(例如:需要修正正式版本中存在的问题或者需要为应用添加新的功能等)开发新版本。在新版本正式发布之前,测试人员可以对新版本进行灰度测试,灰度测试指的是:在应用正式发布前,选择特定人群对该应用的新版本进行试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题。经灰度测试后,该新版本可以正式发布,代替原有的正式版本,成为新的正式版本,原有的正式版本将进入下线状态。本说明书中的灰度版本可以为上述新版本,即在正式发布之前参与灰度测试的版本。
图1a是一示例性实施例提供的一种灰度测试系统的架构图,如图1a所示,该架构图包括:管理平台10、服务器11以及终端12-14。
服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器。服务器11维护有目标应用的配置信息,目标应用的管理员可以通过管理平台10对服务器11所维护的配置信息进行修改。该管理平台10可以作为应用部署于服务器11上,作为服务器11的一部分;也可以部署于其他设备上,与服务器11以有线或者无线的方式连接。
服务器11部署有数据库和目标应用的服务端,该数据库中维护有目标应用的配置信息,服务端可以根据数据库向客户端发送相应的配置信息。在一种情况下,如图1a所示,数据库和服务端可以被部署于同一设备上,服务端无需在设备间发送指令也可以获取到数据库维护的配置信息。在另一种情况下,如图1b所示,数据库部署于数据库11A上,服务端部署于服务器11B上,两者分属于不同设备,以有线或者无线的形式连接。
终端12-14中的任一终端是用户可以使用的一种类型的电子设备,例如可以包括:手机、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书并不对此进行限制。终端12-14可以部署有目标应用的客户端,在运行过程中,终端12-14可以从服务器11处获取目标应用的配置信息,并对获取的配置信息进行加载。
在相关技术中,服务器11仅维护有针对目标应用的正式表,正式表中记录有目标应用对应的正式版本的配置信息。在目标应用的灰度版本发布时,管理员可以通过管理平台10对目标应用的配置信息进行修改,正式表所记录的配置信息将不再是正式版本的配置信息,而是变更为灰度版本的配置信息。作为灰度测试的测试对象的客户端可以直接从正式表中获取到灰度版本的配置信息,而由于正式表的配置信息发生变更,不为测试对象的客户端将只能使用本地已加载的配置信息,无法从服务端获取到正式版本的配置信息。并且,管理员在对灰度版本中的问题进行调试时,只能查看灰度版本的配置信息,无法查看原先正式版本的配置信息,也无法以正式版本的配置信息作为调试的依据。
为解决相关技术中存在的问题,本说明书提出了一种新的灰度测试的方法。
在本说明书提出的灰度测试方法中,服务器11分别维护有针对目标应用的正式表和灰度表,其中,正式表中记录有目标应用对应的正式版本的配置信息、灰度表中记录有目标应用对应的灰度版本的配置信息。服务器11可以根据灰度表向灰度测试客户端发布灰度版本的配置信息,根据正式表向不为灰度测试客户端的客户端发布正式版本的配置信息。
基于新的灰度测试方法,一方面,通过分别维护针对目标应用的正式表和灰度表,其中,目标应用对应的正式版本的配置信息记录于正式表,目标应用对应的灰度版本的配置信息记录于灰度表,使得目标应用的两个版本的配置信息分别被记录于不同的表中,用户可以在灰度测试时对正式表和灰度表所记录的两个版本的配置信息进行查看、对比和分析,这有利于提高灰度测试的效率。另一方面,通过确定客户端的类型,使得服务端可以根据灰度表向灰度测试客户端发布灰度版本的配置信息,根据正式表向不为灰度测试客户端的客户端发布正式版本的配置信息,由于灰度版本的配置信息记录于灰度表中,而非正式表中,这避免了灰度版本的配置信息对正式版本造成影响,进而避免灰度版本的配置信息对不为灰度测试客户端的客户端造成服务干扰,提高了服务的稳定性。
图2是一示例性实施例提供的一种灰度测试方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤202,分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息。
目标应用可以为计算机上运行的任一应用软件。目标应用存在不同的版本,正式版本指的是目标应用已正式发布的最新版本,灰度版本指的是目标应用进行灰度测试的版本。不同版本的配置信息可以相同,也可以不同,具体可以包括:应用本身的组成,数据处理的参数配置,端口的配置以及各项软件服务对应的功能配置等等。
正式表中记录有目标应用对应的正式版本的配置信息,表1是一示例性实施例提供的一种充电桩应用的正式表,如表1所示,该正式表包括:配置名称和配置数值。其中,“可连接设备上限”对应的数值为“10”,“温度阈值上限”对应的数值为“40”,“温度阈值下限”对应的数值为“0”。这三条配置表项分别意为:充电桩可以连接的设备上限为10台;充电桩的温度阈值上限为40摄氏度;充电桩的温度阈值下限为0摄氏度。
配置名称 配置数值
可连接设备上限 10
温度阈值上限 40
温度阈值下限 0
表1
灰度表中记录有目标应用对应的灰度版本的配置信息,倘若表1对应的充电桩应用的管理员对配置信息进行了修改,将原本“可连接设备上限”对应的配置数值由“10”更改为“20”。那么,服务端可以将该配置信息更新于灰度表,如表2所示。
配置名称 配置数值
可连接设备上限 20
温度阈值上限 40
温度阈值下限 0
表2
当然,灰度表可以记录灰度版本的全部配置信息,也可以记录灰度版本中相对于正式版本不一致的配置信息,以表2为例,灰度表中可以仅记录“可连接设备上限”这一条表项,本说明书并不对灰度表记录的具体内容进行限制。
步骤204,响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端。
配置需求为针对目标应用进行配置的需求,具体的,可以为客户端发送的针对目标应用的配置获取请求,或者可以为服务端主动发送的配置更新指令。
客户端包括从目标应用对应的客户端中选取的灰度测试客户端和不为目标应用的灰度测试对象的其他客户端。目标应用对应的客户端可以为所有客户端,也可以为指定的部分客户端,例如:指定地理位置范围的客户端,指定IP地址的客户端,或者指定类别用户的客户端等,本说明书并不对此进行限制。
步骤206,在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。
灰度测试客户端为服务端选取的作为灰度版本的灰度测试对象的客户端。
在客户端为灰度测试客户端的情况下,服务端可以根据本地维护的目标应用对应的灰度表向该客户端发布灰度版本的配置信息。具体的,可以从灰度表获取灰度版本的配置信息,并将该配置信息发送至客户端;或者,直接将灰度表发布至客户端,本说明书并不对此进行限制。
在客户端不为灰度测试客户端的情况下,服务端可以根据目标应用对应的正式表向该客户端发布正式版本的配置信息。具体的,可以从正式表获取正式版本的配置信息,并将该配置信息发送至客户端;或者,直接将正式表发布至客户端,本说明书并不对此进行限制。
该实施例一方面,通过分别维护针对目标应用的正式表和灰度表,其中,目标应用对应的正式版本的配置信息记录于正式表,目标应用对应的灰度版本的配置信息记录于灰度表,使得目标应用的两个版本的配置信息分别被记录于不同的表中,用户可以在灰度测试时对正式表和灰度表所记录的两个版本的配置信息进行查看、对比和分析,这有利于提高灰度测试的效率。另一方面,通过确定客户端的类型,使得服务端可以根据灰度表向灰度测试客户端发布灰度版本的配置信息,根据正式表向不为灰度测试客户端的客户端发布正式版本的配置信息,由于灰度版本的配置信息记录于灰度表中,而非正式表中,这避免了灰度版本的配置信息对正式版本造成影响,进而避免灰度版本的配置信息对不为灰度测试客户端的客户端造成服务干扰,提高了服务的稳定性。
如表1和表2所示,灰度表可以和正式表一一对应。
在一实施例中,灰度表也可以对应多个正式表。相对于表1,表3增加了“编号”字段,该字段用于唯一标识正式表,例如:充电桩应用的正式表的编号为“1”(如表3所示),某游戏应用的正式表的编号为“2”(如表4所示)。相对应的在灰度表中也会增加编号字段,用于将灰度表中的表项与正式相关联。如表5所示,该灰度表中包含4个字段:编号,客户端占比,IP地址集合以及配置信息。其中,灰度表中的“灰度”字段用于与正式表相关联,“客户端占比”和“IP地址集合”两个字段为灰度测试的筛选条件。“配置信息”字段则记录有对应的应用的灰度版本的配置信息,例如:编号为“1”的表项对应着编号为“1”的正式表,即充电桩应用的正式表,该表项的“配置信息”字段记录着充电桩应用的灰度版本的配置信息,即表2所示的配置信息;编号为“2”的表项对应着编号为“2”的正式表,即某游戏应用的正式表,该表项的“配置信息”字段记录着某游戏应用的灰度版本的配置信息,包括:交易金额上限为“1000”,是否允许玩家间交易为“是”,交易地点为“市场”。
表3
表4
表5
该实施例通过将配置信息记录于一个字段,使得原本对应不同字段的不同应用的配置信息可以被记录于同一灰度表中,并且,灰度表通过关联字段“编号”与正式表相关联,使得一个灰度表可以对应多个正式表,从而实现了通用灰度表的设置,进而使得服务端只需维护该通用的灰度表即可,减少了维护成本。
在一实施例中,表5中的“配置信息”字段可以记录相应应用对应的灰度版本的配置信息的压缩文件,或者压缩文件的标识。在获取灰度版本的配置信息时,服务端可以获取并解析该灰度版本对应的压缩文件,从而获取灰度版本的配置信息。该实施例通过文件形式代替配置信息记录于灰度表中,相比于配置信息的直接存储,文件形式所需的存储空间更小,这节省了“配置信息”字段的存储空间。
在一实施例中,还包括:根据已创建的灰度测试客户端的IP地址集合,将所述目标应用对应的客户端中命中所述IP地址集合的客户端确定为所述灰度测试客户端;或者,根据已定义的所述灰度版本对应的客户端占比,从所述目标应用对应的客户端的ID取值中选取目标ID取值,且所述目标ID取值的数量与所述目标应用对应的客户端的ID取值的数量之比为所述客户端占比;以及,将所述目标应用对应的客户端中命中所述目标ID取值的客户端确定为所述灰度测试客户端。
IP地址集合为灰度测试客户端的IP地址的集合,若目标客户端的IP地址属于该IP地址集合,则该客户端为灰度测试客户端。如表5所示,IP地址为“33.10.31.176”的客户端为灰度测试客户端,若该客户端向服务端发送配置获取请求,服务端可以将该客户端视为灰度测试客户端,并根据灰度表向该客户端发布灰度版本的配置信息。
客户端ID为客户端在启动目标应用时随机生成的ID,该客户端ID与已定义的客户端占比相关联。若客户端占比为百分比,则客户端ID为1-100之间的数字;若客户端占比为千分比,则客户端ID为1-1000之间的数字。由于客户端ID为随机生成的,所以两个不同的客户端生成的客户端ID可能相同。以表5为例,充电桩应用的灰度版本的客户端占比为“10/100”,“100”意味着:充电桩应用对应的客户端在启动时将会在1-100间随机生成一个数字作为客户端ID,而10则意味着服务端将会从1-100中选取10个数字作为目标ID取值。假设:目标ID取值为“1、2、3、4、5、6、7、8、9、10”,而客户端A的客户端ID为5,客户端B的客户端ID为12,那么客户端A命中目标ID取值,将被确定为灰度测试客户端,客户端B未命中目标ID取值,不是灰度测试客户端。
该实施例通过IP地址集合和客户端占比作为筛选条件,从目标应用对应的客户端中选取灰度测试客户端作为灰度版本的配置信息的灰度测试对象,避免可能存在问题的灰度版本对全部客户端造成影响,降低了配置变更的故障影响面,有效的提高了服务的稳定性。
当然,服务端可以仅选择IP地址集合和客户端占比两种筛选条件的其中一种,作为选取灰度测试客户端的标准,也可以选取两种,亦或者选取其他筛选方式,例如可以包括:随机选取百分之一的客户端,选取一天中前五启动目标应用的客户端,或者选取特定地区的客户端。本说明书并不对具体的选取方式进行限制。
在一实施例中,目标应用的管理可以通过如图3所示的筛选条件的设置界面,对IP地址集合和客户端占比进行设置。如图3所示,该界面包括:客户端占比框301,IP地址框302,确认按钮303和取消按钮304。管理员可以在客户端占比框301输入客户端占比,可以在IP地址框302中输入灰度测试客户端的IP地址,可以点击确认按钮303确认保存设置的筛选条件,还可以点击取消按钮304停止对筛选条件的设置。
当然,IP地址可以手动输入,也可以从导入目标应用对应的客户端的IP地址列表,并从IP地址列表中点击选取目标IP地址添加至IP地址集合中。
该实施例通过筛选条件设置界面,实现了人工设置筛选条件,通过IP地址集合和客户端占比作为筛选条件,从目标应用对应的客户端中选取灰度测试客户端作为灰度版本的配置信息的灰度测试对象,避免可能存在问题的灰度版本对全部客户端造成影响,降低了配置变更的故障影响面,有效的提高了服务的稳定性。
在一实施例中,还包括:确定所述目标客户端在本地已加载的关于所述目标应用的配置信息是否需要更新为最新版本;在确定所述目标客户端已加载的配置信息需要更新为所述最新版本的情况下,确认所述目标客户端存在所述配置需求。
在服务端发布配置信息前,可以先确定所述目标客户端在本地已加载的关于目标应用的配置信息是否需要更新为最新版本,并在确定该客户端已加载的配置信息需要更新为最新版本的情况下,确认该客户端存在配置需求。
进一步的,所述确定所述目标客户端在本地已加载的关于所述目标应用的配置信息是否需要更新为最新版本,包括:获取所述目标客户端在本地已加载的关于所述目标应用的配置信息的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,向所述目标客户端发送所述最新版本的版本描述信息,使所述目标客户端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新。
配置信息的版本描述信息可以为配置信息本身,也可以为基于该配置信息生成的唯一标识该配置信息的字符串,例如可以为:基于MD5(Message-Digest Algorithm,信息摘要算法)生成的16字节的散列值。本说明书并不对版本描述信息的具体形式进行限制。
图4是一示例性实施例提供的一种配置需求的确认方法的交互图。如图4所示,该方法可以包括以下步骤:
步骤402,客户端向服务端发送配置获取请求。
客户端可以本地加载的关于目标应用的已加载配置信息失效的情况下,向服务端发送配置获取请求,或者可以在每次启动目标应用时发送配置获取请求,以向服务端请求获取目标应用的最新版本的配置信息。
该配置获取请求中可以携带:目标应用的ID和客户端本地加载的关于目标应用的配置信息的版本描述信息。
步骤404,服务端比对描述信息。步骤406,服务端返回配置信息或者返回重复加载告警。
响应于客户端发送的配置获取请求,服务端可以根据配置请求中携带的目标应用的ID确定服务端维护的目标应用的最新版本的版本描述信息。服务端可以将最新版本的版本描述信息与配置获取请求中携带的版本描述信息进行比对,若两者不一致,则返回最新版本的配置信息;若两者一致,则返回重复加载告警,以警示客户端已加载的版本为目标应用的最新版本。
该实施例中,服务端获取客户端发送的配置获取请求,一方面,通过配置获取请求中携带的版本描述信息,比对确认客户端的配置需求,避免客户端重复加载配置信息导致的资源浪费;另一方面,由于请求中携带的是版本描述信息,而不是配置信息本身,既节省了带宽,又避免配置信息在设备间进行传输,提高了数据传输的安全性。
图5是一示例性实施例提供的一种配置需求的确认方法的交互图。如图5所示,该方法可以包括以下步骤:
步骤502,服务端向客户端发送配置比对请求。
服务端可以主动向客户端发送配置比对请求,以确认客户端的配置需求。该配置比对请求中携带目标应用的最新版本的版本描述信息。
步骤504,客户端比对描述信息。
响应于服务端发送的配置比对请求,客户端可以将配置比对请求中携带的目标应用的最新版本的版本描述信息,与本地加载的关于目标应用的配置信息的版本描述信息进行比对。
步骤506,客户端向服务端发送比对结果。步骤508,服务端返回配置信息。
若目标应用的最新版本的版本描述信息与客户端本地加载的配置信息的版本描述信息一致,则进入步骤508,服务端向客户端返回配置信息;若目标应用的最新版本的版本描述信息与客户端本地加载的配置信息的版本描述信息不一致,则说明客户端不存在配置需求。
该实施例中,服务端主动向客户端发送配置比对请求,一方面,通过配置比对请求中携带的版本描述信息,比对确认客户端的配置需求,避免客户端重复加载配置信息导致的资源浪费;另一方面,由于请求中携带的是版本描述信息,而不是配置信息本身,既节省了带宽,又避免配置信息在设备间进行传输,提高了数据传输的安全性。
图6是一示例性实施例提供的另一种灰度测试方法的流程图。如图6所示,该方法可以包括以下步骤:
步骤602,获取服务端针对目标应用发布的配置信息;其中,所述服务端维护有针对所述目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息。
如前所述,客户端在接收到服务端发布的配置信息之前,可以向所述服务端发送本地已加载的关于所述目标应用的配置信息的版本描述信息,使所述服务端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,获取所述服务端发送的所述最新版本的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新。
步骤604,加载获取到的配置信息;其中,在客户端为被选取的灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述灰度表发布的所述灰度版本的配置信息,在所述客户端不为所述灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述正式表发布的所述正式版本的配置信息。
该实施例一方面,通过分别维护针对目标应用的正式表和灰度表,其中,目标应用对应的正式版本的配置信息记录于正式表,目标应用对应的灰度版本的配置信息记录于灰度表,使得目标应用的两个版本的配置信息分别被记录于不同的表中,用户可以在灰度测试时对正式表和灰度表所记录的两个版本的配置信息进行查看、对比和分析,这有利于提高灰度测试的效率。另一方面,通过确定客户端的类型,使得服务端可以根据灰度表向灰度测试客户端发布灰度版本的配置信息,根据正式表向不为灰度测试客户端的客户端发布正式版本的配置信息,由于灰度版本的配置信息记录于灰度表中,而非正式表中,这避免了灰度版本的配置信息对正式版本造成影响,进而避免灰度版本的配置信息对不为灰度测试客户端的客户端造成服务干扰,提高了服务的稳定性。
在一实施例中,所述方法还包括:根据本地部署的第一加载器中已加载的关于所述目标应用的配置信息,确定所述灰度表是否更新;所述加载获取到的配置信息,包括:在确定所述灰度表发生更新且已获取到相应配置信息的情况下,启动本地部署的第二加载器对所述获取到的配置信息进行热加载,并在热加载完成后停止运行所述第一加载器。
该实施例的客户端部署有两个加载器,在获取到配置信息后,客户端没有立即停止第一加载器的运行,而是在第二加载器对最新获取的配置信息加载完成后,才停止运行第一加载器,在无需重启应用的情况下,实现了对目标应用配置的热加载,避免应用重启对用户造成的影响。
图7是一示例性实施例提供的一种设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存709以及非易失性存储器710,当然还可能包括其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图8,一种灰度测试装置可以应用于如图8所示的设备中,以实现本说明书的技术方案,该装置可以包括:
维护单元802,用于分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
第一确定单元804,用于响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端;
发布单元806,用于在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。
可选的,还包括:
第二确定单元808,用于根据已创建的灰度测试客户端的IP地址集合,将所述目标应用对应的客户端中命中所述IP地址集合的客户端确定为所述灰度测试客户端;或者,
第三确定单元810,用于根据已定义的所述灰度版本对应的客户端占比,从所述目标应用对应的客户端的ID取值中选取目标ID取值,且所述目标ID取值的数量与所述目标应用对应的客户端的ID取值的数量之比为所述客户端占比;以及,将所述目标应用对应的客户端中命中所述目标ID取值的客户端确定为所述灰度测试客户端。
可选的,还包括:
第四确定单元812,用于确定所述目标客户端在本地已加载的关于所述目标应用的配置信息是否需要更新为最新版本;
确认单元814,用于在确定所述目标客户端已加载的配置信息需要更新为所述最新版本的情况下,确认所述目标客户端存在所述配置需求。
可选的,所述确认单元814具体用于:
获取所述目标客户端在本地已加载的关于所述目标应用的配置信息的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,
向所述目标客户端发送所述最新版本的版本描述信息,使所述目标客户端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新。
请参考图9,另一种灰度测试装置可以应用于如图9所示的设备中,以实现本说明书的技术方案,该装置可以包括:
获取单元902,用于获取服务端针对目标应用发布的配置信息;其中,所述服务端维护有针对所述目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
加载单元904,用于加载获取到的配置信息;其中,在客户端为被选取的灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述灰度表发布的所述灰度版本的配置信息,在所述客户端不为所述灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述正式表发布的所述正式版本的配置信息。
可选的,
所述方法还包括:第一确定单元906,用于根据本地部署的第一加载器中已加载的关于所述目标应用的配置信息,确定所述灰度表是否更新;
所述加载单元904具体用于:在确定所述灰度表发生更新且已获取到相应配置信息的情况下,启动本地部署的第二加载器对所述获取到的配置信息进行热加载,并在热加载完成后停止运行所述第一加载器。
可选的,所述方法还包括:
发送单元908,用于向所述服务端发送本地已加载的关于所述目标应用的配置信息的版本描述信息,使所述服务端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,
第二确定单元910,用于获取所述服务端发送的所述最新版本的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
针对如上所述或其他任意形式的计算机可读介质(或称,计算机可读存储介质),其上可以存储有计算机指令,该指令被处理器执行时实现如上述各个实施例中的一个或多,从而实现本说明书的技术方案。
本说明书还提出了一种计算机程序,该程序被处理器执行时实现如上述各人实施例中的一个或多个,从而实现本说明书的技术方案。其中,该计算机程序可以具体记录于如上所述或其他任意形式的计算机可读介质,本说明书并不对此进行限制。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (10)

1.一种灰度测试的方法,其特征在于,所述方法包括:
分别维护针对目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
响应于针对目标客户端的配置需求,确定所述目标客户端是否为从所述目标应用对应的客户端中选取的灰度测试客户端;
在所述目标客户端为所述灰度测试客户端的情况下,根据所述灰度表向所述目标客户端发布所述灰度版本的配置信息;以及,在所述目标客户端不为所述灰度测试客户端的情况下,根据所述正式表向所述目标客户端发布所述正式版本的配置信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据已创建的灰度测试客户端的IP地址集合,将所述目标应用对应的客户端中命中所述IP地址集合的客户端确定为所述灰度测试客户端;或者,
根据已定义的所述灰度版本对应的客户端占比,从所述目标应用对应的客户端的ID取值中选取目标ID取值,且所述目标ID取值的数量与所述目标应用对应的客户端的ID取值的数量之比为所述客户端占比;以及,将所述目标应用对应的客户端中命中所述目标ID取值的客户端确定为所述灰度测试客户端。
3.根据权利要求1所述的方法,其特征在于,还包括:
确定所述目标客户端在本地已加载的关于所述目标应用的配置信息是否需要更新为最新版本;
在确定所述目标客户端已加载的配置信息需要更新为所述最新版本的情况下,确认所述目标客户端存在所述配置需求。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目标客户端在本地已加载的关于所述目标应用的配置信息是否需要更新为最新版本,包括:
获取所述目标客户端在本地已加载的关于所述目标应用的配置信息的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,
向所述目标客户端发送所述最新版本的版本描述信息,使所述目标客户端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新。
5.一种灰度测试的方法,其特征在于,所述方法包括:
获取服务端针对目标应用发布的配置信息;其中,所述服务端维护有针对所述目标应用的正式表和灰度表,所述正式表中记录有所述目标应用对应的正式版本的配置信息、所述灰度表中记录有所述目标应用对应的灰度版本的配置信息;
加载获取到的配置信息;其中,在客户端为被选取的灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述灰度表发布的所述灰度版本的配置信息,在所述客户端不为所述灰度测试客户端的情况下,所述获取到的配置信息为所述服务端根据所述正式表发布的所述正式版本的配置信息。
6.根据权利要求5所述的方法,其特征在于,
所述方法还包括:根据本地部署的第一加载器中已加载的关于所述目标应用的配置信息,确定所述灰度表是否更新;
所述加载获取到的配置信息,包括:在确定所述灰度表发生更新且已获取到相应配置信息的情况下,启动本地部署的第二加载器对所述获取到的配置信息进行热加载,并在热加载完成后停止运行所述第一加载器。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述服务端发送本地已加载的关于所述目标应用的配置信息的版本描述信息,使所述服务端根据该版本描述信息确定相应的已加载配置信息是否需要更新为最新版本,以确定是否对所述已加载配置信息进行更新;其中,在所述客户端为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的灰度版本,在所述客户端不为所述灰度测试客户端的情况下,所述最新版本为所述目标应用对应的正式版本;或者,
获取所述服务端发送的所述最新版本的版本描述信息,并根据该版本描述信息确定所述已加载配置信息是否为所述最新版本,以确定是否对所述已加载配置信息进行更新。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
10.一种计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
CN202310336229.1A 2023-03-30 2023-03-30 一种灰度测试方法及装置 Pending CN116467187A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310336229.1A CN116467187A (zh) 2023-03-30 2023-03-30 一种灰度测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310336229.1A CN116467187A (zh) 2023-03-30 2023-03-30 一种灰度测试方法及装置

Publications (1)

Publication Number Publication Date
CN116467187A true CN116467187A (zh) 2023-07-21

Family

ID=87172762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310336229.1A Pending CN116467187A (zh) 2023-03-30 2023-03-30 一种灰度测试方法及装置

Country Status (1)

Country Link
CN (1) CN116467187A (zh)

Similar Documents

Publication Publication Date Title
CN109032824A (zh) 数据库校验方法、装置、计算机设备和存储介质
US20230046469A1 (en) Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
Karim et al. Mining android apps to recommend permissions
US20190005252A1 (en) Device for self-defense security based on system environment and user behavior analysis, and operating method therefor
CN106776795B (zh) 基于Hbase数据库的数据写入方法及装置
CN112395157A (zh) 审计日志的获取方法、装置、计算机设备和存储介质
CN114238085A (zh) 接口测试方法、装置、计算机设备、存储介质
CN115174158B (zh) 基于多云管理平台的云产品配置检查方法
CN110442636B (zh) 一种数据的读写方法、装置及数据读写设备
CN112579591B (zh) 数据校验方法、装置、电子设备及计算机可读存储介质
WO2024021409A1 (zh) 数据检索方法及装置
CN116467187A (zh) 一种灰度测试方法及装置
US9378230B1 (en) Ensuring availability of data in a set being uncorrelated over time
CN112783954B (zh) 数据访问方法、装置及服务器
CN115203747A (zh) 数据账户创建方法及装置
CN108563578A (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
US20220138344A1 (en) Management of access to data in a distributed database
CN114756293A (zh) 业务处理方法、装置、计算机设备和存储介质
CN110297625B (zh) 应用的处理方法及装置
CN107122164B (zh) 函数地址获取及应用其的方法、装置、设备及存储介质
CN110874305A (zh) 用户操作的记录方法、装置及服务器
US10104042B2 (en) Security policy management
US11922278B1 (en) Distributed ledger based feature set tracking
CN116893830A (zh) 应用系统更新方法、装置、设备、存储介质和程序产品
US20240037653A1 (en) Secure Decentralized System and Method

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