CN117609076A - 基于动态网关的模拟测试方法、装置、设备及存储介质 - Google Patents
基于动态网关的模拟测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117609076A CN117609076A CN202311649518.3A CN202311649518A CN117609076A CN 117609076 A CN117609076 A CN 117609076A CN 202311649518 A CN202311649518 A CN 202311649518A CN 117609076 A CN117609076 A CN 117609076A
- Authority
- CN
- China
- Prior art keywords
- response
- test request
- test
- micro
- service
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 80
- 238000010998 test method Methods 0.000 title claims abstract description 32
- 238000012360 testing method Methods 0.000 claims abstract description 260
- 230000004044 response Effects 0.000 claims abstract description 257
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000013515 script Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 43
- 238000012546 transfer Methods 0.000 claims description 12
- 239000002699 waste material Substances 0.000 abstract description 7
- 238000013522 software testing Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/3696—Methods or tools to render software testable
-
- 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
-
- 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
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种基于动态网关的模拟测试方法、装置、设备及存储介质,涉及软件测试技术领域。该方法包括:获取客户端发送的测试请求,并根据测试请求得到指示信息;在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。本申请的方法,解决了模拟测试工具部署于本地服务器,导致模拟测试工具的资源浪费、性能低和应用场景单一,以至业务流程测试效率低的问题。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种基于动态网关的模拟测试方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的业务都通过计算机程序实现,相应的,电信业务运营平台上部署的服务和接口也越来越多,反应在软件开发过程中,业务流程测试也就变得更加复杂。现阶段,业务流程测试依靠接口间的调用来实现,由于完整的业务流程包含的接口数量多,且功能复杂,导致任何一个接口调用出现阻塞问题,都会对业务的整体进度造成影响。模拟(Mock)测试工具能够很好的解决这个问题。在测试过程中,Mock测试工具创建一个虚拟的Mock对象来模拟跨部门、跨中心或跨企业的难以调用的外围系统,并做出符合预期的响应,以使业务流程测试顺利流转进行。
然而,现有的Mock测试工具部署于本地服务器,导致Mock测试工具的资源浪费、性能低和应用场景单一,进而导致业务流程测试效率低。
发明内容
本申请提供一种基于动态网关的模拟测试方法、装置、设备及存储介质,用以解决Mock测试工具部署于本地服务器,导致Mock测试工具的资源浪费、性能低和应用场景单一,以至业务流程测试效率低的问题。
第一方面,本申请提供一种基于动态网关的模拟测试方法,该方法包括:
获取客户端发送的测试请求,并根据测试请求得到指示信息,其中,指示信息用于指示测试请求是否需要实现业务逻辑功能;
在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应,其中,微服务响应为超文本传输安全协议响应,服务端包括多个任务服务器,目标任务服务器是多个任务服务器中,测试请求对应的任务服务器;
在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应,其中,模拟响应为超文本传输安全协议响应;
将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。
在一种可能的设计中,在指示信息指示测试请求需要实现业务逻辑功能时,根据测试请求,以及预存的脚本,生成模拟响应。
在一种可能的设计中,在目标任务服务器生成微服务响应成功时,从目标任务服务器得到微服务响应。
在一种可能的设计中,模拟响应和微服务响应均包括响应头和响应体。
在一种可能的设计中,该方法应用于模拟测试工具,模拟测试工具部署于反向代理服务器;
获取客户端发送的测试请求,并根据测试请求得到指示信息之前,该方法还包括:
初始化反向代理服务器,并预加载脚本。
在一种可能的设计中,获取客户端发送的测试请求,并根据测试请求得到指示信息,包括:
获取客户端发送的测试请求,对测试请求进行访问权限检查;
在测试请求通过访问权限检查时,根据测试请求得到指示信息。
在一种可能的设计中,将微服务响应或模拟响应发送至客户端之后,该方法还包括:
对模拟测试进行日志记录。
第二方面,本申请提供一种基于动态网关的模拟测试装置,该装置包括:
测试请求获取模块,用于获取客户端发送的测试请求,并根据测试请求得到指示信息,其中,指示信息用于指示测试请求是否需要实现业务逻辑功能;
微服务响应模块,用于在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应,其中,微服务响应为超文本传输安全协议响应,服务端包括多个任务服务器,目标任务服务器是多个任务服务器中,测试请求对应的任务服务器;
模拟响应模块,用于在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应,其中,模拟响应为超文本传输安全协议响应;
响应发送模块,用于将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。
第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,用于实现如权利要求1至7任一项的基于动态网关的模拟测试方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时,用于实现如权利要求1至7任一项的基于动态网关的模拟测试方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,用于实现第一方面发明内容的基于动态网关的模拟测试方法。
本申请提供的一种基于动态网关的模拟测试方法、装置、设备及存储介质,通过获取客户端发送的测试请求,并根据测试请求得到指示信息;从而在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;并在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;进而将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。实现了如下技术效果:通过让服务端多个任务服务器在生成微服务响应失败时,都能通过同一个部署于代理服务器上的Mock测试工具来生成相应的Mock响应,避免了在服务端多个任务服务器上分别独立部署Mock测试工具而造成的Mock测试工具资源浪费、性能低和应用场景单一的问题,进而解决了由此所造成的业务流程测试效率低的问题;通过检查测试指示信息中有没有包含测试人员添加的判断标识,在指示信息中不包含判断标识时,将测试请求发送至服务端的目标任务服务器,然后在目标任务服务器生成微服务响应失败时,再根据测试请求,以及预存的脚本,生成Mock响应,避免了在服务端的一些业务服务器具备响应能力时,所有的测试请求仍全部都通过Mock测试工具生成响应,由于Mock测试工具的模拟对象不可避免的可能无法完美地模拟实际依赖,而造成的测试覆盖率不够充分,以及无法测试实际依赖的性能和稳定性的问题;通过使Mock响应对应于HTTPS请求,也同样为和HTTPS微服务响应一致的HTTPS响应,避免了Mock响应与目标任务服务器生成的微服务响应不一致的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的基于动态网关的模拟测试方法的系统架构示意图;
图2为本申请实施例提供的基于动态网关的模拟测试方法的应用场景框架图;
图3为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图一;
图4为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图二;
图5为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图三;
图6为本申请实施例提供的基于动态网关的模拟测试装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
附图标记:
110-反向代理服务器;111-数据库;112-数据访问接口;113-业务处理模块;
210-客户端;220-服务端;
300-基于动态网关的模拟测试装置;310-测试请求获取模块;320-微服务响应模块;330-模拟响应模块;340-响应发送模块;
400-电子设备;410-处理器;420-存储器;430-通信部件;440-总线。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的一种基于动态网关的模拟测试方法仅作为示例,一种基于动态网关的模拟测试方法还可以包括更多或更少的内容。
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
模拟(Mock)测试:是指在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS):是以安全为目标的HTTP通道,使用了适当的加密包和服务器证书,内置于浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果,作用是建立一个信息安全通道,来保证数据传输的安全以及确认网站的真实性。
业务逻辑功能:是指服务端的业务服务器原则上应该具备的功能,它并不依赖于业务服务器的存在,而是先于业务服务器存在,并限制了业务服务器应有的行为。在本申请的实施例中,需要实现业务逻辑功能具体是指,当业务流程测试需要用到服务端的目标任务服务器的某项功能,而该目标任务服务器当前还不具备该项功能时,可由Mock测试工具直接生成具有该功能的Mock响应,并将该Mock响应发送回客户端,以使业务流程测试顺利流转进行。
随着电信业务运营平台的发展壮大,其部署的服务和接口与日俱增,业务流程测试也就变得更加复杂。目前,业务流程测试主要依靠接口间的调用来实现,因为完整的业务流程包含的接口数量很多,而且功能复杂,所以导致其中任何一个接口的调用出现阻塞问题,都会拖慢业务的整体进度。虽然Mock测试工具可以解决这个问题,但部署于本地服务器的Mock测试工具还是存在着资源浪费、性能低和应用场景单一的问题,并会导致业务流程测试效率低下。
基于此,本申请实施例提供一种基于动态网关的模拟测试方法、装置、设备及存储介质,可用于软件测试技术领域,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的基于动态网关的模拟测试方法的系统架构示意图。需要注意的是,图1所示仅为可以应用本申请实施例的系统架构的示例,以帮助本领域技术人员理解本申请的技术内容,但并不意味着本申请实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该方法所在的系统架构为反向代理服务器110,反向代理服务器110代理服务端业务系统内的多个业务服务器,反向代理服务器110包括:数据库111、数据访问接口112和业务处理模块113。其中:
数据库111包括各种类型的数据库,用于存储、管理数据,为模拟测试提供支持,存储着用于Mock测试的脚本,测试完成后的日志记录也存储于数据库中。
数据访问接口112用于对数据库111中的数据进行访问、分析和调用。
业务处理模块113用于判断是否将测试请求发送至服务端的任务服务器,在测试请求需要实现业务逻辑功能或服务端的任务服务器生成微服务响应失败时,根据测试请求和数据库中的脚本生成Mock响应。
图2为本申请实施例提供的基于动态网关的模拟测试方法的应用场景框架图。
如图2所示,该方法所在的应用场景框架包括:反向代理服务器110、多个客户端210和多个服务端220。反向代理服务器110可以分别与每个客户端210和每个服务端220通过有线或无线通信链路连接。反向代理服务器110以代理服务器的方式接收客户端210向服务端220发送的测试请求。客户端210可以实现为多个终端设备上搭载的客户端210,反向代理服务器110可以与多个客户端210交互,并通过网站应用级入侵防御系统(WebApplication Firewall,WAF)对客户端210发送的HTTPS测试请求实时监测和进行分析,识别并阻止潜在的攻击行为。通过对测试请求进行访问权限检查,根据特定的攻击模式、恶意软件行为或异常请求进行匹配,从而保护服务端220的多个任务服务器的安全。Mock测试工具部署于反向代理服务器110,服务端220的多个任务服务器共用一个Mock测试工具,Mock测试工具能够根据测试请求生成相应的Mock响应。
图3为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图一。部署于反向代理服务器的Mock测试工具可以与多个客户端进行交互,并可以同时处理多个客户端同时提交的多个测试请求,其中,处理每个测试请求的方法彼此相同,本实施例就处理其中一个测试请求的方法进行详细说明。如图3所示,该方法包括:
S101、获取客户端发送的测试请求,并根据测试请求得到指示信息;
具体来说,反向代理服务器接收客户端向服务端发送的HTTPS测试请求,并检查该请求中的具体信息,尤其是检查测试指示信息中有没有包含测试人员添加的判断标识,要是指示信息中具有判断标识,表明该测试请求需要用到服务端与该测试请求对应的目标任务服务器的某项特定的功能,但该目标任务服务器当前还不具备该项功能,无法实现该测试请求需要的业务逻辑功能。因此客户端需要的服务响应内容就需要直接通过部署于反向代理服务器的Mock测试工具来生成。
S102、在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;
具体来说,在指示信息中并没有包含测试人员添加的判断标识时,则需要将该HTTPS测试请求发送至服务端与该HTTPS测试请求对应的目标任务服务器,通过目标任务服务器来生成相应的微服务响应。在服务端业务系统中有多个任务服务器,目标任务服务器就是这多个任务服务器中,与该HTTPS测试请求所对应的任务服务器。相应的,该目标任务服务器根据该HTTPS测试请求生成相应的HTTPS微服务响应。
S103、在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;
具体来说,在目标任务服务器无法根据HTTPS测试请求生成相应的HTTPS微服务响应,即生成HTTPS微服务响应失败时,则需要部署于反向代理服务器的Mock测试工具,来根据HTTPS测试请求和存储于数据库中的脚本,生成相应的Mock响应,Mock响应对应于HTTPS请求,为HTTPS响应。
这种微服务响应失败的情形可能是由于网络断开、网络阻塞、网络不稳定、网速过慢或网络注册时系统繁忙等网络原因造成的,也可能是由于系统问题,如系统资源过低,无法为程序提供足够的资源来处理目标任务服务器信息导致的,还可能是设备不稳定,如网线松动、接口没插好或目标任务服务器感染了恶意软件,如计算机病毒或计算机木马等原因造成的,甚至可能仅是因为目标任务服务器上搭载的系统程序开发未完成才无法完成响应。这些情形下,都可以通过Mock测试工具来生成相应的Mock响应,以使业务流程测试顺利流转进行。当然,还有很多种情形都会导致服务端的目标任务服务器生成响应失败,这里不再穷尽列举,不管何种原因导致的目标任务服务器响应失败,都可通过反向代理服务器上部署的Mock测试工具来生成Mock响应。
存储于数据库中的脚本是测试人员根据测试请求提前写好的,可以是使用轻量级的lua脚本语言编写的脚本,其具有体积小、内存占用少、启动和运行速度快的特点,可以很方便地嵌入到其他程序中。使用lua脚本语言编写的脚本,使得程序部署简单,无需重复编写功能模块,而且响应速度快且性能消耗低。
S104、将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容;
具体来说,反向代理服务器在获取服务端目标任务服务器生成的HTTPS微服务响应或Mock测试工具生成的相应的HTTPS响应之后,还需要将任一种生成的响应发送至客户端,客户端浏览器根据生成的响应,得到对应的服务响应内容。
本实施例提供的一种基于动态网关的模拟测试方法,通过获取客户端发送的测试请求,并根据测试请求得到指示信息;从而在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;并在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;进而将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。实现了如下技术效果:通过让服务端多个任务服务器在生成微服务响应失败时,都能通过同一个部署于代理服务器上的Mock测试工具来生成相应的Mock响应,避免了在服务端多个任务服务器上分别独立部署Mock测试工具而造成的Mock测试工具资源浪费、性能低和应用场景单一的问题,进而解决了由此所造成的业务流程测试效率低的问题;通过检查测试指示信息中有没有包含测试人员添加的判断标识,在指示信息中不包含判断标识时,将测试请求发送至服务端的目标任务服务器,然后在目标任务服务器生成微服务响应失败时,再根据测试请求,以及预存的脚本,生成Mock响应,避免了在服务端的一些业务服务器具备响应能力时,所有的测试请求仍全部都通过Mock测试工具生成响应,由于Mock测试工具的模拟对象不可避免的可能无法完美地模拟实际依赖,而造成的测试覆盖率不够充分,以及无法测试实际依赖的性能和稳定性的问题;通过使Mock响应对应于HTTPS请求,也同样为和HTTPS微服务响应一致的HTTPS响应,避免了Mock响应与目标任务服务器生成的微服务响应不一致的问题。
图4为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图二。在一种可能的示例中,如图4所示,本实施例在图3实施例的基础上,对在获取客户端发送的测试请求之前的测试准备工作、以及对测试请求需要进行访问权限检查和测试完成后的日志记录阶段进行详细说明。如图4所示,该方法包括:
S201、初始化反向代理服务器,并预加载脚本;
具体来说,在动态网管初始化之前,先在反向代理服务器上部署数据库、数据访问接口以及包括Mock测试工具的业务处理模块。其中,数据库中包含了用于生成Mock响应的脚本和反向代理服务器启动时的一些定时任务。然后在开始测试之前,通过初始化反向代理服务器,可以提高反向代理服务器的响应速度,并使其保持稳定运行,让内存资源得到充分利用,提高用户体验。通过预加载脚本,还可以减少测试请求的响应时间。
S202、获取客户端发送的测试请求,对测试请求进行访问权限检查;
具体来说,在获取客户端发送的测试请求后,首先需要对该请求的访问权限进行检查,具体可在各种预先定义的组中,根据用户的身份标识及其成员身份来限制客户端请求访问某些信息项或获取某些响应,或通过配置文件来对访问权限进行限制。在本实施例中,反向代理服务器通过对客户端发送的测试请求进行访问权限检查,来识别并阻止潜在的攻击行为。
S203、在测试请求通过访问权限检查时,根据测试请求得到指示信息;
具体来说,在测试请求通过了访问权限检查时,即可对该测试请求进行进一步的处理,比如根据测试请求来获取指示信息等。若是测试请求没有通过访问权限检查,则无需再进行进一步的处理。
S204、在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;
S205、在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;
S206、将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容;
S204-S206与S102-S104类似,本实施例不再赘述。
S207、对模拟测试进行日志记录;
具体来说,对Mock测试进行日志记录,包括记录客户端的请求访问数量和平均响应时间等事项。以便于后续测试人员对该日志进行导出,进行检查。
在一种可能的设计中,在指示信息指示测试请求需要实现业务逻辑功能时,根据测试请求,以及预存的脚本,生成模拟响应。也就是说,在指示信息中包含了测试人员添加的判断标识,指示该测试请求仅需要实现业务逻辑功能,而无需将该测试请求发送至服务端的目标任务服务器时,部署于反向代理服务器的Mock测试工具根据测试请求和脚本,直接生成Mock响应。从而避免了在明知目标任务服务器未开发完成,或其他任何不具备响应条件的情况时,仍将该测试请求发送至服务端的目标任务服务器,在其响应失败后,再通过Mock测试工具生成Mock响应,所造成的测试流程冗余,以及测试效率低下的问题。
在一种可能的设计中,在目标任务服务器生成微服务响应成功时,从目标任务服务器得到微服务响应。也就是说,在目标任务服务器根据HTTPS测试请求生成了相应的HTTPS微服务响应,即生成HTTPS微服务响应成功时,部署于反向代理服务器的Mock测试工具,无需再根据HTTPS测试请求和存储于数据库中的脚本,生成相应的Mock响应。反向代理服务器只需要从该目标任务服务器获取该HTTPS微服务响应即可,避免了在服务端的一些业务服务器具备响应能力时,所有的测试请求仍全部都通过Mock测试工具生成响应,而造成的测试覆盖率不够充分,以及无法测试实际依赖的性能和稳定性的问题。
在一种可能的设计中,模拟响应和微服务响应均包括响应头和响应体。在反向代理服务器将微服务响应和Mock响应发送至客户端之后,需要客户端浏览器对响应头和响应体进行处理,来得到服务响应内容。
图5为本申请实施例提供的基于动态网关的模拟测试方法的流程示意图三。本实施例对在不同情形下的测试请求处理流程进行详细说明。如图5所示,该方法包括:
S301、判断指示信息是否包含判断标识;
若否,执行S302;若是,执行S304;
具体来说,反向代理服务器接收到客户端发送的测试请求之后,先判断指示信息中是否包含判断标识,若包含,则直接通过Mock测试工具生成Mock响应;若不包含,则将该请求发送到服务端的目标任务服务器。
S302、将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;
具体来说,在指示信息不包含判断标识的情形下,需要将该测试请求发送到服务端与该测试请求对应的目标任务服务器,以便于通过目标任务服务器生成相应的微服务响应。
S303、判断目标任务服务器是否生成微服务响应;
若否,执行S304;若是,执行S305;
具体来说,若是目标任务服务器生成微服务响应,则反向代理服务器从服务端该目标任务服务器获取所生成的微服务响应;若是目标任务服务器没有生成微服务响应,则通过Mock测试工具生成Mock响应。
S304、根据测试请求,以及预存的脚本,生成模拟响应;
具体来说,部署于反向代理服务器的Mock测试工具,根据测试请求,以及预存的脚本,生成相应的Mock响应。
S305、将生成的模拟响应或从服务端目标任务服务器获取的微服务响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容;
具体来说,反向代理服务器在获取服务端目标任务服务器生成的HTTPS微服务响应或Mock测试工具生成的相应的HTTPS响应之后,还需要将任一种生成的响应发送至客户端,客户端浏览器根据生成的响应,得到对应的服务响应内容。
本实施例提供的一种基于动态网关的模拟测试方法,通过获取客户端发送的测试请求,并根据测试请求得到指示信息;从而在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应;并在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应;进而将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。实现了如下技术效果:通过让服务端多个任务服务器在生成微服务响应失败时,都能通过同一个部署于代理服务器上的Mock测试工具来生成相应的Mock响应,避免了在服务端多个任务服务器上分别独立部署Mock测试工具而造成的Mock测试工具资源浪费、性能低和应用场景单一的问题,进而解决了由此所造成的业务流程测试效率低的问题;通过检查测试指示信息中有没有包含测试人员添加的判断标识,在指示信息中不包含判断标识时,将测试请求发送至服务端的目标任务服务器,然后在目标任务服务器生成微服务响应失败时,再根据测试请求,以及预存的脚本,生成Mock响应,避免了在服务端的一些业务服务器具备响应能力时,所有的测试请求仍全部都通过Mock测试工具生成响应,由于Mock测试工具的模拟对象不可避免的可能无法完美地模拟实际依赖,而造成的测试覆盖率不够充分,以及无法测试实际依赖的性能和稳定性的问题;通过使Mock响应对应于HTTPS请求,也同样为和HTTPS微服务响应一致的HTTPS响应,避免了Mock响应与目标任务服务器生成的微服务响应不一致的问题;通过在指示信息指示测试请求需要实现业务逻辑功能时,由部署于反向代理服务器的Mock测试工具根据测试请求和脚本,直接生成Mock响应,解决了在明知目标任务服务器未开发完成,或其他任何不具备响应条件的情况时,仍将该测试请求发送至服务端的目标任务服务器,在其响应失败后,再通过Mock测试工具生成Mock响应,所造成的测试流程冗余,以及测试效率低下的问题;通过在获取客户端发送的测试请求后,首先对该请求的访问权限进行检查,识别并阻止了潜在的攻击行为,进而保护了服务端多个任务服务器的安全。
本发明实施例可以根据上述方法示例对电子设备或主控设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图6为本申请实施例提供的基于动态网关的模拟测试装置的结构示意图。如图6所示,该基于动态网关的模拟测试装置300,包括:
测试请求获取模块310,微服务响应模块320,模拟响应模块330,响应发送模块340;
测试请求获取模块310,用于获取客户端发送的测试请求,并根据测试请求得到指示信息,其中,指示信息用于指示测试请求是否需要实现业务逻辑功能;
微服务响应模块320,用于在指示信息指示测试请求不需要实现业务逻辑功能时,将测试请求发送至服务端的目标任务服务器,以便于目标任务服务器生成微服务响应,其中,微服务响应为超文本传输安全协议响应,服务端包括多个任务服务器,目标任务服务器是多个任务服务器中,测试请求对应的任务服务器;
模拟响应模块330,用于在目标任务服务器生成微服务响应失败时,根据测试请求,以及预存的脚本,生成模拟响应,其中,模拟响应为超文本传输安全协议响应;
响应发送模块340,用于将微服务响应或模拟响应发送至客户端,以便于客户端根据微服务响应或模拟响应,得到服务响应内容。
在一种可能的设计中,模拟响应模块330,还用于在指示信息指示测试请求需要实现业务逻辑功能时,根据测试请求,以及预存的脚本,生成模拟响应。
在一种可能的设计中,微服务响应模块320,还用于在目标任务服务器生成微服务响应成功时,从目标任务服务器得到微服务响应。
在一种可能的设计中,模拟响应和微服务响应均包括响应头和响应体。
在一种可能的设计中,该装置应用于模拟测试工具,模拟测试工具部署于反向代理服务器;
基于动态网关的模拟测试装置300,还包括:初始化模块;
初始化模块,用于初始化反向代理服务器,并预加载脚本。
在一种可能的设计中,测试请求获取模块310,包括:访问权限检查模块和指示信息获取模块;
访问权限检查模块,用于获取客户端发送的测试请求,对测试请求进行访问权限检查;
指示信息获取模块,用于在测试请求通过访问权限检查时,根据测试请求得到指示信息。
在一种可能的设计中,基于动态网关的模拟测试装置300,还包括:日志记录模块;
日志记录模块,用于对模拟测试进行日志记录。
本实施例提供的一种基于动态网关的模拟测试装置,可执行上述实施例的基于动态网关的模拟测试方法,其实现原理和技术效果类似,本实施例此处不再赘述。
在前述的一种基于动态网关的模拟测试装置的具体实现中,各模块可以被实现为处理器,处理器可以执行存储器中存储的计算机执行指令,使得处理器执行上述一种基于动态网关的模拟测试方法。
图7为本申请实施例提供的电子设备的结构示意图。如图7所示,该电子设备400包括:至少一个处理器410和存储器420。该电子设备400还包括通信部件430。其中,处理器410、存储器420以及通信部件430通过总线440连接。
在具体实现过程中,至少一个处理器410执行存储器420存储的计算机执行指令,使得至少一个处理器410执行如上电子设备侧所执行的一种基于动态网关的模拟测试方法。
处理器410的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述针对电子设备以及主控设备所实现的功能,对本发明实施例提供的方案进行了介绍。可以理解的是,电子设备或主控设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,用于实现如上一种基于动态网关的模拟测试方法。
上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于电子设备或主控设备中。
本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
至此,已经结合附图所示的优选实施方式描述了本申请的技术方案,但是,本领域技术人员容易理解的是,本申请的保护范围显然不局限于这些具体实施方式,以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于动态网关的模拟测试方法,其特征在于,所述方法包括:
获取客户端发送的测试请求,并根据所述测试请求得到指示信息,其中,所述指示信息用于指示所述测试请求是否需要实现业务逻辑功能;
在所述指示信息指示所述测试请求不需要实现所述业务逻辑功能时,将所述测试请求发送至服务端的目标任务服务器,以便于所述目标任务服务器生成微服务响应,其中,所述微服务响应为超文本传输安全协议响应,所述服务端包括多个任务服务器,所述目标任务服务器是所述多个任务服务器中,所述测试请求对应的任务服务器;
在所述目标任务服务器生成所述微服务响应失败时,根据所述测试请求,以及预存的脚本,生成模拟响应,其中,所述模拟响应为所述超文本传输安全协议响应;
将所述微服务响应或所述模拟响应发送至所述客户端,以便于所述客户端根据所述微服务响应或所述模拟响应,得到服务响应内容。
2.根据权利要求1所述的方法,其特征在于,在所述指示信息指示所述测试请求需要实现所述业务逻辑功能时,根据所述测试请求,以及所述预存的脚本,生成所述模拟响应。
3.根据权利要求1所述的方法,其特征在于,在所述目标任务服务器生成所述微服务响应成功时,从所述目标任务服务器得到所述微服务响应。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述模拟响应和所述微服务响应均包括响应头和响应体。
5.根据权利要求4所述的方法,其特征在于,所述方法应用于模拟测试工具,所述模拟测试工具部署于反向代理服务器;
所述获取客户端发送的测试请求,并根据所述测试请求得到指示信息之前,所述方法还包括:
初始化所述反向代理服务器,并预加载所述脚本。
6.根据权利要求5所述的方法,其特征在于,所述获取客户端发送的测试请求,并根据所述测试请求得到指示信息,包括:
获取所述客户端发送的测试请求,对所述测试请求进行访问权限检查;
在所述测试请求通过所述访问权限检查时,根据所述测试请求得到所述指示信息。
7.根据权利要求6所述的方法,其特征在于,所述将所述微服务响应或所述模拟响应发送至所述客户端之后,所述方法还包括:
对模拟测试进行日志记录。
8.一种基于动态网关的模拟测试装置,其特征在于,所述装置包括:
测试请求获取模块,用于获取客户端发送的测试请求,并根据所述测试请求得到指示信息,其中,所述指示信息用于指示所述测试请求是否需要实现业务逻辑功能;
微服务响应模块,用于在所述指示信息指示所述测试请求不需要实现所述业务逻辑功能时,将所述测试请求发送至服务端的目标任务服务器,以便于所述目标任务服务器生成微服务响应,其中,所述微服务响应为超文本传输安全协议响应,所述服务端包括多个任务服务器,所述目标任务服务器是所述多个任务服务器中,所述测试请求对应的任务服务器;
模拟响应模块,用于在所述目标任务服务器生成所述微服务响应失败时,根据所述测试请求,以及预存的脚本,生成模拟响应,其中,所述模拟响应为所述超文本传输安全协议响应;
响应发送模块,用于将所述微服务响应或所述模拟响应发送至所述客户端,以便于所述客户端根据所述微服务响应或所述模拟响应,得到服务响应内容。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,用于实现如权利要求1至7任一项所述的基于动态网关的模拟测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,用于实现如权利要求1至7任一项所述的基于动态网关的模拟测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649518.3A CN117609076A (zh) | 2023-12-04 | 2023-12-04 | 基于动态网关的模拟测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649518.3A CN117609076A (zh) | 2023-12-04 | 2023-12-04 | 基于动态网关的模拟测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609076A true CN117609076A (zh) | 2024-02-27 |
Family
ID=89951426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311649518.3A Pending CN117609076A (zh) | 2023-12-04 | 2023-12-04 | 基于动态网关的模拟测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609076A (zh) |
-
2023
- 2023-12-04 CN CN202311649518.3A patent/CN117609076A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106856434B (zh) | 访问请求转换的方法和装置 | |
CN114008994B (zh) | 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统 | |
KR101691245B1 (ko) | 웹 서비스 모니터링 시스템 및 방법 | |
US10305962B1 (en) | Unit testing clients of web services | |
CN101223562A (zh) | 使html浏览器及扩展对已知的易受攻击性免疫 | |
CN112491776B (zh) | 安全认证方法及相关设备 | |
CN111866124B (zh) | 访问网页页面的方法、装置、服务器和机器可读存储介质 | |
WO2015178896A1 (en) | Point-wise protection of application using runtime agent and dynamic security analysis | |
CN111431753A (zh) | 一种资产信息更新方法、装置、设备及存储介质 | |
CN108924159B (zh) | 一种报文特征识别库的验证方法与装置 | |
CN111949531A (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN110875899A (zh) | 数据处理方法、系统以及网络系统 | |
CN116318983A (zh) | 一种网络攻击仿真方法、系统、电子设备及可读存储介质 | |
CN110968400B (zh) | 应用程序的执行方法、装置、计算机设备和存储介质 | |
US11392700B1 (en) | System and method for supporting cross-platform data verification | |
CN117032894A (zh) | 容器安全状态检测方法、装置、电子设备及存储介质 | |
CN114785621B (zh) | 漏洞检测方法、装置、电子设备及计算机可读存储介质 | |
CN117609076A (zh) | 基于动态网关的模拟测试方法、装置、设备及存储介质 | |
CN114257632B (zh) | 断线重连的方法、装置、电子设备及可读存储介质 | |
CN113485930B (zh) | 业务流程验证方法、装置、计算机系统和可读存储介质 | |
CN113419952B (zh) | 云服务管理场景测试装置与方法 | |
CN114745185A (zh) | 集群访问方法及装置 | |
CN109409090B (zh) | 网站后台检测方法、装置及服务器 | |
US20220255808A1 (en) | Methods, systems, and computer readable media for establishing dynamic agent associations in a cloud computing environment | |
CN110995756B (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 |