CN117435507A - 自适应通用退避测试方法及系统 - Google Patents
自适应通用退避测试方法及系统 Download PDFInfo
- Publication number
- CN117435507A CN117435507A CN202311755314.8A CN202311755314A CN117435507A CN 117435507 A CN117435507 A CN 117435507A CN 202311755314 A CN202311755314 A CN 202311755314A CN 117435507 A CN117435507 A CN 117435507A
- Authority
- CN
- China
- Prior art keywords
- request
- simulation
- backoff
- test
- rule
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 190
- 238000004088 simulation Methods 0.000 claims abstract description 169
- 230000004044 response Effects 0.000 claims abstract description 117
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 230000005856 abnormality Effects 0.000 claims description 15
- 230000003044 adaptive effect Effects 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 24
- 238000012545 processing Methods 0.000 abstract description 3
- 230000002159 abnormal effect Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 230000006399 behavior Effects 0.000 description 18
- 230000007246 mechanism Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010921 in-depth analysis Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000000725 suspension Substances 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
- 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/3664—Environments for testing or debugging software
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种自适应通用退避测试方法及系统,用于提高自适应通用退避测试的效率。该方法包括:初始化退避规则,根据退避规则生成模拟测试用例;根据模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址;基于每个模拟请求接口的接口地址,在预置的待测试APP中嵌入退避规则;根据退避规则构建响应编码,得到响应编码集合;通过模拟请求组对待测试APP进行退避测试,通过预置的测试工具采集待测试APP的请求日志;基于响应编码集合对请求日志进行退避测试状态分析,得到目标退避测试状态。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种自适应通用退避测试方法及系统。
背景技术
在过去的软件测试中,通常采用事先设计好的测试用例,通过执行这些用例来检验系统在预期输入的正确行为。传统测试方法在软件正常运行的情况下是有效的,但对于验证系统在网络延迟、接口拥塞或其他原因导致未得到预期响应情况下的行为处理能力有限,特别是在复杂的应用环境下,很难覆盖所有可能的异常情况。针对上述问题出现了退避机制,以及针对这种机制的退避测试,退避机制指的是系统在发生异常或错误时,暂停或重试操作,以避免进一步的冲突和损失。退避测试指的是对退避机制进行测试,它模拟测试系统在面对各种异常情况时的反应和表现,以评估系统的健壮性和稳定性。
现有技术中,常用的退避机制测试策略,例如在测试软件中某一个功能的操作过程中,进行人工断网或者使用工具进行网络隔离,出现异常之后查看当前软件现象。在由开发工程师通过日志进行分析确定存在退避机制。这种方案沟通成本较高、测试效率低下、受测试环境限制、覆盖的异常场景也极其有限。又如在系统代码中注入会导致异常、错误的代码,告知测试工程师具体在操作到哪个步骤的时候会出现异常,并且引发退避。再由测试工程师去接口请求记录网站,查看该条请求是否出现了退避的相关标识。该方案同样存在沟通成本问题,还会导致注入的代码引起新的错误或问题,同时增加了额外的开发工作和维护工作。
发明内容
有鉴于此,本发明实施例提供了一种自适应通用退避测试方法及系统,用于提高自适应通用退避测试的效率。
本发明提供了一种自适应通用退避测试方法,包括:初始化退避规则,根据所述退避规则生成模拟测试用例;根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址;基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则;根据所述退避规则构建响应编码,得到响应编码集合;通过所述模拟请求组对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志;基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
在本发明中,所述初始化退避规则,根据所述退避规则生成模拟测试用例步骤,包括:获取所述退避规则,对所述退避规则进行数据结构提取,得到所述退避规则的目标数据结构,其中,所述目标数据结构包括:触发条件、退避操作以及期望响应数据;根据所述退避规则的数据结构进行测试用例生成,得到所述模拟测试用例。
在本发明中,所述根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址步骤,包括:对所述模拟测试用例进行请求参数提取,得到请求参数集合;对所述模拟测试用例进行请求路径分析,得到所述模拟测试用例对应的请求路径;基于所述请求参数集合以及所述请求路径创建所述模拟请求组;通过所述模拟请求组进行请求接口创建,得到多个所述模拟请求接口;对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址。
在本发明中,所述基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则步骤,包括:对所述待测试APP进行反编译处理,得到所述待测试APP对应的代码嵌入位置集合;基于每个所述模拟请求接口的接口地址对所述代码嵌入位置集合进行位置筛选,得到每个所述模拟请求接口对应的代码嵌入位置;基于每个所述模拟请求接口对应的代码嵌入位置以及每个所述模拟请求接口的接口地址,在所述待测试APP中嵌入所述退避规则。
在本发明中,所述根据所述退避规则构建响应编码,得到响应编码集合步骤,包括:对所述退避规则进行模拟运行,得到模拟运行日志;对所述模拟运行日志进行运行异常关键字段提取,得到多个运行异常关键字段;对多个所述运行异常关键字段进行响应编码映射,得到响应编码集合。
在本发明中,所述通过所述模拟请求组对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志步骤,包括:通过所述模拟请求组对所述待测试APP进行退避测试,对所述待测试APP进行运行数据采集,得到所述待测试APP的运行状态数据;对所述运行状态数据进行行为数据提取,得到行为数据集合;基于所述行为数据集合,通过所述测试工具采集所述待测试APP的请求日志。
在本发明中,所述基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态步骤,包括:对所述请求日志进行响应编码提取,得到所述请求日志对应的实时响应编码集合;对所述响应编码集合以及所述实时响应编码集合进行匹配度分析,得到目标匹配度数据;基于所述目标匹配度数据对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
本发明还提供了一种自适应通用退避测试系统,包括:
获取模块,用于初始化退避规则,根据所述退避规则生成模拟测试用例;
提取模块,用于根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址;
嵌入模块,用于基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则;
编码模块,用于根据所述退避规则构建响应编码,得到响应编码集合;
采集模块,用于对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志;
分析模块,用于基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
本发明提供的技术方案中,初始化退避规则,根据退避规则生成模拟测试用例;根据模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址;基于每个模拟请求接口的接口地址,在预置的待测试APP中嵌入退避规则;根据退避规则构建响应编码,得到响应编码集合;通过模拟请求组对待测试APP进行退避测试,通过预置的测试工具采集待测试APP的请求日志;基于响应编码集合对请求日志进行退避测试状态分析,得到目标退避测试状态。在本申请方案中,通过初始化退避规则并生成模拟测试用例,系统能够在事先模拟各种异常场景和退避条件,从而提前识别系统在异常情况下的响应机制。这有助于全面测试系统的稳定性和鲁棒性,减少在实际运行过程中出现的不可预测问题。创建模拟请求组和模拟请求接口,以及在待测试APP中嵌入退避规则,有效模拟了实际环境下的操作。这一步骤能够全面考察系统在真实操作中的表现,包括了请求的路径、参数等方面,为系统的全面测试奠定了基础。构建响应编码集合的过程充分利用了退避规则的设计,将退避操作的期望响应数据进行编码,形成响应编码集合。这样一来,在后续测试中,我们可以直观地比对实际响应和期望响应之间的差异,从而更容易发现系统在退避条件下可能存在的问题。通过模拟请求组对待测试APP进行退避测试,结合测试工具采集请求日志,系统能够模拟各种退避条件下的实际运行情况。这一步骤通过模拟真实环境下的异常场景,使得系统的退避机制得到全面的检验,提升了测试的准确性和可靠性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种自适应通用退避测试方法的流程图。
图2为本发明实施例中对每个模拟请求接口进行地址提取的流程图。
图3为本发明实施例中一种自适应通用退避测试系统的示意图。
附图标记:
301、获取模块;302、提取模块;303、嵌入模块;304、编码模块;305、采集模块;306、分析模块。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,图1是本发明实施例的一种自适应通用退避测试方法的流程图,如图1所示,包括以下步骤:
S101、初始化退避规则,根据退避规则生成模拟测试用例;
S102、根据模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址;
S103、基于每个模拟请求接口的接口地址,在预置的待测试APP中嵌入退避规则;
S104、根据退避规则构建响应编码,得到响应编码集合;
S105、通过模拟请求组对待测试APP进行退避测试,通过预置的测试工具采集待测试APP的请求日志;
S106、基于响应编码集合对请求日志进行退避测试状态分析,得到目标退避测试状态。
具体的,初始化退避规则。这一步的目的是通过对系统的异常行为进行规定,明确触发条件、期望的退避操作以及相应的期望响应数据。这些规则将为后续测试提供具体的指导和标准。例如,假设正在测试一个在线支付应用,的退避规则可能包括在网络异常时触发退避操作,期望系统能够暂停支付操作,以防止错误的交易发生。
接下来,根据获取到的退避规则,需要生成模拟测试用例。通过对规则的数据结构进行提取,可以得到模拟测试用例,其中包括了触发条件、期望的退避操作和期望的响应数据。以前述在线支付应用为例,可能的测试用例之一是模拟网络断开连接,期望系统退避支付操作并返回特定的错误信息。
随后,将根据生成的模拟测试用例创建模拟请求组以及多个模拟请求接口。这一步的目的是模拟系统在不同场景下的请求行为。通过对测试用例进行请求参数提取和路径分析,可以创建模拟请求组,并由此得到多个模拟请求接口。这些接口将用于后续的测试中模拟系统的各种请求。在支付应用的例子中,可能创建了一个模拟请求组,包含模拟支付接口、用户信息接口等多个模拟请求接口。
接下来,需要对每个模拟请求接口进行地址提取,得到每个接口的具体地址。这个步骤是为了在后续的嵌入操作中确定代码的具体嵌入位置。通过获取每个接口的地址,可以在系统代码中精确地找到相应的位置,以便后续的退避规则的嵌入。
基于每个模拟请求接口的地址,将在预置的待测试APP中嵌入退避规则。这一步的目的是修改系统代码,使其具备在测试场景中触发退避规则的能力。通过反编译待测试APP,确定代码嵌入的位置集合,并根据每个模拟请求接口的地址对这些位置进行筛选,可以确保退避规则被嵌入到正确的位置。例如,在支付应用中,可能在网络请求的相关代码处嵌入退避规则,以模拟网络异常的发生。
随后,将根据退避规则构建响应编码,得到响应编码集合。这一步的目的是为后续的测试状态分析提供基础数据。通过对退避规则进行模拟运行,可以得到模拟运行日志。从中提取运行异常关键字段,并进行响应编码映射,最终得到响应编码集合。这些编码将作为测试状态分析的依据,用于判断系统在测试中的实际表现是否符合预期。
接下来,通过模拟请求组对待测试APP进行退避测试。通过预置的测试工具,可以采集待测试APP的请求日志,记录系统在测试过程中的各种行为。这包括每个模拟请求接口的请求和响应信息,以及系统的运行状态。例如,在支付应用的测试中,可以模拟用户进行支付操作,触发退避规则,然后通过测试工具采集支付请求的日志信息。
最后,基于响应编码集合,对请求日志进行退避测试状态分析,得到目标退避测试状态。通过提取请求日志中的响应编码,与之前模拟运行得到的响应编码集合进行匹配度分析,可以评估系统的实际表现。这一分析将告诉系统在测试中是否成功触发了退避规则,以及是否生成了期望的响应。例如,可以检查支付应用的请求日志,验证系统在模拟网络异常时是否正确地触发了支付的退避规则,而且返回了预期的错误信息。
通过执行上述步骤,初始化退避规则,根据退避规则生成模拟测试用例;根据模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址;基于每个模拟请求接口的接口地址,在预置的待测试APP中嵌入退避规则;根据退避规则构建响应编码,得到响应编码集合;通过模拟请求组对待测试APP进行退避测试,通过预置的测试工具采集待测试APP的请求日志;基于响应编码集合对请求日志进行退避测试状态分析,得到目标退避测试状态。在本申请方案中,通过初始化退避规则并生成模拟测试用例,系统能够在事先模拟各种异常场景和退避条件,从而提前识别系统在异常情况下的响应机制。这有助于全面测试系统的稳定性和鲁棒性,减少在实际运行过程中出现的不可预测问题。创建模拟请求组和模拟请求接口,以及在待测试APP中嵌入退避规则,有效模拟了实际环境下的操作。这一步骤能够全面考察系统在真实操作中的表现,包括了请求的路径、参数等方面,为系统的全面测试奠定了基础。构建响应编码集合的过程充分利用了退避规则的设计,将退避操作的期望响应数据进行编码,形成响应编码集合。这样一来,在后续测试中,我们可以直观地比对实际响应和期望响应之间的差异,从而更容易发现系统在退避条件下可能存在的问题。通过模拟请求组对待测试APP进行退避测试,结合测试工具采集请求日志,系统能够模拟各种退避条件下的实际运行情况。这一步骤通过模拟真实环境下的异常场景,使得系统的退避机制得到全面的检验,提升了测试的准确性和可靠性。
在一具体实施例中,执行步骤S101的过程可以具体包括如下步骤:
(1)初始化退避规则,对退避规则进行数据结构提取,得到退避规则的目标数据结构,其中,目标数据结构包括:触发条件、退避操作以及期望响应数据;
(2)根据退避规则的数据结构进行测试用例生成,得到模拟测试用例。
具体的,对退避规则进行数据结构提取,以得到规则的目标数据结构。目标数据结构主要包括触发条件、退避操作以及期望响应数据。触发条件定义了何时应该执行退避操作,这可能涉及到各种条件,例如网络连接中断、输入错误等。退避操作则规定了在面对异常情况时应该采取的行动,例如暂停操作、重试等。期望响应数据定义了在退避操作之后应该返回的响应,这有助于验证的正确性。例如,考虑一个在线购物应用,希望规定一个退避规则来应对支付过程中的网络中断。在这种情况下,触发条件可能是网络连接断开,退避操作可能是暂停支付,并返回一个特定的错误消息,期望响应数据就是这个错误消息。接下来,根据退避规则的目标数据结构,进行测试用例的生成。这一步是将退避规则转化为具体的测试场景,以便在后续的测试中使用。通过对规则的数据结构进行提取,可以得到模拟测试用例,其中包括了触发条件、期望的退避操作和期望的响应数据。以在线购物应用为例,的模拟测试用例可能包括以下内容:触发条件为网络连接中断,期望执行暂停支付的退避操作,并返回一个特定的错误消息作为期望响应数据。这个测试用例将模拟用户在支付过程中遇到网络问题的情景,有助于验证在异常情况下是否正确地执行了退避操作。
在一具体实施例中,如图2所示,执行步骤S102的过程可以具体包括如下步骤:
S201、对模拟测试用例进行请求参数提取,得到请求参数集合;
S202、对模拟测试用例进行请求路径分析,得到模拟测试用例对应的请求路径;
S203、基于请求参数集合以及请求路径创建模拟请求组;
S204、通过模拟请求组进行请求接口创建,得到多个模拟请求接口;
S205、对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址。
具体的,首先,对模拟测试用例进行请求参数提取。这一步是为了确定在测试场景中涉及到的各种参数,这些参数将被用于构造请求,模拟系统在特定条件下的行为。以在线购物应用为例,如果的模拟测试用例涉及到支付过程中的网络中断,可能涉及到的请求参数包括订单信息、支付金额等。接着,进行请求路径分析。这一步是为了确定模拟测试用例对应的请求路径,即在系统中执行某个功能所需的路径。在在线购物应用的例子中,如果模拟用户支付时遇到网络中断,请求路径可能涉及到支付接口的路径。基于请求参数集合以及请求路径,创建模拟请求组。这一步是将相关的请求参数和路径组织在一起,形成一个完整的测试场景。这有助于模拟真实用户操作时系统的行为。在支付网络中断的场景中,的模拟请求组可能包括了订单信息、支付金额以及支付接口路径等。通过模拟请求组,进一步进行请求接口的生成。这一步是将模拟请求组转化为具体的请求接口,以便在后续的测试中使用。在支付网络中断的场景中,可能生成了一个支付接口的请求。最后,对每个模拟请求接口进行地址提取。这一步是为了得到每个接口的具体地址,方便后续的操作。在支付网络中断的例子中,可能得到了支付接口的具体地址。
在一具体实施例中,执行步骤S103的过程可以具体包括如下步骤:
(1)对待测试APP进行反编译处理,得到待测试APP对应的代码嵌入位置集合;
(2)基于每个模拟请求接口的接口地址对代码嵌入位置集合进行位置筛选,得到每个模拟请求接口对应的代码嵌入位置;
(3)基于每个模拟请求接口对应的代码嵌入位置以及每个模拟请求接口的接口地址,在待测试APP中嵌入退避规则。
具体的,首先,对待测试APP进行反编译处理。反编译是将已编译的程序代码还原为源代码的过程,目的是获取程序的结构和逻辑。这一步骤可以使用一些专业的反编译工具,例如 jadx、Apktool 等。通过这些工具,可以获取待测试APP对应的源代码。得到源代码后,确定代码中的嵌入位置。这一步骤涉及到代码的分析和位置的定位。对于每个模拟请求接口,找到与之相关的代码位置,这些位置将是嵌入退避规则的目标。基于每个模拟请求接口的接口地址,对代码嵌入位置集合进行位置筛选。这一步是为了从所有的代码中筛选出与模拟请求接口相关的位置,以便后续的嵌入操作。例如,在支付网络中断的场景中,可能筛选与支付接口相关的代码位置。得到每个模拟请求接口对应的代码嵌入位置后,就可以进行嵌入操作。在这个步骤中,将退避规则嵌入到源代码的特定位置,以模拟系统在特定条件下的退避操作。嵌入规则可以采用代码注入的方式,确保在特定的场景触发时,系统能够执行相应的退避操作。举例来说,在支付网络中断的场景中,可能在支付接口相关的代码位置嵌入一段代码,用于模拟在支付过程中网络中断的情况。这段代码可以包括暂停支付操作、记录异常日志等,以便后续的测试和分析。
在一具体实施例中,执行步骤S104步骤的过程可以具体包括如下步骤:
(1)对退避规则进行模拟运行,得到模拟运行日志;
(2)对模拟运行日志进行运行异常关键字段提取,得到多个运行异常关键字段;
(3)对多个运行异常关键字段进行响应编码映射,得到响应编码集合。
具体的,首先初始化退避规则,并对其进行模拟运行。这一过程中,系统将按照设定的触发条件执行相应的退避操作,模拟系统在真实运行环境中可能遇到的异常场景。例如,可以设定一个退避规则,当网络中断时,系统应该暂停相关操作并记录异常信息。进行模拟运行后,得到了模拟运行日志。这个日志包含了系统在模拟运行中的各种操作、事件和异常信息。接下来,需要对模拟运行日志进行分析,提取其中的运行异常关键字段。在分析模拟运行日志时,关注系统在异常情况下的行为,例如异常代码、错误信息、操作暂停等。这些关键字段反映了系统在模拟运行中的异常状态。通过精确定位这些字段,可以更准确地分析系统的响应情况。得到多个运行异常关键字段后,需要将其映射为响应编码集合。这一步是为了将异常信息转化为可分析的数据形式,方便后续的测试状态分析。例如,对于某个特定的异常代码,可以将其映射为一个独特的响应编码,以便在后续的分析中能够统一处理。通过这个过程,建立了模拟运行日志、提取了多个运行异常关键字段,并将其映射为响应编码集合。这为后续的退避测试状态分析提供了数据基础。通过对模拟运行日志的深入分析,可以更全面地了解系统在异常情况下的表现,验证其是否按照预期执行相应的退避操作。
在一具体实施例中,执行步骤S105步骤的过程可以具体包括如下步骤:
(1)通过模拟请求组对待测试APP进行退避测试,对待测试APP进行运行数据采集,得到待测试APP的运行状态数据;
(2)对运行状态数据进行行为数据提取,得到行为数据集合;
(3)基于行为数据集合,通过测试工具采集待测试APP的请求日志。
具体的,首先,建立模拟请求组,其中包含各种模拟测试用例,这些用例对应不同的退避规则。通过模拟请求组,模拟系统在实际运行中可能遇到的各种异常情况,触发退避规则中设定的操作。通过对待测试APP的模拟请求组进行退避测试,收集大量的运行数据。这些数据包括系统在退避测试过程中的各种状态、响应时间、执行结果等信息。接下来,对运行状态数据进行深入的行为数据提取。通过分析运行状态数据,可以确定系统在不同异常场景下的行为,例如系统是继续执行、暂停操作还是进行重试。这些行为数据是理解系统对异常的处理方式的重要依据。基于行为数据集合,通过测试工具采集待测试APP的请求日志。测试工具记录系统在模拟请求组中的每个测试用例下的具体操作和响应,包括请求的参数、返回的数据、执行时间等详细信息。这样的请求日志为后续的分析提供具体而详尽的数据基础。通过这一连贯的流程,通过模拟请求组进行退避测试,收集待测试APP的运行状态数据,并提取相关的行为数据。测试工具采集的请求日志则为提供对系统实时反馈的详细记录。这个过程不仅帮助验证系统在异常情况下的表现,还为后续的分析提供大量可供挖掘的数据。例如,可能在请求日志中发现系统在特定异常情况下的响应时间明显增加,或者某些请求返回不符合预期的数据。这些数据将成为后续分析的关键因素,帮助深入理解系统的退避机制是否按照设计预期运行,以及在特定异常情况下系统的稳定性和可靠性如何。
在一具体实施例中,执行步骤S106的过程可以具体包括如下步骤:
(1)对请求日志进行响应编码提取,得到请求日志对应的实时响应编码集合;
(2)对响应编码集合以及实时响应编码集合进行匹配度分析,得到目标匹配度数据;
(3)基于目标匹配度数据对请求日志进行退避测试状态分析,得到目标退避测试状态。
需要说明的是,首先从已采集的请求日志中提取了响应编码,形成了请求日志对应的实时响应编码集合。这个实时响应编码集合反映了系统在每个测试用例下的具体响应情况,包括了请求的成功、失败,或者其他可能的状态。这一步骤为提供了请求日志中关键信息的提取和整理。接着,对实时响应编码集合进行了匹配度分析。这个分析旨在比较实际响应和预期响应之间的差异,确定系统是否按照退避规则中设定的预期响应进行了正确的行为。通过匹配度分析,可以识别系统在异常情况下可能存在的问题,例如未能正确触发退避操作、没有按照期望响应数据进行处理等。匹配度分析得到的目标匹配度数据是对系统在异常情况下表现的一种量化指标。这些数据可以帮助理解系统的退避机制是否符合设计预期,是否足够灵活和鲁棒以应对各种异常情况。例如,如果某个测试用例下的实时响应编码与预期响应编码完全匹配,说明系统能够正确地执行退避规则,保障系统的稳定性。基于目标匹配度数据,进行了进一步的退避测试状态分析。这个分析阶段考察系统在整个退避测试过程中的整体表现,而不仅仅是单个测试用例的响应。通过对匹配度数据的汇总和整合,可以得到目标退避测试状态,即系统在退避测试中的整体效果。这一连贯的流程充分利用了采集到的数据,从提取实时响应编码开始,通过匹配度分析到目标退避测试状态的得出,形成了一个完整的分析链条。这个过程中的每个步骤都为提供了对系统性能和鲁棒性的深入认识,使能够准确评估系统在异常情况下的表现。例如,通过匹配度分析,可能发现某些测试用例下的实际响应与预期相差较大,这可能提示系统在特定场景下退避规则的设计存在问题,需要进行进一步的优化。
本发明实施例还提供了一种自适应通用退避测试系统,如图3所示,该一种自适应通用退避测试系统具体包括:
获取模块301,用于初始化退避规则,根据所述退避规则生成模拟测试用例;
提取模块302,用于根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址;
嵌入模块303,用于基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则;
编码模块304,用于根据所述退避规则构建响应编码,得到响应编码集合;
采集模块305,用于对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志;
分析模块306,用于基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
通过上述各个模块的协同工作,初始化退避规则,根据退避规则生成模拟测试用例;根据模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个模拟请求接口进行地址提取,得到每个模拟请求接口的接口地址;基于每个模拟请求接口的接口地址,在预置的待测试APP中嵌入退避规则;根据退避规则构建响应编码,得到响应编码集合;通过模拟请求组对待测试APP进行退避测试,通过预置的测试工具采集待测试APP的请求日志;基于响应编码集合对请求日志进行退避测试状态分析,得到目标退避测试状态。在本申请方案中,通过初始化退避规则并生成模拟测试用例,系统能够在事先模拟各种异常场景和退避条件,从而提前识别系统在异常情况下的响应机制。这有助于全面测试系统的稳定性和鲁棒性,减少在实际运行过程中出现的不可预测问题。创建模拟请求组和模拟请求接口,以及在待测试APP中嵌入退避规则,有效模拟了实际环境下的操作。这一步骤能够全面考察系统在真实操作中的表现,包括了请求的路径、参数等方面,为系统的全面测试奠定了基础。构建响应编码集合的过程充分利用了退避规则的设计,将退避操作的期望响应数据进行编码,形成响应编码集合。这样一来,在后续测试中,我们可以直观地比对实际响应和期望响应之间的差异,从而更容易发现系统在退避条件下可能存在的问题。通过模拟请求组对待测试APP进行退避测试,结合测试工具采集请求日志,系统能够模拟各种退避条件下的实际运行情况。这一步骤通过模拟真实环境下的异常场景,使得系统的退避机制得到全面的检验,提升了测试的准确性和可靠性。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种自适应通用退避测试方法,其特征在于,包括:
初始化退避规则,根据所述退避规则生成模拟测试用例;
根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址;
基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则;
根据所述退避规则构建响应编码,得到响应编码集合;
通过所述模拟请求组对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志;
基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
2.根据权利要求1所述的自适应通用退避测试方法,其特征在于,所述初始化退避规则,根据所述退避规则生成模拟测试用例步骤,包括:
获取所述退避规则,对所述退避规则进行数据结构提取,得到所述退避规则的目标数据结构,其中,所述目标数据结构包括:触发条件、退避操作以及期望响应数据;
根据所述退避规则的数据结构进行测试用例生成,得到所述模拟测试用例。
3.根据权利要求1所述的自适应通用退避测试方法,其特征在于,所述根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址步骤,包括:
对所述模拟测试用例进行请求参数提取,得到请求参数集合;
对所述模拟测试用例进行请求路径分析,得到所述模拟测试用例对应的请求路径;
基于所述请求参数集合以及所述请求路径创建所述模拟请求组;
通过所述模拟请求组进行请求接口创建,得到多个所述模拟请求接口;
对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址。
4.根据权利要求1所述的自适应通用退避测试方法,其特征在于,所述基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则步骤,包括:
对所述待测试APP进行反编译处理,得到所述待测试APP对应的代码嵌入位置集合;
基于每个所述模拟请求接口的接口地址对所述代码嵌入位置集合进行位置筛选,得到每个所述模拟请求接口对应的代码嵌入位置;
基于每个所述模拟请求接口对应的代码嵌入位置以及每个所述模拟请求接口的接口地址,在所述待测试APP中嵌入所述退避规则。
5.根据权利要求1所述的自适应通用退避测试方法,其特征在于,所述根据所述退避规则构建响应编码,得到响应编码集合步骤,包括:
对所述退避规则进行模拟运行,得到模拟运行日志;
对所述模拟运行日志进行运行异常关键字段提取,得到多个运行异常关键字段;
对多个所述运行异常关键字段进行响应编码映射,得到响应编码集合。
6.根据权利要求1所述的自适应通用退避测试方法,其特征在于,所述通过所述模拟请求组对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志步骤,包括:
通过所述模拟请求组对所述待测试APP进行退避测试,对所述待测试APP进行运行数据采集,得到所述待测试APP的运行状态数据;
对所述运行状态数据进行行为数据提取,得到行为数据集合;
基于所述行为数据集合,通过所述测试工具采集所述待测试APP的请求日志。
7.根据权利要求6所述的自适应通用退避测试方法,其特征在于,所述基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态步骤,包括:
对所述请求日志进行响应编码提取,得到所述请求日志对应的实时响应编码集合;
对所述响应编码集合以及所述实时响应编码集合进行匹配度分析,得到目标匹配度数据;
基于所述目标匹配度数据对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
8.一种自适应通用退避测试系统,用以执行如权利要求1至7任一项所述的自适应通用退避测试方法,其特征在于,包括:
获取模块,用于初始化退避规则,根据所述退避规则生成模拟测试用例;
提取模块,用于根据所述模拟测试用例创建模拟请求组以及多个模拟请求接口,对每个所述模拟请求接口进行地址提取,得到每个所述模拟请求接口的接口地址;
嵌入模块,用于基于每个所述模拟请求接口的接口地址,在预置的待测试APP中嵌入所述退避规则;
编码模块,用于根据所述退避规则构建响应编码,得到响应编码集合;
采集模块,用于对所述待测试APP进行退避测试,通过预置的测试工具采集所述待测试APP的请求日志;
分析模块,用于基于所述响应编码集合对所述请求日志进行退避测试状态分析,得到目标退避测试状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311755314.8A CN117435507A (zh) | 2023-12-20 | 2023-12-20 | 自适应通用退避测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311755314.8A CN117435507A (zh) | 2023-12-20 | 2023-12-20 | 自适应通用退避测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435507A true CN117435507A (zh) | 2024-01-23 |
Family
ID=89553877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311755314.8A Pending CN117435507A (zh) | 2023-12-20 | 2023-12-20 | 自适应通用退避测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435507A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027816A1 (en) * | 2013-08-26 | 2015-03-05 | Tencent Technology (Shenzhen) Company Limited | Devices and methods for acquiring abnormal information |
CN110688313A (zh) * | 2019-09-26 | 2020-01-14 | 天津津航计算技术研究所 | 一种VxWorks操作系统下软件测试的故障注入方法 |
CN111949531A (zh) * | 2020-08-10 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 区块链网络的测试方法、装置、介质及电子设备 |
CN112269744A (zh) * | 2020-10-30 | 2021-01-26 | 深圳壹账通智能科技有限公司 | 系统异常测试方法、装置、计算机设备和存储介质 |
CN112416739A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 测试方法、装置以及电子设备 |
CN113138929A (zh) * | 2021-05-12 | 2021-07-20 | 平安国际智慧城市科技股份有限公司 | 分布式接口测试方法、装置、电子设备及存储介质 |
CN115658482A (zh) * | 2022-10-14 | 2023-01-31 | 北京奥星贝斯科技有限公司 | 数据库测试方法及装置、电子设备及计算机可读存储介质 |
CN116155771A (zh) * | 2021-11-19 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 网络异常测试方法、装置、设备、存储介质和程序 |
CN117076301A (zh) * | 2023-08-16 | 2023-11-17 | 平安银行股份有限公司 | 系统性能测试方法、装置及电子设备 |
CN117251354A (zh) * | 2022-06-09 | 2023-12-19 | 财付通支付科技有限公司 | 应用于区块链系统的异常测试方法、装置和计算机设备 |
-
2023
- 2023-12-20 CN CN202311755314.8A patent/CN117435507A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027816A1 (en) * | 2013-08-26 | 2015-03-05 | Tencent Technology (Shenzhen) Company Limited | Devices and methods for acquiring abnormal information |
CN112416739A (zh) * | 2019-08-23 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 测试方法、装置以及电子设备 |
CN110688313A (zh) * | 2019-09-26 | 2020-01-14 | 天津津航计算技术研究所 | 一种VxWorks操作系统下软件测试的故障注入方法 |
CN111949531A (zh) * | 2020-08-10 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 区块链网络的测试方法、装置、介质及电子设备 |
CN112269744A (zh) * | 2020-10-30 | 2021-01-26 | 深圳壹账通智能科技有限公司 | 系统异常测试方法、装置、计算机设备和存储介质 |
CN113138929A (zh) * | 2021-05-12 | 2021-07-20 | 平安国际智慧城市科技股份有限公司 | 分布式接口测试方法、装置、电子设备及存储介质 |
CN116155771A (zh) * | 2021-11-19 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 网络异常测试方法、装置、设备、存储介质和程序 |
CN117251354A (zh) * | 2022-06-09 | 2023-12-19 | 财付通支付科技有限公司 | 应用于区块链系统的异常测试方法、装置和计算机设备 |
CN115658482A (zh) * | 2022-10-14 | 2023-01-31 | 北京奥星贝斯科技有限公司 | 数据库测试方法及装置、电子设备及计算机可读存储介质 |
CN117076301A (zh) * | 2023-08-16 | 2023-11-17 | 平安银行股份有限公司 | 系统性能测试方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101132560B1 (ko) | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 | |
CN110262972B (zh) | 一种面向微服务应用的失效测试工具及方法 | |
US9122671B2 (en) | System and method for grammar based test planning | |
Jee et al. | Automated test case generation for FBD programs implementing reactor protection system software | |
US7398511B2 (en) | System and method for providing a health model for software | |
CN103562923A (zh) | 应用程序安全测试 | |
US20120159250A1 (en) | Compatibility testing using traces, linear temporal rules, and behavioral models | |
Wu et al. | Mutation testing for ethereum smart contract | |
CN104699617A (zh) | 一种游戏用自动化测试方法 | |
EP3514680B1 (en) | Identification of changes in functional behavior and runtime behavior of a system during maintenance cycles | |
CN110287700A (zh) | 一种iOS应用安全分析方法及装置 | |
CN117076301A (zh) | 系统性能测试方法、装置及电子设备 | |
Hao et al. | Usage-based statistical testing of web applications | |
CN115422865B (zh) | 仿真方法及装置、计算设备、计算机可读存储介质 | |
CN117435507A (zh) | 自适应通用退避测试方法及系统 | |
US20050149809A1 (en) | Real time determination of application problems, using a lightweight diagnostic tracer | |
CN115129495A (zh) | 故障处理方法、装置、终端设备及计算机可读存储介质 | |
CN115357902A (zh) | 一种面向区块链系统的模糊测试方法 | |
CN113868137A (zh) | 埋点数据的处理方法、装置、系统和服务器 | |
CN109918297B (zh) | 一种终端模糊测试方法及装置 | |
CN113032260A (zh) | 基于组件化分布式系统的故障注入仿真测试方法及系统 | |
Chren | Towards multi-layered reliability analysis in smart grids | |
CN113886165B (zh) | 一种固件诊断功能的验证方法、装置、设备及可读介质 | |
CN109271306A (zh) | 基于故障注入的寿命试验方法、装置、设备及介质 | |
CN111651346B (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 |