CN113672521A - 一种程序测试方法、装置及电子设备 - Google Patents
一种程序测试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113672521A CN113672521A CN202111055165.5A CN202111055165A CN113672521A CN 113672521 A CN113672521 A CN 113672521A CN 202111055165 A CN202111055165 A CN 202111055165A CN 113672521 A CN113672521 A CN 113672521A
- Authority
- CN
- China
- Prior art keywords
- target
- program
- cluster
- test
- client
- 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 claims abstract description 239
- 238000004088 simulation Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 abstract description 35
- 230000002159 abnormal effect Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 25
- 238000012795 verification Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 241000287127 Passeridae Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration 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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种程序测试方法、装置及电子设备,可应用于金融领域或其他领域。本发明中,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定目标客户端对应的实际测试数据,获取目标客户端在运行目标程序时的参考测试数据,基于实际测试数据以及参考测试数据的比对结果,确定目标灰度发布程序的测试结果,并根据测试结果,对目标灰度发布程序进行调整。即本发明能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对目标灰度发布程序进行调整,保证目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用的问题。
Description
技术领域
本发明涉及数据测试领域,更具体的说,涉及一种程序测试方法、装置及电子设备。
背景技术
灰度发布是指在软件版本发布过程中,能够平滑过渡的一种发布方式。若当前软件版本是A,新的软件版本是B,当对某个软件进行版本升级发布时,服务器控制一部分用户端继续使用版本A,另一部分用户端更新并使用版本B;如果用户端在使用版本B的过程中没有出现异常,则逐步将所有用户端上的该软件都更新到版本B。这种逐渐过渡发布的方式可以保证整体系统的稳定。
在灰度发布过程中,若是灰度发布程序异常,则会导致客户端的软件更新异常,进而导致客户端的软件不能正常使用,降低用户体验。
发明内容
有鉴于此,本发明提供一种程序测试方法、装置及电子设备,以解决在灰度发布过程中,若是灰度发布程序异常,则会导致客户端的软件更新异常,进而导致客户端的软件不能正常使用,降低用户体验的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种程序测试方法,包括:
在达到预设测试条件的情况下,获取目标集群的集群参数;所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息;
获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布;
获取所述目标客户端在运行所述目标程序时的参考测试数据;
基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
可选地,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
获取所述目标集群中的集群节点的节点信息;
基于节点信息和目标程序的版本信息的对应关系,确定所述目标集群中的集群节点的节点信息对应的目标程序的版本信息;
获取所述目标客户端在运行目标程序时访问的集群节点,并将访问的集群节点的节点信息对应的目标程序的版本信息,确定为所述目标客户端对应的实际版本信息。
可选地,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考版本信息。
可选地,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
获取所述目标客户端在运行所述目标程序时访问的集群节点;
构建包括所述目标客户端和所述访问的集群节点的实际路由信息。
可选地,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考路由信息。
可选地,获取所述目标客户端在运行所述目标程序时的参考路由信息,包括:
获取登陆信息,并基于所述登陆信息查询预设存储模块,以从所述预设存储模块中获取所述目标客户端在运行所述目标程序时的参考路由信息。
可选地,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,包括:
比对所述实际测试数据以及所述参考测试数据是否一致;
若一致,则确定所述目标灰度发布程序的测试结果为测试通过;
若不一致,则确定所述目标灰度发布程序的测试结果为测试未通过。
可选地,根据所述测试结果,对所述目标灰度发布程序进行调整,包括:
在所述目标灰度发布程序的测试结果为测试未通过的情况下,输出目标灰度发布程序调整指示信息至预设终端。
一种程序测试装置,包括:
参数获取模块,用于在达到预设测试条件的情况下,获取目标集群的集群参数;所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息;
数据确定模块,用于获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布;
数据获取模块,用于获取所述目标客户端在运行所述目标程序时的参考测试数据;
测试调整模块,用于基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行上述的程序测试方法。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种程序测试方法、装置及电子设备,本发明中,在当前时刻达到预设测试时间条件的情况下,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,获取所述目标客户端在运行所述目标程序时的参考测试数据,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。即本发明中,能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对所述目标灰度发布程序进行调整,保证了目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用,降低用户体验的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种程序测试方法的方法流程图;
图2为本发明实施例提供的另一种程序测试方法的方法流程图;
图3为本发明实施例提供的再一种程序测试方法的方法流程图;
图4为本发明实施例提供的一种灰度发布机制示意图;
图5为本发明实施例提供的一种灰度发布机制测试流程示意图;
图6为本发明实施例提供的一种程序测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在灰度发布过程中,若是灰度发布程序异常,则会导致客户端的软件更新异常,进而导致客户端的软件不能正常使用,降低用户体验。
为了解决这一技术问题,发明人发现,若是能够对灰度发布程序进行测试,在测试通过后,灰度发布程序再投入使用,则可以避免灰度发布程序异常导致的客户端的软件不能正常使用的问题。
在对灰度发布程序进行测试时,若是在灰度发布程序的使用阶段进行测试,若是灰度发布程序异常,也会导致在灰度发布程序测试过程中,已经更新过版本的用户端上的该软件不能正常使用,影响用户体验。
为此,本发明预先构建了一个灰度发布程序的模拟测试环境,该模拟测试环境包括多个集群,每一集群对应于软件的一个版本号,保证该版本号的软件的正常运行,如可以处理用户操作、进行数据交互等。由于在灰度发布时,一般会有两个或多个版本,因此,会有两个或多个集群,每一集群对应一版本号,不同的集群对应的版本号不同。
此外,模拟测试环境还包括有多个客户端,这些客户端是灰度发布程序在发布程序的发布对象,灰度发布程序可以逐步选择部分客户端进行软件更新,直至所有的客户端均进行了软件更新。
在上述内容的基础上,本发明实施例提供了一种程序测试方法、装置及电子设备。本发明提供的一种程序测试方法、装置及电子设备可用于金融领域或其他领域,例如,可用于金融领域中的测试应用场景。其他领域为除金融领域之外的任意领域,例如灰度发布领域。上述仅为示例,并不对本发明提供的一种程序测试方法、装置及电子设备的应用领域进行限定。
本发明中,在当前时刻达到预设测试时间条件的情况下,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,获取所述目标客户端在运行所述目标程序时的参考测试数据,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。即本发明中,能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对所述目标灰度发布程序进行调整,保证了目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用,降低用户体验的问题。
在上述内容的基础上,本发明实施例提供了一种程序测试方法,可应用于处理器、服务器等。参照图1,可以包括:
S11、在达到预设测试条件的情况下,获取目标集群的集群参数。
其中,所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息。
本实施例中,可以是每隔指定时间,使用目标灰度发布程序进行一批客户端的软件更新,如在10点更新第一批客户端,在10.30更新第二批客户端等等。
若是每次更新时间需要半小时,则本实施例中的预设测试条件可以是每批客户端更新完成的时刻,如在10.30第一批客户端更新完成,则预设测试条件即为10.30,在当前时刻为10.30时,则进行本实施例中的程序测试方法的执行。
此外,每批客户端的更新时间不定,则在每次客户端更新完成时,即认为达到预设测试条件。
本实施例中的目标集群即为模拟测试环境中的各个集群,每一目标集群对应有集群参数,集群参数包括目标集群中的各个集群节点的节点信息,节点信息可以是节点标识、节点对应的版本号等等。
S12、获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布。
本实施例中,目标客户端可以是模拟测试环境中的任一客户端,若是目标软件有软件版本A和软件版本B两个版本,且软件版本B是新版本,软件版本A是旧版本,则该客户端中的目标软件既可以是软件版本A,也可以是软件版本B,即本实施例中,对目标客户端是否进行过更新不做要求。
针对软件版本A,可以使用目标集群A维护软件版本A的正常运行,如接收运行有软件版本A的目标软件的客户端的用户请求,处理该用户请求等。
针对软件版本B,可以使用目标集群B维护软件版本B的正常运行,如接收运行有软件版本B的目标软件的客户端的用户请求,处理该用户请求等。
在实际应用中,通过目标客户端访问目标集群时的路由或者是目标集群对应的版本号是否是该目标客户端所应对应的路由或者版本号来确定目标灰度发布程序是否异常,即是否存在故障等。
举例来说,假设目标客户端运行目标软件的软件版本A,则目标客户端应访问目标集群A,进而通过确定目标客户端是否访问的是目标集群A的方式来确定目标灰度发布程序是否异常。
进而在目标客户端运行目标软件的过程中,获取目标客户端在运行目标程序时访问的集群节点。然后基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据。
其中,所述目标程序基于所述目标灰度发布程序发布,也就是说,目标客户端上的目标程序是通过目标灰度发布程序下发的。
S13、获取所述目标客户端在运行所述目标程序时的参考测试数据。
本实施例中,参考测试数据是目标客户端在运行所述目标程序时理论上上的测试数据。
S14、基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
本实施例中,比对所述实际测试数据以及所述参考测试数据是否一致,若一致,则确定所述目标灰度发布程序的测试结果为测试通过,若不一致,则确定所述目标灰度发布程序的测试结果为测试未通过。
若测试通过,则说明目标灰度发布程序正常,可上线使用。若测试未通过,则说明目标灰度发布程序异常,需要进行修复,则输出目标灰度发布程序调整指示信息至预设终端。
其中,预设终端可以是运维人员的终端,即在测试未通过时,通知运维人员,以使运维人员对目标灰度发布程序进行调整。在调整目标灰度发布程序,可以在下次使用目标灰度发布程序时对目标灰度发布程序继续进行测试。
本实施例中,在当前时刻达到预设测试时间条件的情况下,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,获取所述目标客户端在运行所述目标程序时的参考测试数据,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。即本发明中,能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对所述目标灰度发布程序进行调整,保证了目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用,降低用户体验的问题。
在上述内容的基础上,对目标灰度发布程序进行测试时,可以通过访问的集群节点确定目标客户端上的目标软件的版本号是否是理论上的版本号,或者是访问集群节点的路由是否是理论上的路由这两种方式实现测试,现分别进行介绍。
1、通过访问的集群节点确定目标客户端上的目标软件的版本号是否是理论上的版本号的方式进行测试。
参照图2,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
S21、获取所述目标集群中的集群节点的节点信息。
本实施例中,节点信息已经在上述进行了介绍。节点信息可以是节点标识等等。
S22、基于节点信息和目标程序的版本信息的对应关系,确定所述目标集群中的集群节点的节点信息对应的目标程序的版本信息。
具体的,预先设定了节点信息和目标程序的版本信息的对应关系,如节点A-F属于目标集群A,对应与目标程序的软件版本A。节点H-K属于目标集群B,对应与目标程序的软件版本B。
进而能够通过上述的对应关系,确定所述目标集群中的集群节点的节点信息对应的目标程序的版本信息。
此外,为了提高效率,还可以直接将节点信息对应的目标程序的版本信息存储到节点信息中,以提高版本信息的查找效率。
S23、获取所述目标客户端在运行目标程序时访问的集群节点,并将访问的集群节点的节点信息对应的目标程序的版本信息,确定为所述目标客户端对应的实际版本信息。
本实施例中,目标客户端在运行目标程序时,会有用户操作,此时会生成用户请求,用户请求就会传输到集群中,会有相应的集群节点处理该用户请求。进而本实施例中,将处理用户请求的集群节点的节点信息对应的目标程序的版本信息,确定为所述目标客户端对应的实际版本信息。
举例来说,目标客户端访问的是集群节点A,而集群节点A处理的是版本A的用户请求,则可以确定出目标客户端上的目标程序的实际版本信息是版本A。
在本实施例的基础上,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考版本信息。
具体的,在使用目标灰度发布程序进行软件发布时,会设置每一客户端是否进行软件更新,如对应目标客户端,需要对其进行更新,从版本A升级至版本B。
则标客户端在运行所述目标程序时的参考版本信息是版本B。
在确定了实际版本信息和参考版本信息之后,就可以确定二者是否是一致,根据上述可知,实际版本信息是版本A,参考版本信息是版本B,二者不一致,则说明目标灰度发布程序未成功对目标客户端上的目标程序进行更新,也即说明目标灰度发布程序是存在问题的,需要进行修复,此时通过运维人员修改该程序。
2、通过访问集群节点的路由是否是理论上的路由这两种方式实现测试。
参照图3,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
S31、获取所述目标客户端在运行所述目标程序时访问的集群节点。
本实施例中,在目标客户端运行目标程序时,处理该程序发送的请求的节点即为本实施例中,目标客户端在运行所述目标程序时访问的集群节点。
S32、构建包括所述目标客户端和所述访问的集群节点的实际路由信息。
具体的,本实施例中的路由信息,即为目标客户端的信息交互路径,本实施例中,由于目标客户端访问了集群节点,则可以构建包括所述目标客户端和所述访问的集群节点的实际路由信息。
在本实施例的基础上,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考路由信息。
本实施例中,对于目标客户端上的目标程序,在使用目标灰度发布程序进行软件更新时,会确定该目标客户端是否进行更新,什么时间段进行更新,在更新前使用的路由信息的内容,在更新后使用的路由信息的内容。
因此,仅需获取目标客户端的目标程序的路由信息即可,并作为参考路由信息。
本实施例中,目标程序的路由信息可以存在到其他的处理器或者是服务器上,或者是本处理器或服务器中的设定位置,如预设存储模块,为了提高信息的安全性,在访问路由信息时,需要输入登陆信息,如用户名、密码等。在通过验证后,才允许访问路由信息。
以访问预设存储模块为例,在获取到登陆信息之后,在访问预设存储模块时,需要输入登陆信息,登陆信息验证通过后,才允许访问预设存储模块,并从预设存储模块中获取到目标客户端在运行所述目标程序时的路由信息,并作为参考路由信息。
在获取到参考路由信息和实际路由信息之后,比对二者是否一致,具体比对过程与上述的实际版本信息和参考版本信息比对过程类似,请参照上述相应说明。
本实施例中,通过上述两种方式,实现了目标灰度发布程序的测试,在实际应用中,可以任选一种方式进行测试,以提高目标灰度发布程序的可靠性。
为了本领域技术人员能够更加清楚的了解本发明,现结合具体场景进行设定的。
参照图4,灰度发布机制测试过程中,由于是在同一个环境,部署两套(或以上)集群节点,这两套节点在灰度区外是完全相同,随机路由,在灰度区内各产品根据不同的参数配置路由到不同服务节点,从而实现灰度发布。图4中,设置了多套集群节点,分别为产品1服务节点AB……、产品2服务节点AB……产品3服务节点AB……等等。
业务功能输入数据通过客户服务管理CSPJ等基础应用分发给不同的产品服务,实现产品客户端---应用层—数据服务层的服务分层架构。
针对不同的应用产品业务输入,可以通过在目标灰度发布程序进行参数配置,在应用层实现数据定向路由,指向不同的服务节点,如B节点部署时间段内送节点A,A节点部署时间段内送节点B,非部署节点随机路由。
在此过程中,由于各产品需要验证业务发起后数据流走向,故需要在业务发起后登陆各产品服务器节点查询参考路由信息或参考版本信息。灰度发布形式不同,对应的测试流程和方向也有差异,以金丝雀发布为例,应用维护人员和测试人员需要严格遵循发布时间和发布范围并建立对应的测试流程,并在此基础上严格按时间规划执行对应发布及测试步骤。
本发明的测试流程主要包含以下流程步骤:
1、分析及设计阶段:
根据灰度推广范围,确定测试范围和测试周期。
灰度放量过程分析,输出测试流程文档,确定测试步骤、测试点,并对测试点进行风险分析,根据风险程度确定验证点的优先级,保证服务稳定放在第一优先级,考虑回退方案可行性,根据测试范围配置相关人员支持测试流程。
2、测试准备阶段:
测试统筹方需收集目标集群以及目标集群中的集群节点,并准备可用于执行验证的登陆用户密码路径等数据,培训测试人员,确保测试人员了解需求和测试流程,技能足以在发布周期内完成测试工作。
测试实施方需参加培训,了解灰度发布流程及时间点计划,环境联通验证,数据准备,业务场景准备。
3、测试实施阶段:
在整个测试流程中的不同的部署时间段内根据软件更新参数的不同,业务数据输入被分别路由至A或B服务器节点,需使用已有数据和工具在不同时间段内对灰度区内外功能进行验证,观测业务数据流向,即路由是否正常,测试统筹方需全程跟踪测试实施过程,发现问题及时根据优先级和复杂程度灵活制定对应的策略。
执行完一轮测试后,如无系统性问题,根据既定时间点进入下一轮测试,少量产品问题不会影响整个测试流,可根据实际情况灵活调整每轮测试侧重点。
在测试流程框架内多轮滚动,完成灰度发布所有功能的验证。
参照图5,图5为在整个灰度发布流程中的测试过程。
测试准备阶段:测试统筹方、开发部署方、测试实施方确定流程、权限获取、环境搭建、数据准备。
灰度发布流程时间线:
1、正常联机时间:由于随机路由,交易正常随机A/B。
2、A环境新版本部署阶段:A环境部署时间点后至B环境部署时间点前,自动灰度部署按放量过程分为多个参数时间点,本流程图中A新版本部署过程分为四个时间点(根据灰度发布的具体场景可调整),分别是A开始部署、亚太(实例)生效、欧非(实例)生效、美洲(实例)生效。
在各个时间点及对应的时间段内,按参数时间点分别在不同实例执行业务交易数据输入,根据参数配置,输出不同的验证数据(包括路由分配、交易结果等数据),与预期比对,验证灰度发布参数配置及灰度发布机制。
3、B环境新版本部署阶段:B环境部署时间点后至B环境部署完成。
在不同实例执行业务交易数据输入,通过路由及交易结果等数据验证灰度发布参数配置及灰度发布机制。
4、特殊产品或服务验证:本流程图中的批量插入为特殊产品验证,与普通业务交易的验证有差异,在实际测试过程中可根据实际情况在各个时间点插入不同的特殊产品或场景进行验证。
5、本轮测试结束后灰度发布机制程序可以进行维护,维护后可以直接进行下一轮测试并循环。
本发明中的用于对目标灰度发布程序的程序测试方法具有以下特点:
1、可用性:已经通过正式项目实践证明本模型可用于灰度发布机制的测试。
2、可操作性:可以根据需要在特定流程节点添加操作,如图中的批量插入测试就是一类与交易业务验证不同的特殊测试。
3、扩展性:可引入多种不同的方式方法,如自动化测试代替手工业务验证、加入定时装置以排除时间点影响等。
4、可循环:多轮循环测试将程序风险降至最低,上一轮次识别的问题可以在下一轮循环验证。
本发明实施例中的测试方法可最大程度解决版本放量测试时间统筹的问题,使灰度发布机制测试更规范化。
可选地,在上述程序测试方法的实施例的基础上,本发明的另一实施例提供了一种程序测试装置,参照图6,包括:
参数获取模块11,用于在达到预设测试条件的情况下,获取目标集群的集群参数;所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息;
数据确定模块12,用于获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布;
数据获取模块13,用于获取所述目标客户端在运行所述目标程序时的参考测试数据;
测试调整模块14,用于基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
进一步,数据确定模块12具体用于:
获取所述目标集群中的集群节点的节点信息,基于节点信息和目标程序的版本信息的对应关系,确定所述目标集群中的集群节点的节点信息对应的目标程序的版本信息,获取所述目标客户端在运行目标程序时访问的集群节点,并将访问的集群节点的节点信息对应的目标程序的版本信息,确定为所述目标客户端对应的实际版本信息。
进一步,数据获取模块13具体用于:
获取所述目标客户端在运行所述目标程序时的参考版本信息。
进一步,数据确定模块12具体用于:
获取所述目标客户端在运行所述目标程序时访问的集群节点,构建包括所述目标客户端和所述访问的集群节点的实际路由信息。
进一步,数据获取模块13具体用于:
获取所述目标客户端在运行所述目标程序时的参考路由信息。
进一步,数据获取模块13用于获取所述目标客户端在运行所述目标程序时的参考路由信息时,具体用于:
获取登陆信息,并基于所述登陆信息查询预设存储模块,以从所述预设存储模块中获取所述目标客户端在运行所述目标程序时的参考路由信息。
进一步,测试调整模块14用于基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果时,具体用于:
比对所述实际测试数据以及所述参考测试数据是否一致;若一致,则确定所述目标灰度发布程序的测试结果为测试通过;若不一致,则确定所述目标灰度发布程序的测试结果为测试未通过。
进一步,测试调整模块14用于根据所述测试结果,对所述目标灰度发布程序进行调整时,具体用于:
在所述目标灰度发布程序的测试结果为测试未通过的情况下,输出目标灰度发布程序调整指示信息至预设终端。
本实施例中,在当前时刻达到预设测试时间条件的情况下,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,获取所述目标客户端在运行所述目标程序时的参考测试数据,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。即本发明中,能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对所述目标灰度发布程序进行调整,保证了目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用,降低用户体验的问题。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述程序测试方法及装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行上述的程序测试方法。
本实施例中,在当前时刻达到预设测试时间条件的情况下,获取目标集群的集群参数,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,获取所述目标客户端在运行所述目标程序时的参考测试数据,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。即本发明中,能够对目标灰度发布程序进行测试,得到测试结果,并根据测试结果,对所述目标灰度发布程序进行调整,保证了目标灰度发布程序的准确性和可靠性,避免灰度发布程序异常导致客户端的软件不能正常使用,降低用户体验的问题。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种程序测试方法,其特征在于,包括:
在达到预设测试条件的情况下,获取目标集群的集群参数;所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息;
获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布;
获取所述目标客户端在运行所述目标程序时的参考测试数据;
基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
2.根据权利要求1所述的程序测试方法,其特征在于,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
获取所述目标集群中的集群节点的节点信息;
基于节点信息和目标程序的版本信息的对应关系,确定所述目标集群中的集群节点的节点信息对应的目标程序的版本信息;
获取所述目标客户端在运行目标程序时访问的集群节点,并将访问的集群节点的节点信息对应的目标程序的版本信息,确定为所述目标客户端对应的实际版本信息。
3.根据权利要求2所述的程序测试方法,其特征在于,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考版本信息。
4.根据权利要求1所述的程序测试方法,其特征在于,获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据,包括:
获取所述目标客户端在运行所述目标程序时访问的集群节点;
构建包括所述目标客户端和所述访问的集群节点的实际路由信息。
5.根据权利要求4所述的程序测试方法,其特征在于,获取所述目标客户端在运行所述目标程序时的参考测试数据,包括:
获取所述目标客户端在运行所述目标程序时的参考路由信息。
6.根据权利要求5所述的程序测试方法,其特征在于,获取所述目标客户端在运行所述目标程序时的参考路由信息,包括:
获取登陆信息,并基于所述登陆信息查询预设存储模块,以从所述预设存储模块中获取所述目标客户端在运行所述目标程序时的参考路由信息。
7.根据权利要求1所述的程序测试方法,其特征在于,基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,包括:
比对所述实际测试数据以及所述参考测试数据是否一致;
若一致,则确定所述目标灰度发布程序的测试结果为测试通过;
若不一致,则确定所述目标灰度发布程序的测试结果为测试未通过。
8.根据权利要求7所述的程序测试方法,其特征在于,根据所述测试结果,对所述目标灰度发布程序进行调整,包括:
在所述目标灰度发布程序的测试结果为测试未通过的情况下,输出目标灰度发布程序调整指示信息至预设终端。
9.一种程序测试装置,其特征在于,包括:
参数获取模块,用于在达到预设测试条件的情况下,获取目标集群的集群参数;所述目标集群设置于预先构建、且用于对目标灰度发布程序进行测试的模拟测试环境中;所述目标集群的集群参数包括所述目标集群中的各个集群节点的节点信息;
数据确定模块,用于获取目标客户端在运行目标程序时访问的集群节点,并基于访问的集群节点的节点信息,确定所述目标客户端对应的实际测试数据;所述目标程序基于所述目标灰度发布程序发布;
数据获取模块,用于获取所述目标客户端在运行所述目标程序时的参考测试数据;
测试调整模块,用于基于所述实际测试数据以及所述参考测试数据的比对结果,确定所述目标灰度发布程序的测试结果,并根据所述测试结果,对所述目标灰度发布程序进行调整。
10.一种电子设备,其特征在于,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行如权利要求1-8任一项所述的程序测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111055165.5A CN113672521A (zh) | 2021-09-09 | 2021-09-09 | 一种程序测试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111055165.5A CN113672521A (zh) | 2021-09-09 | 2021-09-09 | 一种程序测试方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672521A true CN113672521A (zh) | 2021-11-19 |
Family
ID=78548940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111055165.5A Pending CN113672521A (zh) | 2021-09-09 | 2021-09-09 | 一种程序测试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672521A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666256A (zh) * | 2022-03-21 | 2022-06-24 | 中国工商银行股份有限公司 | 灰度测试方法、装置、设备、介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN108768875A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 应用的灰度发布方法、装置及计算机可读存储介质 |
CN113010418A (zh) * | 2021-03-04 | 2021-06-22 | 中国工商银行股份有限公司 | 一种渐进式灰度发布方法及装置 |
-
2021
- 2021-09-09 CN CN202111055165.5A patent/CN113672521A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN108768875A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 应用的灰度发布方法、装置及计算机可读存储介质 |
CN113010418A (zh) * | 2021-03-04 | 2021-06-22 | 中国工商银行股份有限公司 | 一种渐进式灰度发布方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666256A (zh) * | 2022-03-21 | 2022-06-24 | 中国工商银行股份有限公司 | 灰度测试方法、装置、设备、介质 |
CN114666256B (zh) * | 2022-03-21 | 2023-12-29 | 中国工商银行股份有限公司 | 灰度测试方法、装置、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726099B (zh) | 一种应用灰度发布方法、装置及设备 | |
CN109787858B (zh) | 一种批量发布服务的方法及终端 | |
CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN111414169B (zh) | Bmc镜像升级方法及相关组件 | |
CN114692169B (zh) | 应用大数据和ai分析的页面漏洞处理方法及页面服务系统 | |
CN112817867A (zh) | 一种接口测试脚本生成方法、装置、计算机设备和介质 | |
CN114064058A (zh) | 一种程序自动化发布方法、装置、电子设备及存储介质 | |
CN113127023B (zh) | 业务升级的方法、装置和系统 | |
CN113672521A (zh) | 一种程序测试方法、装置及电子设备 | |
CN113721950A (zh) | 一种资损防控处理方法及装置 | |
CN116266296A (zh) | 基站产品的生产测试方法及装置 | |
JP7039652B2 (ja) | 異常サーバのサービス処理方法および装置 | |
CN117290255A (zh) | 一种基于Python和Locust框架的批量接口性能测试方法 | |
US9058313B2 (en) | Test method for distributed processing system and distributed processing system | |
CN112905437A (zh) | 一种测试用例的方法、装置及存储介质 | |
CN109857629B (zh) | 一种扫描检测方法及装置 | |
EP4130982A1 (en) | Network-based solution module deployment platform | |
CN112559012B (zh) | 系统升级及测试方法、装置、计算机设备及可读存储介质 | |
CN110347609B (zh) | 一种测试区块链软件的方法及装置 | |
CN111737130B (zh) | 公有云多租户认证服务测试方法、装置、设备及储存介质 | |
CN114840248A (zh) | 一种基于企业级分布式应用服务的系统灰度发布方法 | |
US20100191710A1 (en) | Network Meta-Data Libraries And Related Methods | |
CN110447011B (zh) | 开发操作支持系统、开发管理服务器、操作管理服务器及其方法以及存储有其程序的非暂时性计算机可读介质 | |
CN117176551A (zh) | 一种服务请求的反馈方法、装置及计算机可读存储介质 | |
CN117407280A (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 |