CN115248768A - 测试方法和装置 - Google Patents
测试方法和装置 Download PDFInfo
- Publication number
- CN115248768A CN115248768A CN202110456872.9A CN202110456872A CN115248768A CN 115248768 A CN115248768 A CN 115248768A CN 202110456872 A CN202110456872 A CN 202110456872A CN 115248768 A CN115248768 A CN 115248768A
- Authority
- CN
- China
- Prior art keywords
- rule
- template
- rule template
- parameter
- matched
- 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
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/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
Abstract
本公开的实施例公开了测试方法和测试装置。该方法的具体实施方式包括:接收被测系统发送的用于调用依赖服务的接口名、方法、入参;根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;从所述规则模板集合中查找与所述入参匹配的规则模板;若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;将所述出参返回给所述被测系统。该实施方式通过规则引擎维护接口的入参和出参,同时支持透传,异常,超时,入参/出参参数化。能够提供灵活、便携的MOCK服务。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及测试方法和装置。
背景技术
微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是HTTP资源的API)进行通信。现有应用程序多使用微服务架构,一个完整的软件系统包含多个微服务单元,各个微服务子系统存在互相调用的情况,形成一个调用链。
MOCK测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。一般情况下,需要MOCK测试环境的某个接口,以用于开发/测试,比如依赖的某个接口服务不可用,需要MOCK一个进行调用,前端在后端接口开发未完成的时候进行开发和调试,需要MOCK一个服务出来进行开发/调试。某些情况下,需要MOCK极端的情况,如超时/异常等环境中不容易实现的情况,以用于检验软件能否正确处理。
现有的MOCK技术,无法支持个性化的入参和出参,且匹配集成在MOCK服务里,新增修改较为繁琐。
发明内容
本公开的实施例提出了测试方法和装置。
第一方面,本公开的实施例提供了一种测试方法,包括:接收被测系统发送的用于调用依赖服务的接口名、方法、入参;根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;从所述规则模板集合中查找与所述入参匹配的规则模板;若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;将所述出参返回给所述被测系统。
在一些实施例中,所述方法还包括:通过所述规则引擎的前端界面接收用户输入的接口名、方法、入参匹配规则和出参模板,并生成规则模板;将所述规则模板存储到规则引擎中。
在一些实施例中,所述方法还包括:若所述规则引擎设置的规则类型为超时,则不返回数据给所述被测系统。
在一些实施例中,所述方法还包括:若所述规则引擎设置的规则类型为异常,则将预设的异常信息返回给所述被测系统。
在一些实施例中,所述方法还包括:若未找到与所述入参匹配的规则模板,则将所述接口名、所述方法、所述入参透传给所述依赖服务。
在一些实施例中,所述从所述规则模板集合中查找与所述入参匹配的规则模板,包括:从所述规则模板集合中选择规则模板;基于所选择的规则模板,执行如下匹配步骤:将所述入参与所选择的规则模板中的规则进行匹配;如果所述入参与所选择的规则模板中的每条规则匹配,则将所选择的规则模板确定为与所述入参匹配的规则模板;如果所述入参与所选择的规则模板中任一条规则不匹配,则从所述规则模板集合中重新选择未进行匹配过的规则模板,基于重新选择的规则模板,继续执行上述匹配步骤,直到找到与所述入参匹配的规则模板。
在一些实施例中,规则模板中的规则包括以下至少一项:包括第一关键词,不包括第二关键词,等于第三关键词;所述将所述入参与所选择的规则模板中的规则进行匹配,包括:如果所选择的规则模板中的规则之一为包括第一关键词,则确定所述入参是否包括所述第一关键词,如果不包括所述第一关键词,则匹配失败;如果所选择的规则模板中的规则之一为不包括第二关键词,则确定所述入参是否包括所述第二关键词,如果包括所述第二关键词,则匹配失败;如果所选择的规则模板中的规则之一为等于第三关键词,则确定所述入参是否等于所述第三关键词,如果不等于所述第三关键词,则匹配失败。
第二方面,本公开的实施例提供了一种测试装置,包括:接收单元,被配置成接收被测系统发送的用于调用依赖服务的接口名、方法、入参;获取单元,被配置成根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;匹配单元,被配置成从所述规则模板集合中查找与所述入参匹配的规则模板;输出单元,被配置成若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;返回单元,被配置成将所述出参返回给所述被测系统。
在一些实施例中,所述装置还包括配置单元,被配置成:通过所述规则引擎的前端界面接收用户输入的接口名、方法、入参匹配规则和出参模板,并生成规则模板;将所述规则模板存储到规则引擎中。
在一些实施例中,所述输出单元进一步被配置成:若所述规则引擎设置的规则类型为超时,则不返回数据给所述被测系统。
在一些实施例中,所述输出单元进一步被配置成:若所述规则引擎设置的规则类型为异常,则将预设的异常信息返回给所述被测系统。
在一些实施例中,所述输出单元进一步被配置成:若未找到与所述入参匹配的规则模板,则将所述接口名、所述方法、所述入参透传给所述依赖服务。
在一些实施例中,匹配单元进一步被配置成:从所述规则模板集合中选择规则模板;基于所选择的规则模板,执行如下匹配步骤:将所述入参与所选择的规则模板中的规则进行匹配;如果所述入参与所选择的规则模板中的每条规则匹配,则将所选择的规则模板确定为与所述入参匹配的规则模板;如果所述入参与所选择的规则模板中任一条规则不匹配,则从所述规则模板集合中重新选择未进行匹配过的规则模板,基于重新选择的规则模板,继续执行上述匹配步骤,直到找到与所述入参匹配的规则模板。
在一些实施例中,规则模板中的规则包括以下至少一项:包括第一关键词,不包括第二关键词,等于第三关键词;匹配单元进一步被配置成:如果所选择的规则模板中的规则之一为包括第一关键词,则确定所述入参是否包括所述第一关键词,如果不包括所述第一关键词,则匹配失败;如果所选择的规则模板中的规则之一为不包括第二关键词,则确定所述入参是否包括所述第二关键词,如果包括所述第二关键词,则匹配失败;如果所选择的规则模板中的规则之一为等于第三关键词,则确定所述入参是否等于所述第三关键词,如果不等于所述第三关键词,则匹配失败。
第三方面,本公开的实施例提供了一种用于测试的电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如第一方面中任一项所述的方法。
本公开的实施例提供的测试方法和装置,设计一套独立的规则引擎,维护接口的入参和出参,同时支持透传,异常,超时,入参/出参参数化。用户在界面设置以上数据后,MOCK服务调用规则引擎,即可根据设置返回需要的出参。同时规则引擎的维护,不需要MOCK服务的启动/停止,此外,该规则引擎系统可以用于http MOCK,JSF MOCK,dubbo MOCK等各种类型的MOCK,使用广泛。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的测试方法的一个实施例的流程图;
图3a、3b是根据本公开的测试方法的规则模板的示意图;
图4是根据本公开的测试方法的一个应用场景的示意图;
图5是根据本公开的测试装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的测试方法或测试装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括被测系统101、MOCK服务器102、依赖服务器103、终端设备104。测试系统101、MOCK服务器102、依赖服务器103、终端设备104之间通过网络互联。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备104通过网络与MOCK服务器102交互,以编辑MOCK服务器安装的规则引擎中的规则模板。终端设备104上可以安装有各种通讯客户端应用,例如规则配置类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
用户还可通过网页的方式登录到规则引擎的前端界面,进行规则模板的编辑。可添加、修改、删除接口名、方法、入参匹配规则和出参模板等信息。
终端设备104可以是硬件,也可以是软件。当终端设备104为硬件时,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备104为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
被测系统101可以是提供各种服务的服务器,例如对终端设备104上运行的应用程序提供支持的后台服务器。后台服务器可以对应用程序的代码进行测试。测试过程中被测系统可能会调用其它的依赖服务,则可将调用请求(包括接口名、方法、入参)发送给MOCK服务器102。由MOCK服务器根据入参模拟出可变的出参,将出参返回给被测系统,可以在依赖服务不可用的情况下完成被测系统的测试。可选地,MOCK服务器在未找到与入参匹配的规则模板的情况下,可将调用请求透传给依赖服务,由依赖服务返回真实的出参。
需要说明的是,MOCK服务器可以是硬件,也可以是软件。当MOCK服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
图1所示的MOCK服务器、被测系统、依赖服务器可以是物理隔离的,也可以在同一个硬件设备上。
需要说明的是,本公开的实施例所提供的测试方法一般由MOCK服务器105执行,相应地,测试装置一般设置于MOCK服务器105中。
应该理解,图1中的终端设备、MOCK服务器、被测系统、依赖服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、MOCK服务器、被测系统、依赖服务器。
继续参考图2,示出了根据本公开的测试方法的一个实施例的流程200。该测试方法,包括以下步骤:
步骤201,接收被测系统发送的用于调用依赖服务的接口名、方法、入参。
在本实施例中,测试方法的执行主体(例如图1所示的MOCK服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行测试的被测系统接收用于调用依赖服务的调用请求,调用请求可包括接口名、方法、入参。接口名可以是协议,例如HTTP。方法可以是该接口名下的方法,例如,POST、GET等。入参是至少一个参数,例如,URL的参数。
步骤202,根据接口名和方法从用于模拟依赖服务的规则引擎中获取规则模板集合。
在本实施例中,用户预先通过规则引擎的前端界面接收用户输入的接口名、方法、入参匹配规则和出参模板,并生成规则模板。将规则模板存储到规则引擎中。如图3a所示,用户在规则引擎前端,根据已知的MOCK的接口,选择其方法,设置方法级别的规则模板,一个方法可以设置多个规则模板,规则模板类型有正常,超时,异常等,维护的规则模板保存到规则引擎中。规则模板包括接口名、方法、入参匹配规则和出参模板。入参匹配规则可包括匹配内容和规则。匹配内容指的是关键字,规则可以是“包含”、“不包含”、“等于”。如图3a所示,该入参匹配规则的含义是,如果入参包含“102043110”,则出参为右下角所示的键值组。图中出参包括至少一对用冒号分隔的键值,冒号左侧为键(key),冒号右侧为值(value)。
出参模板用于指定每个键对应的值(出参)。出参可以包括以下至少一种:随机变量、自定义变量、入参。其中,MOCK出参的返回值支持参数化,如键值输入:${_random(4,48)}则返回4~48之间的整数,如输入${_time(yyyy-MM-dd HH:mm:ss)},则返回当前时间,如键值输入${_phoneNo},则返回随机的手机号。如输入${name},则返回值中该字段自动取入参的name字段的值。也就是说,MOCK出参的某一键值,即可以生成随机值,也可以从入参中获取,其余值则按照用户输入的自定义的值进行原封不动的返回。
MOCK服务器的规则引擎中已存储了至少一个规则模板。根据接口名和方法可获得具有相同接口名和方法的规则模板集合。
步骤203,从规则模板集合中查找与入参匹配的规则模板。
在本实施例中,遍历规则模板集合,根据每个规则模板的入参匹配规则查找与入参匹配的规则模板。例如,模板A的入参匹配规则为:入参包含“102043110”,模板B的入参匹配规则为:入参不包含“102043110”,模板C的入参匹配规则为:入参等于“11010233”。如果被测系统的入参为“202043110”,则与模板B匹配。如果被测系统的入参为“102043110XY”,则与模板A匹配。如果被测系统的入参为“11010233”,则与模板C匹配。查找到的模板如图3b所示。
在本实施例的一些可选的实现方式中,从所述规则模板集合中查找与所述入参匹配的规则模板,包括:从所述规则模板集合中选择规则模板;基于所选择的规则模板,执行如下匹配步骤:将所述入参与所选择的规则模板中的规则进行匹配;如果所述入参与所选择的规则模板中的每条规则匹配,则将所选择的规则模板确定为与所述入参匹配的规则模板;如果所述入参与所选择的规则模板中任一条规则不匹配,则从所述规则模板集合中重新选择未进行匹配过的规则模板,基于重新选择的规则模板,继续执行上述匹配步骤,直到找到与所述入参匹配的规则模板。
遍历所有的规则模板,查找规则模板中的所有规则与入参匹配的规则模板,查找到一个匹配的规则模板后不再继续查找。例如,模板A有5个规则,模板B有2个规则,模板C有1个规则,模板D。。。N。先将入参与模板A进行匹配,结果只符合其中2个规则,因此入参与模板A不匹配。再将入参与模板B进行匹配,2个规则都符合,则命中模板B,不需要再与其它模板匹配。
在本实施例的一些可选的实现方式中,规则模板中的规则包括以下至少一项:包括第一关键词,不包括第二关键词,等于第三关键词;所述将所述入参与所选择的规则模板中的规则进行匹配,包括:如果所选择的规则模板中的规则之一为包括第一关键词,则确定所述入参是否包括所述第一关键词,如果不包括所述第一关键词,则匹配失败;如果所选择的规则模板中的规则之一为不包括第二关键词,则确定所述入参是否包括所述第二关键词,如果包括所述第二关键词,则匹配失败;如果所选择的规则模板中的规则之一为等于第三关键词,则确定所述入参是否等于所述第三关键词,如果不等于所述第三关键词,则匹配失败。
这里的第一关键词,第二关键词,第三关键词仅是为区分不同的规则。同一规则模板中可以要求同时包括多个第一关键词,例如,包括“女性”和“25以下”。同一规则模板中还可以要求同时不能包括多个第二关键词,例如,不能包括“孕妇”和“儿童”。同一规则模板中还可以要求同时包括第一关键词并且不包括第二关键词。例如,包括“女性”,不包括“儿童”。
入参要符合规则模板中的所有规则的要求才能匹配成功。
步骤204,若规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参。
在本实施例中,测试时可指定规则类型,规则类型可包括正常、异常、超时。如果规则类型是正常,则基于匹配成功的规则模板关联的出参模板输出出参。出参模板如图3a的右下角所示。当规则模板匹配成功,就按照对应的出参模板生成出参。例如,入参与规则模板A匹配,则按照规则模板A对应的出参模板,随机生成4~48之间的整数作为出参。
步骤205,将出参返回给被测系统。
在本实施例中,出参是MOCK服务器模拟的依赖服务的数据,将该数据返回给被测系统,可以在依赖服务缺失的情况下完成测试。
在本实施例的一些可选的实现方式中,该方法还包括:若所述规则引擎设置的规则类型为超时,则不返回数据给所述被测系统。被测系统在发出调用请求后,长时间接收不到响应,就会判定为超时,进行超时处理。这样可以测试超时的容错处理过程。
在本实施例的一些可选的实现方式中,该方法还包括:若所述规则引擎设置的规则类型为异常,则将预设的异常信息返回给所述被测系统。可以设置一些异常处理规则,不论入参是什么,均返回异常信息,例如,http的404等。还可以设置多种异常信息,进行全面的异常测试。例如,将异常分为多种,对应不同的异常信息,在规则引擎中设置异常的类型,MOCK服务器即可根据配置选择相应的异常信息返回给被测系统。被测系统对不同的异常进行不同的处理,例如,网络中断异常,则被测系统可进行重传。
在本实施例的一些可选的实现方式中,该方法还包括:若未找到与所述入参匹配的规则模板,则将所述接口名、所述方法、所述入参透传给所述依赖服务。如果规则引擎中不支持入参,则仍需要依赖服务来完成测试。如果依赖服务不能正常处理,则无法返回出参,被测系统接收不到出参就会认定为超时,进行超时测试。如果依赖服务能对入参处理,则返回出参给补测系统,完成正常测试。可选地,还可以输出找不出匹配的规则模板的提示信息,提示用户补充针对该入参的规则模板。
本公开的上述实施例提供的方法中的规则引擎通用化,支持多种类型的MOCK,将MOCK引擎独立出来,可复用,可兼容多种MOCK。支持MOCK正常返回,异常返回,超时返回等几种类型。根据入参值包含,不包含,等于几种情况,简单化MOCK规则的设置,最大限度简化MOCK的使用。规则引擎的维护维权独立,设置后立即生效,不需要修改MOCK服务。
继续参见图4,图4是根据本实施例的测试方法的应用场景的一个示意图。在图4的应用场景中,被测系统需要调用依赖服务时,将请求入参(包括接口名、方法、入参)发送给MOCK服务,MOCK服务再将其转发给规则引擎。规则引擎遍历所有的规则模板,查找与入参匹配的规则模板。一个规则模板中可包括多个入参匹配规则,入参需要同时满足多个入参匹配规则才能匹配成功。规则模板与出参模板相关联,出参模板可以根据规则的设定模拟出可变的接口出参。然后MOCK服务将出参返回给被测系统。这样可以在没有依赖服务的情况下通过MOCK服务模拟依赖服务的输出数据。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种测试装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的测试装置500包括:接收单元501、获取单元502、匹配单元503、输出单元504和返回单元505。其中,接收单元501,被配置成接收被测系统发送的用于调用依赖服务的接口名、方法、入参;获取单元502,被配置成根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;匹配单元503,被配置成从所述规则模板集合中查找与所述入参匹配的规则模板;输出单元504,被配置成若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;返回单元505,被配置成将所述出参返回给所述被测系统。
在本实施例中,测试装置500的接收单元501、获取单元502、匹配单元503、输出单元504和返回单元505的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204和步骤205。
在本实施例的一些可选的实现方式中,装置500还包括配置单元(附图中未示出),被配置成:通过所述规则引擎的前端界面接收用户输入的接口名、方法、入参匹配规则和出参模板,并生成规则模板;将所述规则模板存储到规则引擎中。
在本实施例的一些可选的实现方式中,所述输出单元504进一步被配置成:若所述规则引擎设置的规则类型为超时,则不返回数据给所述被测系统。
在本实施例的一些可选的实现方式中,所述输出单元504进一步被配置成:若所述规则引擎设置的规则类型为异常,则将预设的异常信息返回给所述被测系统。
在本实施例的一些可选的实现方式中,所述输出单元504进一步被配置成:若未找到与所述入参匹配的规则模板,则将所述接口名、所述方法、所述入参透传给所述依赖服务。
在本实施例的一些可选的实现方式中,所述从所述规则模板集合中查找与所述入参匹配的规则模板,包括:从所述规则模板集合中选择规则模板;基于所选择的规则模板,执行如下匹配步骤:将所述入参与所选择的规则模板中的规则进行匹配;如果所述入参与所选择的规则模板中的每条规则匹配,则将所选择的规则模板确定为与所述入参匹配的规则模板;如果所述入参与所选择的规则模板中任一条规则不匹配,则从所述规则模板集合中重新选择未进行匹配过的规则模板,基于重新选择的规则模板,继续执行上述匹配步骤,直到找到与所述入参匹配的规则模板。
在本实施例的一些可选的实现方式中,规则模板中的规则包括以下至少一项:包括第一关键词,不包括第二关键词,等于第三关键词;所述将所述入参与所选择的规则模板中的规则进行匹配,包括:如果所选择的规则模板中的规则之一为包括第一关键词,则确定所述入参是否包括所述第一关键词,如果不包括所述第一关键词,则匹配失败;如果所选择的规则模板中的规则之一为不包括第二关键词,则确定所述入参是否包括所述第二关键词,如果包括所述第二关键词,则匹配失败;如果所选择的规则模板中的规则之一为等于第三关键词,则确定所述入参是否等于所述第三关键词,如果不等于所述第三关键词,则匹配失败。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如测试方法。例如,在一些实施例中,测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。服务器可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种测试方法,包括:
接收被测系统发送的用于调用依赖服务的接口名、方法、入参;
根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;
从所述规则模板集合中查找与所述入参匹配的规则模板;
若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;
将所述出参返回给所述被测系统。
2.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述规则引擎的前端界面接收用户输入的接口名、方法、入参匹配规则和出参模板,并生成规则模板;
将所述规则模板存储到规则引擎中。
3.根据权利要求1所述的方法,其中,所述方法还包括:
若所述规则引擎设置的规则类型为超时,则不返回数据给所述被测系统。
4.根据权利要求1所述的方法,其中,所述方法还包括:
若所述规则引擎设置的规则类型为异常,则将预设的异常信息返回给所述被测系统。
5.根据权利要求1所述的方法,其中,所述方法还包括:
若未找到与所述入参匹配的规则模板,则将所述接口名、所述方法、所述入参透传给所述依赖服务。
6.根据权利要求1所述的方法,其中,所述从所述规则模板集合中查找与所述入参匹配的规则模板,包括:
从所述规则模板集合中选择规则模板;
基于所选择的规则模板,执行如下匹配步骤:将所述入参与所选择的规则模板中的规则进行匹配;如果所述入参与所选择的规则模板中的每条规则匹配,则将所选择的规则模板确定为与所述入参匹配的规则模板;
如果所述入参与所选择的规则模板中任一条规则不匹配,则从所述规则模板集合中重新选择未进行匹配过的规则模板,基于重新选择的规则模板,继续执行上述匹配步骤,直到找到与所述入参匹配的规则模板。
7.根据权利要求6所述的方法,其中,规则模板中的规则包括以下至少一项:包括第一关键词,不包括第二关键词,等于第三关键词;所述将所述入参与所选择的规则模板中的规则进行匹配,包括:
如果所选择的规则模板中的规则之一为包括第一关键词,则确定所述入参是否包括所述第一关键词,如果不包括所述第一关键词,则匹配失败;
如果所选择的规则模板中的规则之一为不包括第二关键词,则确定所述入参是否包括所述第二关键词,如果包括所述第二关键词,则匹配失败;
如果所选择的规则模板中的规则之一为等于第三关键词,则确定所述入参是否等于所述第三关键词,如果不等于所述第三关键词,则匹配失败。
8.一种测试装置,包括:
接收单元,被配置成接收被测系统发送的用于调用依赖服务的接口名、方法、入参;
获取单元,被配置成根据所述接口名和所述方法从用于模拟所述依赖服务的规则引擎中获取规则模板集合;
匹配单元,被配置成从所述规则模板集合中查找与所述入参匹配的规则模板;
输出单元,被配置成若所述规则引擎设置的规则类型为正常,则基于匹配成功的规则模板关联的出参模板输出出参;
返回单元,被配置成将所述出参返回给所述被测系统。
9.一种用于测试的电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个计算机程序,
当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110456872.9A CN115248768A (zh) | 2021-04-27 | 2021-04-27 | 测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110456872.9A CN115248768A (zh) | 2021-04-27 | 2021-04-27 | 测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115248768A true CN115248768A (zh) | 2022-10-28 |
Family
ID=83696927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110456872.9A Pending CN115248768A (zh) | 2021-04-27 | 2021-04-27 | 测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115248768A (zh) |
-
2021
- 2021-04-27 CN CN202110456872.9A patent/CN115248768A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795195B (zh) | 一种网页渲染方法、装置、电子设备及存储介质 | |
CN113407850B (zh) | 一种虚拟形象的确定和获取方法、装置以及电子设备 | |
CN117076719B (zh) | 一种基于大语言模型的数据库联合查询方法、装置和设备 | |
US20190236138A1 (en) | Temporary Slots for Storing Chat Data | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN114374703B (zh) | 云手机信息的获取方法、装置、设备以及存储介质 | |
CN113691403B (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN113656689B (zh) | 模型生成方法和网络信息的推送方法 | |
CN115481594B (zh) | 计分板实现方法、计分板、电子设备及存储介质 | |
CN112925623B (zh) | 任务处理方法、装置、电子设备和介质 | |
CN116011955A (zh) | 一种机器人流程自动化需求实现方法、装置、设备和存储介质 | |
CN115248768A (zh) | 测试方法和装置 | |
CN113127357B (zh) | 单元测试方法、装置、设备、存储介质及程序产品 | |
CN112966201B (zh) | 对象处理方法、装置、电子设备以及存储介质 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN112529161A (zh) | 生成对抗网络训练方法、生成对抗网络、人脸图像翻译方法和装置 | |
CN113157360B (zh) | 用于处理api的方法、装置、设备、介质和产品 | |
CN113032040B (zh) | 用于处理任务的方法、装置、设备、介质和产品 | |
CN115982466B (zh) | 检索数据的方法、装置、设备以及存储介质 | |
CN116629810B (zh) | 基于建筑办公系统的操作推荐方法、装置、设备和介质 | |
CN113407844B (zh) | 小程序框架的版本推荐方法、装置、设备以及存储介质 | |
CN114564133A (zh) | 一种应用程序显示方法、装置、设备及介质 | |
CN111582478A (zh) | 用于确定模型结构的方法和装置 | |
CN114997329A (zh) | 用于生成模型的方法、装置、设备、介质和产品 | |
CN116340689A (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 |