CN114817063A - 模拟测试方法、设备及存储介质 - Google Patents
模拟测试方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114817063A CN114817063A CN202210534404.3A CN202210534404A CN114817063A CN 114817063 A CN114817063 A CN 114817063A CN 202210534404 A CN202210534404 A CN 202210534404A CN 114817063 A CN114817063 A CN 114817063A
- Authority
- CN
- China
- Prior art keywords
- simulation
- information
- function
- simulated
- simulation information
- 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 320
- 238000010998 test method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 175
- 238000012360 testing method Methods 0.000 claims abstract description 105
- 238000012544 monitoring process Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000000694 effects Effects 0.000 claims abstract description 23
- 238000004806 packaging method and process Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 135
- 230000004044 response Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 9
- 244000035744 Hura crepitans Species 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 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
- 239000012634 fragment Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种模拟测试方法、设备及存储介质。该方法包括:接收测试页面输入的模拟信息请求,模拟信息请求携带模拟信息,模拟信息包括需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;根据模拟信息对提供模拟功能的工程对应的信息进行设置;将提供模拟功能的工程的代码进行打包操作,并拷贝至服务器地址对应的服务器;将动态跟踪监控工具挂载至应用名对应的应用的进程上,监控方法名对应的方法是否被执行;触发需要模拟的接口的模拟功能生效;将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,使测试人员根据测试页面展示的模拟信息进行项目测试,无需修改需要模拟的接口的代码,提高了测试效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种模拟测试方法、设备及存储介质。
背景技术
模拟(mock)测试技术是指以某种方式模拟某个服务接口的返回,从而使得该接口的返回以自定义的返回内容代替原有的返回内容。
在***开发过程中,为保障***能够正常运行,需要对***进行测试。但是通常待测试的***在进行逻辑处理的过程中需要调用其他接口,而调用的接口存在未开发完毕或接口***出现异常的情况,此时可对调用的接口进行模拟以完成待测试***的测试。
现有技术对被调用的接口进行模拟时,需要开发人员修改接口的代码并重新部署应用以满足测试需求,测试效率较低。
发明内容
本申请提供一种模拟测试方法、设备及存储介质,用以解决现有技术对被调用的接口进行模拟,测试效率较低的问题。
第一方面,本申请提供一种模拟测试方法,包括:
接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;
根据模拟信息对提供模拟功能的工程对应的信息进行设置;
将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器;
将动态跟踪监控工具挂载至应用名对应的应用的进程上,以监控方法名对应的方法是否被执行;
触发需要模拟的接口的模拟功能生效;
将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,以使测试人员根据测试页面展示的功能生效的模拟信息进行项目测试。
在一种可能的实现方式中,触发需要模拟的接口的模拟功能生效之后,还包括:
若动态跟踪监控工具监控方法名对应的方法被执行,则方法响应模拟信息中包含的响应内容。
在一种可能的实现方式中,根据模拟信息对提供模拟功能的工程对应的信息进行设置,包括:
根据模拟信息,对提供模拟功能的工程中提供模拟功能的源文件的内容进行设置。
在一种可能的实现方式中,根据模拟信息,对提供模拟功能的工程中提供模拟功能的源文件的内容进行设置,包括:
利用正则表达式将模拟信息中包含的方法所属类名、需要模拟的方法名及响应内容替换提供模拟功能的源文件中对应的内容。
在一种可能的实现方式中,根据模拟信息对提供模拟功能的工程对应的信息进行设置之前,还包括:
保存提供模拟功能的工程对应的代码。
在一种可能的实现方式中,模拟测试方法还包括:
接收卸载模拟的请求,对模拟信息进行逻辑删除以使需要模拟的接口响应初始内容,初始内容为需要模拟的接口进行模拟前的响应内容。
在一种可能的实现方式中,对模拟信息进行逻辑删除以使需要模拟的接口响应被进行模拟前的内容之前,还包括:
卸载挂载至应用进程上的动态跟踪监控工具。
在一种可能的实现方式中,接收卸载模拟的请求,对模拟信息进行逻辑删除以使需要模拟的接口响应初始内容之后,还包括:
将数据库中功能生效的模拟信息发送至测试页面,以更新测试页面展示的模拟信息。
第二方面,本申请提供一种模拟测试设备,包括:
接收模块,用于接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;
处理模块,用于根据模拟信息对提供模拟功能的工程对应的信息进行设置;将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器;将动态跟踪监控工具挂载至应用名对应的应用的进程上,以监控方法名对应的方法是否被执行;触发需要模拟的接口的模拟功能生效;将功能生效的模拟信息保存至数据库;
发送模块,用于将功能生效的模拟信息发送至测试页面,以使测试人员根据测试页面展示的功能生效的模拟信息进行项目测试。
第三方面,本申请提供一种模拟测试设备,包括:处理器、存储器,存储器中存储代码,处理器运行存储器中存储的代码,以执行如第一方面中任一项的模拟测试方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项的模拟测试方法。
本申请提供一种模拟测试方法、设备及存储介质,该方法包括:接收测试页面输入的模拟信息请求,其中模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及及需要模拟的方法名。根据模拟信息对提供模拟功能的工程对应的信息进行设置。提供模拟功能的工程对应的信息设置完毕后,将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器。将动态跟踪监控工具挂载至应用名对应的应用的进程上,触发需要模拟的接口的模拟功能生效,此时动态跟踪监控工具会监控方法名对应的方法是否被执行。将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,测试人员可以根据测试页面展示的功能生效的模拟信息进行项目测试。当动态跟踪监控工具监控到方法名对应的方法被执行时,需要模拟的接口返回响应内容,无需修改需要模拟的接口代码,有效提高了测试效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种模拟测试方法流程图一;
图2为本申请实施例提供的一种模拟测试方法流程图二;
图3为本申请实施例提供的一种模拟信息示意图;
图4为本申请实施例提供的一种卸载模拟功能的方法流程图;
图5为本申请实施例提供的一种模拟测试设备示意图一;
图6为本申请实施例提供的一种模拟测试设备示意图二。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
JVM(Java Virtual Machine,Java虚拟机):是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
沙箱(Sandbox):是一个虚拟***程序,允许在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。
面向切面编程(Aspect Oriented Programming,AOP):是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
Maven:是一个项目管理及自动构建工具,基于项目对象模型(Project ObjectModel,POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
在***开发过程中,为保障***能够正常运行,需要对***进行测试。一般情况下,对***进行测试需要对***的多个接口进行测试,待测试的接口在进行逻辑处理的过程中需要调用其他接口。当调用的接口未开发完毕或出现故障时,可对调用的接口进行模拟以完成待测试***的测试。
举例而言,对接口B1进行测试时,由于接口B1内部调用了接口D1,接口D1因未开发完毕或***异常导致不可用,此时需要对接口D1进行模拟,使得接口B1在调用接口D1时能够返回特定的内容,从而接口B1能够继续正常执行完成自身的逻辑处理。
在另一种场景下,测试人员需要测试某些特定场景,需要对相关接口进行模拟。举例而言,测试人员需要测试接口C1的用户注册特定场景,而用户注册这一特定场景的实现需要调用查询接口D2,查询该用户是否已存在,此时需要对查询接口D2进行模拟,令查询接口D2返回“没有该用户”,从而使接口C1继续执行自身逻辑,完成用户注册。
现有对被调用的接口进行模拟时,需要开发人员修改接口的代码并重新部署应用以满足测试需求,导致测试效率较低。
本申请提供一种模拟测试方法,接收测试页面输入的模拟信息请求,该模拟信息请求中携带模拟信息,模拟信息包括需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名。根据模拟信息对提供模拟功能的工程对应的信息进行设置后,将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器。将动态跟踪监控工具挂载至应用名对应的应用的进程上,触发需要模拟的接口的模拟功能生效。当动态跟踪监控工具监控到方法名对应的方法被执行时,需要模拟的接口返回指定的响应内容,无需修改需要模拟的接口代码,有效提高了测试效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种模拟测试方法流程图一,本实施例的方法可以由模拟测试设备执行,可以通过硬件、软件、或者硬件和软件相结合的方式实现。如图1所示,本申请提供的方法可以包括:
S101:接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名。
应用即服务,可以为独立部署的工程,比如用户服务、售后服务、产品服务等。方法为应用代码中的函数。
接口是web(World Wide Web,全球广域网)***将某个功能提供给外部调用的一种方式。
模拟信息为需要模拟的接口的相关信息,包含需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名外,还可以包括方法所属类名及响应内容。其中,方法所属类名可用于确定需要模拟的方法,响应内容为需要模拟的接口指定的返回内容。
S102:根据模拟信息对提供模拟功能的工程对应的信息进行设置。
工程为代码工程,具体的,代码工程是将代码源文件及配置文件等按照一定约定保存在一个目录下,对该目录进行操作后即可实现服务的部署。提供模拟功能的工程可以是一个集成了jvm-sanbox包的maven工程,包含提供模拟功能代码的源文件。
提供模拟功能的工程中也包含应用名及方法名等信息。在一种实施场景下,可以根据模拟信息对提供模拟功能的工程中提供模拟功能的源文件内容进行设置。举例而言,将模拟信息中包含的需要模拟的方法名替换掉源文件中对应的方法名信息。
S103:将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器。
可以通过执行工程打包命令对提供模拟功能的工程对应的代码进行打包操作。
在一种实施场景下,可将提供模拟功能的代码进行打包操作,生成jar报,将jar包远程拷贝至服务器地址对应的服务器。该服务器为需要模拟的接口所属应用所在的服务器。
S104:将动态跟踪监控工具挂载至应用名对应的应用的进程上,以监控方法名对应的方法是否被执行。
在一种实施场景下,可以根据应用的进程号,实现将动态跟踪监控工具挂载至该进程号对应的进程。
动态跟踪监控工具为监控应用的方法是否被执行的工具,可以是沙箱jvm-sanbox,也可以是btrace工具,本申请对此不做限制。
S105:触发需要模拟的接口的模拟功能生效。
在一种实施场景下,可以基于动态跟踪工具挂载的应用名对应进程的进程号,执行模拟功能生效命令,以触发需要模拟的接口的模拟功能生效。
当触发需要模拟的接口的模拟功能生效后,需要模拟的接口的响应内容为模拟信息中的响应内容,动态跟踪监控工具开始监控方法名对应的方法是否被执行。
在一种实施场景下,若动态跟踪监控工具监控方法名对应的方法被执行,则方法响应模拟信息中包含的响应内容。方法名对应的方法即需要模拟的方法。
S106:将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,以使测试人员根据测试页面展示的功能生效的模拟信息进行项目测试。
数据库中的模拟信息包括功能生效的模拟信息以及功能无效的模拟信息。功能生效的模拟信息即指能够响应指定内容的信息。功能无效的模拟信息不具备模拟功能,即无法响应指定的内容。
在一种实施场景下,当接收到测试页面发送的查询模拟信息的请求后,将功能功效的模拟信息发送至测试页面。其中,测试页面展示的功能生效的模拟信息可以通过列表的形式进行展示。
测试页面展示的功能生效的模拟信息可以包括:应用名、方法所属类名、及需要模拟的方法名等信息。
本申请实施例提供一种模拟测试方法,接收测试页面输入的模拟信息请求,其中模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名。根据模拟信息可以对提供模拟功能的工程对应的信息进行设置。提供模拟功能的工程对应的信息设置完毕后,将提供模拟功能的工程进行打包操作,并拷贝至服务器地址对应的服务器。将动态跟踪监控工具挂载至应用名对应的应用的进程上,触发需要模拟的接口的模拟功能生效,此时动态跟踪监控工具可监控需要模拟的方法是否被执行。当方法被执行时,方法即可响应模拟信息中的响应内容。本申请提供的方法可以根据模拟信息对提供模拟功能的工程对应的信息进行设置,并通过动态跟踪监控工具监控模拟的方法是否被执行。当方法执行时即可响应模拟信息中的响应内容,无需修改需要模拟的接口的代码,无需重启需要模拟的接口所属的应用,从而提高了测试效率。
在上述实施例的基础上,下面提供一个具体的实施例,对模拟测试方法的过程进行描述。
图2为本申请实施例提供的一种模拟测试方法流程图二,本申请提供的方法可以由模拟测试设备执行,具体如下:
S201:接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名。
在一种实施场景下,可以通过测试人员在测试页面输入模拟信息,并点击“注入模拟”按钮,实现测试页面向模拟测试设备发送模拟信息请求。
如图3所示,模拟信息还可以包括方法所属类名及响应内容,其中,方法所属类名可用于确定需要模拟的方法,响应内容则为需要模拟的接口指定的返回内容。
S202:保存提供模拟功能的工程对应的代码。
在一种实施场景下,提供模拟功能的工程可以是一个集成了jvm-sanbox包的maven工程,其整体架构如下所示:
其中,ServiceMethodMockerModule.java文件为源文件,定义了提供模拟功能的代码。
S203:根据模拟信息,对提供模拟功能的工程中提供模拟功能的源文件的内容进行设置。
在一种实施场景下,可以利用正则表达式将模拟信息中包含的方法所属类名、需要模拟的方法名及响应内容替换提供模拟功能的源文件中对应的内容。
举例而言,提供模拟功能的源文件为ServiceMethodMockerModule.java文件,该文件中包含onclass、onBehavior、result的内容。若模拟信息中包含的方法所属类名为cn.how2j.trend.kcard-admin.Auth,则将源文件中onclass的内容设置为cn.how2j.trend.kcard-admin.Auth;若模拟信息中包含的方法名为checkUserMsg,则将源文件中onBehavior的内容设置为checkUserMsg;同理,若模拟信息中包含的响应内容为{"code":"1000","msg":"true"},则将源文件中result的内容设置为{"code":"1000","msg":"true"}。
S204:将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器。
在一种实施场景下,通过执行工程打包命令将提供模拟功能的工程对应的代码打包成jar包,将jar包远程拷贝至服务器地址对应服务器的~/.sandbox-module目录下。该服务器为需要模拟的接口所属应用所在的服务器。
举例而言,若模拟信息中包含的服务器地址为130.54.3.129,将jar包远程拷贝至服务器的命令可以是:scp target/mock.jar [email protected]:~/.sandbox-module/。
S205:将动态跟踪监控工具挂载至应用名对应的应用的进程上,以监控方法名对应的方法是否被执行。
动态跟踪监控工具为监控需要模拟的方法是否被执行的工具,可以是沙箱jvm-sanbox,也可以是btrace工具。其中沙箱是一个AOP(Aspect Oriented Programming,面向切面编程)解决方案工具,可以在不重启、不侵入目标JVM(Java Virtual Machine,Java虚拟机)应用的前提下,对进程中的程序进行操作。
在一种实施场景下,应用名为kcard-admin,挂载命令可以为ps-ef|grep-i_kcard-admin|awk'{print$2}'|./sandbox.sh-p,其中,ps-ef获得所有进程信息,grep–i_kcard-admin筛选出含kcard-admin应用的进程,awk'{print$2}'获得进程信息中的进程号,./sandbox.sh-p则将沙箱挂载到指定进程号所对应的进程上。
S206:触发需要模拟的接口的模拟功能生效。
在一种实施场景下,若动态跟踪监控工具挂载至应用名对应的应用的进程号为64229,那么触发模拟功能生效的命令是:./sandbox.sh-p 64229-d'service-method-mocker/beginMock'。
触发需要模拟的接口的模拟功能生效后,需要模拟的接口的响应内容为模拟信息中的响应内容,即对需要模拟的接口完成模拟,此时动态跟踪监控工具会监控方法是否被执行。
在一种实施场景下,被监控的方法为checkUserMsg,当该方法被执行时,会触发AdviceListener中声明的方法逻辑的处理。举例而言,由于在源文件中的AdviceListener中声明了afterReturning方法,表示当checkUserMsg方法被执行时,在它返回响应内容时,使用afterReturning中定义的内容代替checkUserMsg方法初始的响应内容返回给调用者。afterReturning中定义的内容即模拟信息中包含的响应内容。
需要说明的是,将动态跟踪监控工具挂载至应用名对应的应用的进程上以及触发需要模拟的接口的模拟功能生效均作用于需要模拟的接口应用所在的服务器。
S207:将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,以使测试人员根据测试页面展示的功能生效的模拟信息进行项目测试。
在一种实施场景下,测试页面展示的功能生效的模拟信息可以通过列表的形式进行展示,如表1所示,测试页面展示的功能生效的模拟信息可以包括:应用名、方法所属类名、需要模拟的方法名、响应内容以及操作。
表1模拟信息列表
其中,操作中显示“卸载模拟”,当测试人员点击该按钮后,会对与“卸载模拟”对应的模拟信息进行逻辑删除,使需要模拟的接口响应初始内容。
本申请提供一种模拟测试方法,接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名。保存提供模拟功能的工程对应的代,并根据模拟信息对提供模拟功能的工程中源文件的内容进行设置。当提供模拟功能的工程中源文件的内容设置完毕后,将提供模拟功能的代码进行打包操作,并拷贝至服务器地址对应的服务器。将动态跟踪监控工具挂载至应用名对应的应用的进程上,当触发需要模拟的接口的模拟功能生效后,动态跟踪监控工具可监控方法名对应的方法是否被执行。当方法被执行时,方法即可响应模拟信息中的响应内容。将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至测试页面,使测试人员根据测试页面展示的功能生效的模拟信息进行项目测试。本申请提供的方法通过动态跟踪监控工具监控模拟的方法是否被执行,当方法执行时即可响应模拟信息中设定的响应内容,无需修改需要模拟的接口的代码,无需重启需要模拟的接口所属的应用,从而提高了测试效率。
当需要模拟的接口即调用接口的模拟功能生效后,测试人员可以对待测接口进行测试。当调用接口所属***接收到待测接口发送的HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求时,由于HTTP请求中包含调用接口的统一资源定位符,因此调用接口所属***根据调用接口的统一资源定位符,可以将该HTTP请求分配至该调用接口。此时,动态跟踪工具监控到调用接口对应的方法被执行,调用接口则返回响应内容至待测接口,待测接口即可继续执行自身逻辑,完成测试。
在上述实施例的基础上,下面提供一个实施例,对测试过程完成后,卸载模拟功能的过程进行详细描述。
图4为本申请实施例提供的一种卸载模拟功能的方法流程图,本申请提供的方法可以由模拟功能设备执行,具体如下:
S401:接收卸载模拟的请求,对模拟信息进行逻辑删除以使需要模拟的接口响应初始内容,初始内容为需要模拟的接口进行模拟前的响应内容。
当对待测接口或前端页面进行测试完毕后,可以对模拟功能进行逻辑删除以使需要模拟的接口响应初始内容。在一种实施场景下,可以通过用户在测试页面展示的功能生效的模拟信息中,选择需要卸载的模拟功能,通过点击“卸载模拟”按钮实现对模拟信息的逻辑删除。对模拟信息进行逻辑删除即将该模拟信息的状态标记为无效。
现有将需要模拟的接口恢复被模拟前的内容,需要开发人员修改其代码,效率较低,同时由于将需要模拟的接口代码修改为初始代码会存在遗漏情况,导致出现问题的概率较大。本申请提供的方法将模拟信息进行逻辑删除即可实现需要模拟的接口响应初始内容,效率较高,同时降低了出现故障的概率。
由于待测接口或前端页面已经测试完毕,无需动态跟踪监控工具监控需要模拟的方法是否被执行,因此在对模拟信息进行逻辑删除之前,可卸载挂载至应用进程上的动态跟踪监控工具。
S402:将数据库中功能生效的模拟信息发送至测试页面,以更新测试页面展示的模拟信息。
数据库中保存有功能生效的模拟信息以及功能无效的模拟信息,功能无效的模拟信息不具备模拟功能,因此只需将数据库中有效的模拟信息发送至测试页面,测试人员可根据测试页面展示的功能生效的模拟信息进行后续测试。
本申请实施例提供一种卸载模拟功能的方法,接收卸载模拟的请求,对模拟信息进行逻辑删除,使需要模拟的接口响应初始内容,初始内容为需要模拟的接口进行模拟前的响应内容。对模拟信息进行逻辑删除后,将数据库中功能生效的模拟信息发送至测试页面,更新测试页面展示的模拟信息便于测试人员进行后续测试。本申请提供的方法通过对模拟功能进行逻辑删除即可实现需要模拟的接口响应被模拟前的响应内容,无需将需要模拟的接口代码修改为初始代码,提高了卸载模拟功能的效率与灵活性,并降低了需要模拟的接口出现故障的概率。
图5为本申请实施例提供的一种模拟测试设备示意图一。如图5所示,本申请实施例提供一种模拟测试设备500,可以包括接收模块501、处理模块502及发送模块503。
接收模块501,用于接收测试页面输入的模拟信息请求,模拟信息请求中携带模拟信息,模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;
处理模块502,用于根据模拟信息对提供模拟功能的工程对应的信息进行设置;将提供模拟功能的工程对应的代码进行打包操作,并拷贝至服务器地址对应的服务器;将动态跟踪监控工具挂载至应用名对应的应用的进程上,以监控方法名对应的方法是否被执行;触发需要模拟的接口的模拟功能生效;将功能生效的模拟信息保存至数据库;
发送模块503,用于将功能生效的模拟信息发送至测试页面,以使测试人员根据测试页面展示的有效的模拟信息进行项目测试。
本实施例的设备,可用于执行如图1所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
图6为本申请实施例提供的一种模拟测试设备示意图二。如图6所示,本申请实施例提供一种模拟测试设备600包括处理器601和存储器602,其中,处理器601、存储器602通过总线603连接。
在具体实现过程中,存储器602中存储代码,处理器601运行存储器602中存储的代码,以执行上述方法实施例的模拟测试方法。
处理器601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图6所示的实施例中,应理解,处理器601可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线603可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线603可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线603并不限定仅有一根总线或一种类型的总线。
本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述方法实施例的模拟测试方法。
上述的计算机可读存储介质,可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述本申请实施例中任意实施例提供的模拟测试方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种模拟测试方法,其特征在于,包括:
接收测试页面输入的模拟信息请求,所述模拟信息请求中携带模拟信息,所述模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;
根据所述模拟信息对提供模拟功能的工程对应的信息进行设置;
将所述提供模拟功能的工程对应的代码进行打包操作,并拷贝至所述服务器地址对应的服务器;
将动态跟踪监控工具挂载至所述应用名对应的应用的进程上,以监控所述方法名对应的方法是否被执行;
触发所述需要模拟的接口的模拟功能生效;
将功能生效的模拟信息保存至数据库,并将功能生效的模拟信息发送至所述测试页面,以使测试人员根据所述测试页面展示的功能生效的模拟信息进行项目测试。
2.根据权利要求1所述的方法,其特征在于,所述模拟信息还包括:响应内容;所述触发所述需要模拟的接口的模拟功能生效之后,还包括:
若所述动态跟踪监控工具监控所述方法名对应的方法被执行,则所述方法响应所述模拟信息中包含的响应内容。
3.根据权利要求2所述的方法,其特征在于,所述根据所述模拟信息对提供模拟功能的工程对应的信息进行设置,包括:
根据所述模拟信息,对所述提供模拟功能的工程中提供模拟功能的源文件的内容进行设置。
4.根据权利要求3所述的方法,其特征在于,所述根据所述模拟信息,对所述提供模拟功能的工程中提供模拟功能的源文件的内容进行设置,包括:
利用正则表达式将所述模拟信息中包含的所述方法所属类名、所述需要模拟的方法名及所述响应内容替换所述提供模拟功能的源文件中对应的内容。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述模拟信息对提供模拟功能的工程对应的信息进行设置之前,还包括:
保存所述提供模拟功能的工程对应的代码。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收卸载模拟的请求,对所述模拟信息进行逻辑删除以使所述需要模拟的接口响应初始内容,所述初始内容为所述需要模拟的接口进行模拟前的响应内容。
7.根据权利要求6所述的方法,其特征在于,所述对所述模拟信息进行逻辑删除以使所述需要模拟的接口响应被进行模拟前的内容之前,还包括:
卸载挂载至所述应用进程上的所述动态跟踪监控工具。
8.根据权利要求6或7所述的方法,其特征在于,所述接收卸载模拟的请求,对所述模拟信息进行逻辑删除以使所述需要模拟的接口响应初始内容之后,还包括:
将所述数据库中功能生效的模拟信息发送至所述测试页面,以更新所述测试页面展示的模拟信息。
9.一种模拟测试设备,其特征在于,包括:
接收模块,用于接收测试页面输入的模拟信息请求,所述模拟信息请求中携带模拟信息,所述模拟信息包括:需要模拟的接口所属应用所在的服务器地址、应用名及需要模拟的方法名;
处理模块,用于根据所述模拟信息对提供模拟功能的工程对应的信息进行设置;将所述提供模拟功能的工程对应的代码进行打包操作,并拷贝至所述服务器地址对应的服务器;将动态跟踪监控工具挂载至所述应用名对应的应用的进程上,以监控所述方法名对应的方法是否被执行;触发所述需要模拟的接口的模拟功能生效;将功能生效的模拟信息保存至数据库;
发送模块,用于将功能生效的模拟信息发送至所述测试页面,以使测试人员根据所述测试页面展示的功能生效的模拟信息进行项目测试。
10.一种模拟测试设备,包括:处理器、存储器,所述存储器中存储代码,所述处理器运行所述存储器中存储的代码,以执行如权利要求1-8中任一项所述的模拟测试方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-8任一项所述的模拟测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534404.3A CN114817063A (zh) | 2022-05-17 | 2022-05-17 | 模拟测试方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534404.3A CN114817063A (zh) | 2022-05-17 | 2022-05-17 | 模拟测试方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817063A true CN114817063A (zh) | 2022-07-29 |
Family
ID=82515807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210534404.3A Pending CN114817063A (zh) | 2022-05-17 | 2022-05-17 | 模拟测试方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817063A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282436A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Testing a software interface for a streaming hardware device |
US20170300402A1 (en) * | 2016-04-19 | 2017-10-19 | Sap Se | Mock server and extensions for application testing |
CN108600311A (zh) * | 2018-03-21 | 2018-09-28 | 浙江口碑网络技术有限公司 | 客户端模拟接口数据的方法及装置 |
CN109753430A (zh) * | 2018-12-19 | 2019-05-14 | 莱诺斯科技(北京)股份有限公司 | 一种地面数据处理***的接口测试方法 |
CN113590465A (zh) * | 2021-06-28 | 2021-11-02 | 四川新网银行股份有限公司 | 一种基于SDK自动生成mock服务的方法 |
CN114371982A (zh) * | 2020-10-14 | 2022-04-19 | ***通信有限公司研究院 | 一种模拟测试方法、装置、设备及可读存储介质 |
-
2022
- 2022-05-17 CN CN202210534404.3A patent/CN114817063A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282436A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Testing a software interface for a streaming hardware device |
US20170300402A1 (en) * | 2016-04-19 | 2017-10-19 | Sap Se | Mock server and extensions for application testing |
CN108600311A (zh) * | 2018-03-21 | 2018-09-28 | 浙江口碑网络技术有限公司 | 客户端模拟接口数据的方法及装置 |
CN109753430A (zh) * | 2018-12-19 | 2019-05-14 | 莱诺斯科技(北京)股份有限公司 | 一种地面数据处理***的接口测试方法 |
CN114371982A (zh) * | 2020-10-14 | 2022-04-19 | ***通信有限公司研究院 | 一种模拟测试方法、装置、设备及可读存储介质 |
CN113590465A (zh) * | 2021-06-28 | 2021-11-02 | 四川新网银行股份有限公司 | 一种基于SDK自动生成mock服务的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844136B (zh) | 一种程序崩溃信息的收集方法及*** | |
Herder et al. | Construction of a highly dependable operating system | |
US9015702B2 (en) | Determining compatibility of an application with different versions of an operating system | |
US6839892B2 (en) | Operating system debugger extensions for hypervisor debugging | |
CN102402427B (zh) | 一种Java应用程序的更新方法及装置 | |
US11385993B2 (en) | Dynamic integration of command line utilities | |
CN109656773B (zh) | 一种基于ios***应用异常崩溃的处理框架 | |
US7913265B2 (en) | Method of loading software with an intermediate object oriented language in a portable device | |
Buchacker et al. | Framework for testing the fault-tolerance of systems including OS and network aspects | |
US8539506B2 (en) | Dynamic injection of code into running process | |
US20100082929A1 (en) | Memory protection method, information processing apparatus, and computer-readable storage medium that stores memory protection program | |
CN107665302B (zh) | 一种Android应用多开实现方法、移动终端及存储介质 | |
CN109634648B (zh) | 一种快速切换sdk网络接口环境的方法及装置 | |
US20070083792A1 (en) | System and method for error detection and reporting | |
CN102955714A (zh) | 实现动态模拟远程接口的装置及方法 | |
CN112214388A (zh) | 内存监控方法、装置、设备及计算机可读存储介质 | |
CN108228266B (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN113867834A (zh) | 调试插件调用方法、装置及计算机可读存储介质 | |
CN112764836A (zh) | 运行快应用的方法、装置及电子设备 | |
CN114817063A (zh) | 模拟测试方法、设备及存储介质 | |
CN115185847A (zh) | 一种故障测试方法、装置、存储介质及电子设备 | |
CN113938527A (zh) | Api网关的扩展处理方法、计算设备及存储介质 | |
CN111367796A (zh) | 应用程序调试方法及装置 | |
Kudrjavets et al. | When malloc () Never Returns NULL—Reliability as an Illusion | |
CN110928569A (zh) | 一种通信设备Live Update功能实现的方法 |
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 |