CN116467188A - 一种多环境场景下的通用本地复现系统和方法 - Google Patents
一种多环境场景下的通用本地复现系统和方法 Download PDFInfo
- Publication number
- CN116467188A CN116467188A CN202310337138.XA CN202310337138A CN116467188A CN 116467188 A CN116467188 A CN 116467188A CN 202310337138 A CN202310337138 A CN 202310337138A CN 116467188 A CN116467188 A CN 116467188A
- Authority
- CN
- China
- Prior art keywords
- environment
- specific identification
- identification bit
- request
- local
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 235000014510 cooky Nutrition 0.000 claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 17
- 238000011835 investigation Methods 0.000 claims description 29
- 238000011161 development Methods 0.000 claims description 15
- 238000013024 troubleshooting Methods 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 description 16
- 238000012360 testing method Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008014 freezing Effects 0.000 description 5
- 238000007710 freezing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 101100333320 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) end-3 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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/362—Software debugging
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种多环境场景下的通用本地复现系统和方法,涉及信息系统中多环境场景下的问题复现及定位领域,该系统包括:模拟请求端将问题环境的接口入参添加特定标识位得到特定标识位请求入参并发送给服务器;服务器接收特定标识位请求入参,应用AOP通知获取特定标识位和特定标识位的值,当特定标识位的值等于设定阈值时将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中并返回模拟请求端;本地排查端在本地环境将代码切换至问题环境对应代码版本,并根据问题环境的业务数据在本地环境进行bug的排查和定位,本发明能够提高非本地环境下开发人员进行bug定位和排查的效率。
Description
技术领域
本发明涉及信息系统中多环境场景下的问题复现及定位领域,特别是涉及一种多环境场景下的通用本地复现系统和方法。
背景技术
一个信息系统从需求明确到最终上线部署,过程中会经历多种运行环境,比较典型的环境包含但不限于测试环境、冻结环境、验收环境、准生产环境、生产环境。开发环境是开发人员在本地开发、自测,该环境是排查定位问题最理想的环境,开发人员可使用丰富的断点功能在本地环境下创造一个“动态”的排查环境,同时可以控制程序的执行。其中,测试环境用于项目组测试团队对开发人员开发完成的功能进行功能测试。冻结环境用于部署经过项目组测试团队测试通过的应用,供不同项目组之间联调和用户验收使用。验收环境用于测试中心对于开发团队提交的测试任务进行测试。准生产环境用于测试中心测试通过下发运维后的生产验证。生产环境用于上述各种环境通过后正式对外提供服务。
目前在非本地环境下开发人员进行bug定位和排查时往往采取日志+代码走查的方式,此种方式存在多种弊端:1、特定环境下日志的保留是有期限限制的,往往会出现查找日志时日志文件已被删除的情况:2、特定环境下(生产环境、准生产环境、验收环境)的日志是需要相关支持人员配合提供,排查定位问题链条较长,效率较低;3、在生产环境等高并发环境下特定请求相关的日志获取往往伴随着不少的工作量;4、日志出现漏打少打等情况,无法定位的情况出现,此时必须改变日志级别导致服务重启,甚至变更代码增加日志打,印重新发版,重新部署,排查定位周期较长;5、尽可能多的打印日志以备排查定位bug时使用,往往会造成部署宿主机的磁盘占用及IO较高,但多数场景下这些日志是没有任何价值的;6、大量的日志打印代码会和业务逻辑代码混在一起,造成对业务逻辑代码的入侵和污染。
发明内容
本发明的目的是提供一种多环境场景下的通用本地复现系统和方法,能够提高非本地环境下开发人员进行bug定位和排查的效率。
为实现上述目的,本发明提供了如下方案:
一种多环境场景下的通用本地复现系统,所述通用本地复现系统包括模拟请求端、服务器和本地排查端;
所述模拟请求端用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参,并将所述特定标识位请求入参发送给所述服务器;
所述服务器用于接收所述特定标识位请求入参,以及应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中并返回所述模拟请求端;
所述本地排查端用于在本地环境将代码切换至问题环境对应代码版本,并根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
可选地,所述服务器包括:
接收模块,用于接收所述特定标识位请求入参;
获取模块,用于应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值;
存储模块,用于应用AOP通知判断所述特定标识位的值是否等于设定阈值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中。
可选地,所述模拟请求端包括:
标注模块,用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参;
发送模块,用于将所述特定标识位请求入参发送给所述服务器。
可选地,所述本地排查端包括:
代码切换模块,用于在本地环境将代码切换至问题环境对应代码版本;
排查模块,用于根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
可选地,所述排查模块包括:
判断单元,用于根据在cookie中获取到的对应问题环境的业务数据,判断问题环境对应代码版本是否存在程序漏洞;
修复单元,用于在所述问题环境对应代码版本存在程序漏洞时,对所述程序漏洞进行定位并应用对应的程序补丁对所述出问题环境对应的代码进行升级;
反馈单元,用于在所述问题环境对应代码版本不存在程序漏洞时,返回无程序漏洞的排查结果。
可选地,所述本地排查端应用了JAVA集成开发环境。
一种多环境场景下的通用本地复现方法,应用于上述的多环境场景下的通用本地复现系统,所述通用本地复现方法包括:
接收问题环境的特定标识位请求入参;
应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值;
应用AOP通知判断所述特定标识位的值是否等于设定阈值;
当所述特定标识位的值不等于设定阈值时,返回特定标识位请求入参中的接口入参的请求值;
当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中;
根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供了一种多环境场景下的通用本地复现系统和方法,通过利用设定标识位(自定义注解)和面向切面编程的特性实现动态实时获取测试环境、冻结环境、验收环境、准生产环境、生产环境下信息系统中涉及到内存进出环节的业务参数,做到“即插即用”式获取所有排查定位bug需要的业务参数,并通过将涉及内存进出环节的方法打上特定的自定义注解的方式实现不侵入业务逻辑的同时灵活控制和指定哪些代码逻辑方法的结果作为排查和定位需要的业务数据,以及以cookie的形式将内存进出环节的业务参数返回到本地排查端,不影响正常的业务逻辑解析,提高了本地环境下开发人员进行bug定位和排查的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的多环境场景下的通用本地复现系统模块图;
图2为本发明提供的多环境场景下的通用本地复现系统工作流程图;
图3为本发明提供的多环境场景下的通用本地复现方法流程图。
附图标记说明:
服务器—1,模拟请求端—2,本地排查端—3。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种多环境场景下的通用本地复现系统和方法,能够提高非本地环境下开发人员进行bug定位和排查的效率。
评价bug排查定位方案的优劣,主要依据该方案是否可以快速的获取bug产生环境的相关业务参数和基于相关参数快速创建一个对应代码版本的动态、可控制的复现环境。
信息系统从本质上来讲是由数据和逻辑(代码)构成,不同运行环境有着不同的业务数据,不同的业务数据会在对应环境的代码版本中触发不同的业务逻辑,排查问题时最理想的环境就是用对应环境的业务数据+对应环境的代码版本在开发人员本地进行bug复现,从而在一个动态可控的集成开发环境进行调试、排查及定位。
日志是用于记录信息系统在运行过程中有关时间及动作等相关操作的描述。面向切面编程(AOP)可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加某种特定功能,允许分离信息系统的业务逻辑与系统级服务(日志、事务支持等),将系统级服务从业务逻辑中剥离出来,实现高内聚,低耦合。AOP通知的主要作用就是在不侵入原有程序的基础上实现对原有功能的增强,而增强的方式就是添加通知,就是额外增强一个方法。按照不同的方式通知又分为前置、后置、环绕、异常、带有返回值。注解(Annotation)是Java5开始引入的新特定,它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观、更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用,可以根据实际开发需要进行自定义。AOP可以针对自定义注解进行切点的定义,在切点中指定对应自定义注解对应的相关逻辑功能。断点是调试器的功能之一,可以让程序中断在需要的地方,控制程序的执行过程,从而方便其分析,是问题排查和定位的利器。集群为信息系统为应对高并发等场景,通过多节点部署+负载均衡的方式对外提供服务。信息系统各个运行环境都会出现意想不到的各种bug,包括运行异常、逻辑错误等多种类型,排查定位bug是开发人员在实际工作中经常会碰到的场景。
本发明的核心点是利用自定义注解+AOP的特性实现动态实时获取各种环境(测试环境、冻结环境、验收环境、准生产环境、生产环境)下信息系统中涉及到内存进出环节(各个不同运行环境之间的业务数据差异仅存在内存进出环节,内存环节下的逻辑执行可以通过将本地环境切换成对应环境的代码版本实现)的业务参数,在保证日志量可控的前提下做到“即插即用”式获取所有排查定位bug需要的业务参数;通过将涉及内存进出环节的方法打上特定的自定义注解的方式实现不侵入业务逻辑的同时灵活控制和指定哪些代码逻辑方法的结果作为排查和定位需要的业务数据;以cookie的形式将内存进出环节的业务参数返回到模拟请求端,不影响正常的业务逻辑解析;通过单元测试的方式将bug产生环境中涉及到内存进出环节的业务参数“注入”到对应环境版本的代码逻辑中,在开发人员本地开发环境中营造一个动态可控的环境中实现bug的快速排查和定位;由于可以在需要时动态实时获取排查定位问题所需业务数据,可大幅度的降低日志打印量,减少磁盘占用和IO压力。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本发明提供了一种多环境场景下的通用本地复现系统,所述通用本地复现系统包括模拟请求端2、服务器1和本地排查端3。服务器1、模拟请求端2和本地排查端3依次连接。
所述模拟请求端2用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参,并将所述特定标识位请求入参发送给所述服务器1。
所述服务器1用于接收所述特定标识位请求入参,以及应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中并返回所述模拟请求端。
所述本地排查端3用于在本地环境将代码切换至问题环境对应代码版本,并根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
作为一个具体的实施方式,所述服务器1包括依次连接的接收模块、获取模块和存储模块。其中:
接收模块,用于接收所述特定标识位请求入参。
获取模块,用于应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值。
存储模块,用于应用AOP通知判断所述特定标识位的值是否等于设定阈值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中。
作为一个具体的实施方式,所述模拟请求端2包括标注模块和发送模块;标注模块与发送模块连接;其中:
标注模块,用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参。
发送模块,用于将所述特定标识位请求入参发送给所述服务器1。
作为一个具体的实施方式,所述本地排查端3包括代码切换模块和排查模块;代码切换模块与排查模块连接;其中:
代码切换模块,用于在本地环境将代码切换至问题环境对应代码版本。
排查模块,用于根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
具体地,所述排查模块包括判断单元、修复单元和反馈单元;修复单元分别与判断单元和反馈单元连接;其中:
判断单元,用于根据在cookie中获取到的对应问题环境的业务数据,判断问题环境对应代码版本是否存在程序漏洞。
修复单元,用于在所述问题环境对应代码版本存在程序漏洞时,对所述程序漏洞进行定位并应用对应的程序补丁对所述出问题环境对应的代码进行升级。
反馈单元,用于在所述问题环境对应代码版本不存在程序漏洞时,返回无程序漏洞的排查结果。
作为一个具体的实施方式,所述本地排查端3应用了JAVA集成开发环境。
优选地,所述本地排查端3还包括显示模块。所述显示模块用于显示所述特定标识位请求入参的业务数据。
在本实施例中,本地排查端3为本地环境。开发人员在本地排查端3进行bug定位和排查。多个述场景环境包括测试环境、冻结环境、验收环境、准生产环境和生产环境。
本发明通过利用设定标识位(自定义注解)+AOP的特性实现动态实时获取各种环境(测试环境、冻结环境、验收环境、准生产环境、生产环境)下信息系统中涉及到内存进出环节的业务参数,在保证日志量可控的前提下做到“即插即用”式获取所有排查定位bug需要的业务参数;通过将涉及内存进出环节的方法打上特定的自定义注解的方式实现不侵入业务逻辑的同时灵活控制和指定哪些代码逻辑方法的结果作为排查和定位需要的业务数据;以cookie的形式将内存进出环节的业务参数返回到模拟请求端1,不影响正常调用链场景下的调用端正常的业务逻辑解析,从而提高了本地环境下开发人员进行bug定位和排查的效率。
现在以某一开发环境中的问题环境为例,如图2所示,本发明提供的多环境场景下的通用本地复现系统的工作过程包括问题环境入参、模拟请求、服务端入参解析、判断是否收集、业务数据放入cookie、排查人员本地版本切换和排查人员本地复现定位。
具体如下所述:
首先获取出问题环境的请求入参(业务相关部分),将获取到的业务相关部分入参加上特定标识位请求入参(可事先指定,需要和步骤服务端入参解析部分保持一致,该文档中以isDebugModel为例,下同)请求问题环境对应接口。在开发环境中的AOP通知中解析获取isDebugModel入参,此处的解析逻辑在AOP通知中实现,和业务逻辑处理代码隔离。入参中isDebugModel是否为1或其它表示需要收集的值(此处具体的值需要和AOP通知中逻辑保持一致)。将打上特定自定义注解方法中的内存进出相关的业务数据收集并放入cookie中返回,此处代码逻辑放在AOP通知中,和业务逻辑处理代码隔离。排查人员将本地集成开发环境中的代码版本切换至问题环境对应版本,实现代码逻辑和问题环境的一致。排查人员在本地集成开发环境中基于问题环境的业务相关数据和问题环境的业务逻辑(切换版本),使用多种排查方式(单元测试,本地模拟等)定位问题。
整体过程中特定标识位(isDebugModel)和特定标识位相关的解析逻辑、触发赋值(什么情况下触发收集和返回动作)、收集动作、cookie形式返回只需要开发和运维人员知晓即可,可以理解为一个排查问题的“后门”,且实现代码在AOP通知中,实现和业务逻辑处理代码隔离。
进一步地,以查询被保险人为入参中证件号和证件类型的投保单数量和保额合计发生报错为例,详细论述本方案的实施过程。
正常的查询被保险人为入参中证件号和证件类型的投保单数量和保额合计的业务调用流程为多场景环境通过接口发送对应的请求入参,例如:请求入参的值为"123",请求入参的数据类型为"01"。
服务器的处理逻辑分为以下2步:
1、数据库查询:根据请求入参查询数据库用以获取被保险人信息等于入参的投保单的投保单号和保额。
2、逻辑计算:根据数据库返回的投保单号和保额进行累加得到投保单数量和保额合计进行返回。
其中数据库查询为非内存数据,各个环境的数据库数据不同所以各个环境之间会有差异,需要在AOP通知中预先设置自定义注解,用以在出现问题时,用作数据支撑;逻辑计算为内存内部的计算,相同的数据在内存中进行同样的计算不会因为环境的不同而不同,所以不需要打上自定义注解。
当查询被保险人为入参中证件号和证件类型的投保单数量和保额合计发生报错时,开发项目组在原有接口入参增加特定标识,即请求入参的值为"123",请求入参的数据类型为"01",特定标识位为isDebugModel,特定标识位的值为"01",用该接口入参模拟调用出问题环境,服务器端在接收到请求时发现入参中有isDebugModel且值为01,就会收集打上自定义注解的方法的返回,并将打上自定义注解的方法的返回放到cookie中,也就是把数据库查询的结果放入cookie中。
开发人员在cookie中获取到问题环境的内存进出数据,也就是本示例中的数据库查询结果,之后将代码切换至问题环境的版本,这样开发人员本地同时拥有了问题环境的数据和逻辑(代码),就可以在本地进行复现和问题排查。
服务器端用于判断入参中是否含有特定标志位(isDebugModel)、特定标志位是否等于预设的值、等于预设的值时对于打了特定自定义注解方法返回的收集及放入cookie中返回都是放在AOP的通知里面的,为了和业务逻辑进行隔离。整个过程唯一和业务逻辑代码发生关系的地方就是会在特定的方法上打上自定义注解,自定义注解是在方法层级的外部的,不涉及业务逻辑内部具体的操作,所以对业务逻辑是零侵入和零感染的。
本发明提供的多环境场景下的通用本地复现系统具有以下优势:
1、动态实时获取各种环境业务数据;通过AOP、自定义注解及特殊入参解析的方式动态实时获取各种运行环境的业务数据,为后续的问题排查和定位提供数据基础。
2、业务逻辑零侵入;用自定义注解的方式实现不侵入业务逻辑的同时灵活控制和指定需要返回结果的方法,将bug排查定位及程序相关逻辑和业务相关逻辑分离。
3、正常调用链场景下的调用端解析无感;通过写入cookie从而实现不改变反参结构的同时将定位bug所需的业务数据返回,不影响正常调用链场景下的调用端正常的反参解析逻辑。
4、动态可控的排查定位环境;通过单元测试的方式将bug产生环境中的业务数据“注入”到本地集成开发环境中对应的代码版本中,实现动态可控的排查环境。
5、低磁盘占用和IO压力;由于可以在需要时动态实时获取排查定位问题所需业务数据,可大幅度的降低日志打印量,减少磁盘占用和IO压力。
6、减少非业务相关代码;通过将非业务相关代码写入aop切点的方式减少业务方法中非业务的部分,增强业务代码的“纯粹性”。
实施例二
为了执行上述实施例一对应的系统,以实现相应的功能和技术效果,下面提供一种多环境场景下的通用本地复现方法,如图3所示,所述通用本地复现方法包括:
步骤S1:接收问题环境的特定标识位请求入参。
步骤S2:应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值。
步骤S3:应用AOP通知判断所述特定标识位的值是否等于设定阈值。
步骤S4:当所述特定标识位的值不等于设定阈值时,返回特定标识位请求入参中的接口入参的请求值。
步骤S5:当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中。
步骤S6:根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种多环境场景下的通用本地复现系统,其特征在于,所述通用本地复现系统包括模拟请求端、服务器和本地排查端;
所述模拟请求端用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参,并将所述特定标识位请求入参发送给所述服务器;
所述服务器用于接收所述特定标识位请求入参,以及应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中并返回所述模拟请求端;
所述本地排查端用于在本地环境将代码切换至问题环境对应代码版本,并根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
2.根据权利要求1所述的多环境场景下的通用本地复现系统,其特征在于,所述服务器包括:
接收模块,用于接收所述特定标识位请求入参;
获取模块,用于应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值;
存储模块,用于应用AOP通知判断所述特定标识位的值是否等于设定阈值,并且当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中。
3.根据权利要求2所述的多环境场景下的通用本地复现系统,其特征在于,所述模拟请求端包括:
标注模块,用于将问题环境的接口入参添加特定标识位,得到特定标识位请求入参;
发送模块,用于将所述特定标识位请求入参发送给所述服务器。
4.根据权利要求1所述的多环境场景下的通用本地复现系统,其特征在于,所述本地排查端包括:
代码切换模块,用于在本地环境将代码切换至问题环境对应代码版本;
排查模块,用于根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
5.根据权利要求4所述的多环境场景下的通用本地复现系统,其特征在于,所述排查模块包括:
判断单元,用于根据在cookie中获取到的对应问题环境的业务数据,判断问题环境对应代码版本是否存在程序漏洞;
修复单元,用于在所述问题环境对应代码版本存在程序漏洞时,对所述程序漏洞进行定位并应用对应的程序补丁对所述出问题环境对应的代码进行升级;
反馈单元,用于在所述问题环境对应代码版本不存在程序漏洞时,返回无程序漏洞的排查结果。
6.根据权利要求1所述的多环境场景下的通用本地复现系统,其特征在于,所述本地排查端应用了JAVA集成开发环境。
7.一种多环境场景下的通用本地复现方法,应用于权利要求1-6任一所述的多环境场景下的通用本地复现系统,其特征在于,所述通用本地复现方法包括:
接收问题环境的特定标识位请求入参;
应用AOP通知获取所述特定标识位请求入参中的特定标识位和所述特定标识位的值;
应用AOP通知判断所述特定标识位的值是否等于设定阈值;
当所述特定标识位的值不等于设定阈值时,返回特定标识位请求入参中的接口入参的请求值;
当所述特定标识位的值等于设定阈值时,将问题环境的预设自定义注解方法中内存进出的业务数据存储至cookie中;
根据在cookie中获取到的对应问题环境的业务数据,在本地环境中对问题环境对应代码版本的bug进行排查和定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310337138.XA CN116467188A (zh) | 2023-03-31 | 2023-03-31 | 一种多环境场景下的通用本地复现系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310337138.XA CN116467188A (zh) | 2023-03-31 | 2023-03-31 | 一种多环境场景下的通用本地复现系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467188A true CN116467188A (zh) | 2023-07-21 |
Family
ID=87172765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310337138.XA Pending CN116467188A (zh) | 2023-03-31 | 2023-03-31 | 一种多环境场景下的通用本地复现系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467188A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701470A (zh) * | 2023-08-07 | 2023-09-05 | 舟谱数据技术南京有限公司 | 中台架构下客户问题的复现方法、装置、电子设备及介质 |
-
2023
- 2023-03-31 CN CN202310337138.XA patent/CN116467188A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701470A (zh) * | 2023-08-07 | 2023-09-05 | 舟谱数据技术南京有限公司 | 中台架构下客户问题的复现方法、装置、电子设备及介质 |
CN116701470B (zh) * | 2023-08-07 | 2023-10-13 | 舟谱数据技术南京有限公司 | 中台架构下客户问题的复现方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430319B1 (en) | Systems and methods for automatic software testing | |
CN101241467B (zh) | 一种面向Web应用的自动化白盒测试方法 | |
Xu et al. | POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications | |
Mariani et al. | Compatibility and regression testing of COTS-component-based software | |
US8234633B2 (en) | Incident simulation support environment and business objects associated with the incident | |
CN106970880B (zh) | 一种分布式自动化软件测试方法及系统 | |
US20090249297A1 (en) | Method and System for Automated Testing of Computer Applications | |
CN110413316B (zh) | 面向区块链智能合约的非侵入式测试系统及方法 | |
CN107608901B (zh) | 基于Jmeter的测试方法及装置、存储介质、电子设备 | |
CN108459951B (zh) | 测试方法和装置 | |
CN112631846A (zh) | 一种故障演练方法、装置、计算机设备及存储介质 | |
CN111737140A (zh) | 接口自动化测试方法、装置、设备及计算机可读存储介质 | |
US9823999B2 (en) | Program lifecycle testing | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN111309609A (zh) | 软件处理系统 | |
CN116467188A (zh) | 一种多环境场景下的通用本地复现系统和方法 | |
US20210048999A1 (en) | Automated generation of status chains for software updates | |
CN111767218B (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN110990249B (zh) | 代码扫描结果处理方法、装置、计算机设备及存储介质 | |
Fagerström et al. | Verdict machinery: On the need to automatically make sense of test results | |
CN112527619A (zh) | 一种基于有向无环图结构的分析链路调用方法及系统 | |
CN115934559A (zh) | 表单智能测试系统的测试方法 | |
CN107305524B (zh) | 压力测试方法及系统 | |
CN115629997A (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 |