CN114691466A - 一种模拟响应方法以及相关设备 - Google Patents
一种模拟响应方法以及相关设备 Download PDFInfo
- Publication number
- CN114691466A CN114691466A CN202011565377.3A CN202011565377A CN114691466A CN 114691466 A CN114691466 A CN 114691466A CN 202011565377 A CN202011565377 A CN 202011565377A CN 114691466 A CN114691466 A CN 114691466A
- Authority
- CN
- China
- Prior art keywords
- response
- request
- code block
- under 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
- 230000004044 response Effects 0.000 title claims abstract description 493
- 238000004088 simulation Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012360 testing method Methods 0.000 claims abstract description 233
- 230000001419 dependent effect Effects 0.000 claims abstract description 24
- 238000004891 communication Methods 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 36
- 238000012546 transfer Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 6
- 238000011056 performance test Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000011990 functional testing Methods 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 230000000739 chaotic effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000243 solution Substances 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
- 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
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
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)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种模拟响应方法,包括:用于模拟依赖代码块的模拟系统接收来自被测代码块的请求,根据请求从规则数据库中获取与请求匹配的多响应规则,然后根据与请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应,与请求对应的响应用于测试被测代码块的性能或功能。该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖较多的测试场景。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种模拟响应方法、用于执行该模拟响应方法的模拟系统、设备以及计算机可读存储介质、计算机程序产品。
背景技术
在进行软件开发时,为了保障软件能够正常运行往往需要对软件进行测试。软件测试中的被测对象称为被测系统(system under testing,SUT)。在不同的测试上下文中,SUT的内容可以不同。例如,SUT可以是一个函数,也可以是一个模块,或者是一个软件系统。
许多SUT通常不能独立运行,而是依赖于外部的组件、工具或服务。其中,SUT依赖的组件、工具或服务可以统称为SUT的外部依赖。当SUT的外部依赖没有开发完成,或者外部依赖不稳定,或者外部依赖无法满足测试需求时,还可以利用模拟(mock)系统对外部依赖进行模拟。
目前,已有的模拟系统通常仅支持单响应模拟,也即对于一个请求,模拟系统通常仅产生一个响应。如此难以满足测试需求,尤其是接口功能测试、性能测试、混沌测试的需求。
发明内容
本申请提供了一种模拟响应方法,该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖较多的测试场景。本申请还提供了上述方法对应的模拟系统、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种模拟响应方法。该方法可以由模拟系统执行。模拟系统可以是软件系统。该模拟系统可以以计算机软件的形式部署在计算设备中,以实现模拟依赖代码块对请求进行响应的功能。模拟系统模拟的响应可以用于测试被测代码块的功能或性能。在一些实施例中,模拟系统也可以是硬件系统。该硬件系统包括具有模拟依赖代码块对请求进行响应功能的硬件设备。
具体地,模拟系统接收来自被测代码块的请求,根据该请求从规则数据库中获取与请求匹配的多响应规则。其中,与请求匹配的多响应规则可以用于生成与请求匹配的多个响应。然后模拟系统可以根据与上述请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应,以完成对被测代码块的功能测试和/或性能测试。
该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖更多的测试场景。而且该方法支持通过简单的配置实现多响应模拟,无需测试人员掌握编程语言,具备较高的编程能力,由此降低了测试门槛,提高了测试效率。
在一些可能的实现方式中,多响应规则中携带有响应策略。模拟系统在获得与请求匹配的多响应规则后,不仅可以根据多响应规则解析出多个响应,还可以从多响应规则中获取相应的响应策略,然后根据该响应策略,向被测代码块发送多个响应中与请求对应的响应。如此,可以适应不同测试场景,满足不同的测试需求。
在一些可能的实现方式中,测试人员在对被测代码块进行测试时设定有测试目标。其中,测试目标是指对被测代码块进行测试所期望达成的目标。在实际应用时,测试人员可以根据测试目标制定测试方案,进而确定测试过程中响应的返回策略,也即确定响应策略。通过根据测试目标确定响应策略,可以帮助测试人员针对性制定测试方案,达成测试目标。
在一些可能的实现方式中,测试目标可以包括测试被测代码块的功能。如此,测试人员可以根据该测试目标选择相应的测试工具,编写相应的测试用例,利用测试工具执行该测试用例,实现对被测代码块的功能测试。
其中,被测代码块的依赖代码块为连续查询型接口或者状态转移型接口时,测试人员期望模拟系统按照设定顺序返回不同响应。基于此,响应策略可以配置为顺序响应策略。
例如在模拟连续查询场景时,模拟系统针对同一类查询请求顺序返回多种不同的响应。在一个示例中,针对第一次请求,模拟系统返回进度为0%时的响应,针对第二次请求,模拟系统返回进度为30%时的响应,针对第三次请求,模拟系统返回进度为100%时的响应。
又例如在模拟状态转移场景时,模拟系统针对相同操作请求顺序返回多种不同的响应。在一个示例中,对于一个开关机接口,第一次调用时,返回已开机的响应,第二次调用时,返回已关机的响应,第三次调用时,返回已开机的响应,第四次调用时,返回已关机的响应。
在一些可能的实现方式中,测试目标可以包括测试被测代码块的性能。其中,被测代码块的性能包括响应时间、占用内存、占用带宽、占用处理器(central processingunit,CPU)或者是可靠性等指标中的任意一种或多种。
响应内容的大小可以影响请求方如被测代码块的CPU、内存、网络带宽等性能指标,测试人员可以基于模拟系统构造不同大小的响应内容,例如可以构造大小为1兆字节(MByte,MB)、5MB、10MB的响应。
进一步地,测试人员可以将响应策略配置为概率响应策略,例如随机概率响应策略,如此模拟系统可以随机返回不同大小的响应。测试人员可以确定被测代码块在这种情况下的性能。当然,测试人员也可以将响应策略配置为非随机概率响应策略。具体地,测试人员可以设置不同响应的概率,如将设1MB响应的概率设置为0.5,5MB响应的概率设置为0.3,10MB响应的概率设置为0.2,从而控制单位时间内返回的响应的总流量。测试人员可以确定被测代码块在这种情况下的性能。
响应成功或响应失败可以影响请求方如被测代码块的可靠性。可靠性测试(或混沌测试)通常是通过注入故障实现的。以超文本传输协议(hypertext transfer protocol,HTTP)接口为例,常见的故障注入包括HTTP状态码注入。当HTTP接口调用成功时,返回2xx状态码;当HTTP接口调用失败(发生故障)时,返回非2xx状态码(例如4xx状态码,5xx状态码)。非2xx响应占总状态码的比例可以用于表征HTTP接口发生故障的概率。基于此,测试人员可以将响应策略配置为随机概率响应策略或非随机概率响应策略,以灵活控制和动态调整HTTP接口发生故障的概率,从而模拟依赖代码块的HTTP接口完全不可用(例如100%返回非2xx状态码)或部分不可用(例如返回50%的2xx状态码和50%的非2xx状态码)的场景。
在一些可能的实现方式中,模拟系统可以对规则数据库中的多响应规则进行管理,例如对多响应规则进行增删查改等操作,以满足测试需求。具体地,模拟系统可以提供用户界面,如图形用户界面(graphical user interface,GUI)或命令用户界面(commanduser interface,CUI),模拟系统通过用户界面接收用户输入的配置信息,该配置信息可以包括多个响应的内容和响应策略,模拟系统可以根据包括多个响应的内容和响应策略在内的配置信息生成多响应规则,并根据生成的多响应规则更新规则数据库。如此可以为后续匹配多响应规则,并基于多响应规则对请求进行模拟响应提供帮助。
在一些可能的实现方式中,配置信息还可以包括请求的内容。其中,请求的内容包括请求头、请求参数和请求体。如此,模拟系统可以根据请求的内容和多个响应的内容建立请求和多个响应的映射关系,以及基于响应策略确定响应的返回策略,由此可以构建多响应规则。相应地,在执行阶段,模拟系统可以根据接收到的请求,以及规则数据库存储的多响应规则中请求和多个响应的映射关系,进行多响应规则匹配,当匹配成功时,可以根据多响应规则解析出与请求对应的多个响应,并按照响应策略返回不同的响应,实现多响应模拟,覆盖更多的测试场景。
在一些可能的实现方式中,所述模拟系统的执行面和管理面可以是解耦的,因此,模拟系统根据所述配置信息生成多响应规则的步骤,以及所述模拟系统根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应的步骤可以并行执行。
如此,模拟系统更新规则数据库中的多响应规则,并不会导致对来自被测代码块的请求进行模拟响应的流程中断,提高了模拟响应方法的可用性。
在一些可能的实现方式中,所述请求包括应用程序编程接口请求、超文本传输协议请求、远程过程调用请求、文件传输协议请求或者简单网络管理协议请求。由此可见,上述模拟响应方法不仅可以用于对应用程序接口(如微服务接口)进行测试,还可以用于传统的协议测试、嵌入式消息测试等场景,具有较好的兼容性。
在一些可能的实现方式中,所述被测代码块包括服务、函数或者软件系统。如此,模拟系统可以实现对不同粒度的被测系统进行多响应模拟,满足了个性化的测试需求。
第二方面,本申请提供了一种模拟系统。所述模拟系统用于模拟被测代码块的依赖代码块,所述模拟系统包括:
通信单元,用于接收来自所述被测代码块的请求;
执行单元,用于根据所述请求从规则数据库中获取与所述请求匹配的多响应规则;
所述通信单元,还用于根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应,所述与所述请求对应的响应用于测试所述被测代码块的性能或功能。
在一些可能的实现方式中,所述通信单元具体用于:
根据来自所述多响应规则的响应策略,向所述被测代码块发送多个响应中与所述请求对应的响应。
在一些可能的实现方式中,所述响应策略根据对所述被测代码块进行测试的测试目标确定。
在一些可能的实现方式中,所述测试目标包括测试所述被测代码块的功能,且所述被测代码块的依赖代码块包括连续查询型接口或者状态转移型接口时,所述响应策略包括顺序响应策略。
在一些可能的实现方式中,所述测试目标包括测试所述被测代码块的性能时,所述响应策略包括概率响应策略。
在一些可能的实现方式中,所述性能包括响应时间、占用内存和可靠性中的任意一种或多种。
在一些可能的实现方式中,所述通信单元还用于:
通过用户界面接收用户输入的配置信息,所述配置信息包括多个响应的内容和响应策略;
所述系统还包括:
管理单元,用于根据所述配置信息生成多响应规则,根据生成的多响应规则更新所述规则数据库。
在一些可能的实现方式中,所述执行单元与所述管理单元解耦。
在一些可能的实现方式中,所述请求包括应用程序编程接口请求、超文本传输协议请求、远程过程调用请求、文件传输协议请求或者简单网络管理协议请求。
在一些可能的实现方式中,所述被测代码块包括服务、函数或者软件系统。
第三方面,本申请提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式中的模拟响应方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第一方面的任一种实现方式所述的模拟响应方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的模拟响应方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种模拟系统的系统架构图;
图2为本申请实施例提供的一种配置界面的界面示意图;
图3为本申请实施例提供的一种配置界面的界面示意图;
图4为本申请实施例提供的一种配置界面的界面示意图;
图5A为本申请实施例提供的一种模拟系统的环境示意图;
图5B为本申请实施例提供的一种模拟系统的环境示意图;
图6为本申请实施例提供的一种模拟响应方法的流程图;
图7为本申请实施例提供的一种模拟响应方法的流程示意图;
图8为本申请实施例提供的一种设备的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
软件是指通过一种或多种程序设计语言开发的、在计算机上运行从而实现若干功能的工具。计算机是指任意具有计算能力的设备,如服务器、终端,其中,终端包括但不限于台式机、笔记本电脑、平板电脑或者智能手机。相应地,软件不仅可以包括运行于服务器、台式机、笔记本电脑等设备上的大型软件,还可以包括运行于移动终端如平板电脑、智能手机上的轻量级软件,如应用(application,APP)、小程序等等。
软件开发(software development)是根据用户要求建造出软件的过程。软件开发是一项包括需求获取、开发规划、需求分析和设计、编程实现、软件测试、版本控制的系统工程。
软件测试是在规定的条件下对被测对象进行操作,从而发现软件错误、衡量软件质量,或者对软件是否能满足设计要求进行评估的过程。其中,发现软件错误、衡量软件质量,或者是对软件是否能满足设计要求进行评估具体可以通过比较实际输出与预期输出实现。
被测对象也称作被测系统(system under testing,SUT)。被测系统可以是软件的部分或全部。具体地,软件的程序代码可以按照功能分为一个或多个代码块。基于此,被测系统可以是一个或多个代码块。
测试人员可以利用测试工具和被测系统交互,从而实现对被测系统如被测代码块的功能测试或性能测试。功能测试是指对被测系统如被测代码块的功能进行验证,测试被测系统是否到达用户要求的功能。性能测试是指模拟多种正常、峰值以及异常负载条件来对被测系统的性能指标进行测试。
测试工具用于构造请求消息,接收响应消息,并解析该响应消息。测试人员根据解析结果判断被测系统的行为或性能是否符合预期,由此实现对被测系统的功能测试(也称作行为测试)或性能测试。用于功能测试的测试工具和用于性能测试的测试工具可以是不同的。例如,用于功能测试的测试工具可以包括Postman、Selenium等测试工具,用于性能测试的测试工具可以包括Jmeter、LoadRunner等测试工具。
被测系统如被测代码块往往不能独立运行,而是依赖于其他代码块。为了便于描述,本申请将被测代码块所依赖的代码块称作依赖代码块。当依赖代码块还没有开发完成,或者依赖代码块不稳定,又或者依赖代码块的行为难以满足测试需求时,还需要通过模拟系统如mock系统对依赖代码块进行模拟,以完成对被测代码块的测试。
具体地,测试人员可以通过测试工具构造请求,然后向被测代码块发送请求。被测代码块不能独立运行,因此,被测代码块还可以向该被测代码块的依赖代码块发送请求。考虑到依赖代码块未开发完成或者依赖代码块不稳定等情况,测试人员可以使用模拟系统如mock系统模拟依赖代码块对请求进行响应,如此开发人员根据响应的解析结果判断被测代码块的行为或性能是否符合预期,从而实现对被测代码块的功能测试或性能测试。
然而,已有的模拟系统通常仅支持单响应模拟。所谓单响应模拟是指对于来自被测代码块的一个请求,模拟系统通常仅产生一个响应。如此难以满足测试需求,尤其是接口功能测试、性能测试(包括负载测试、压力测试、混沌测试等等,其中混沌测试也可以称作可靠性测试)的需求。例如在对连续查询型接口进行功能测试时,需要模拟系统依次返回中间响应(如进度为30%时的响应)和最终响应(进度为100%时的响应),而已有的模拟系统只能返回一个响应,例如返回最终响应,如此可以导致测试人员无法获得真实的中间响应,进而导致测试人员难以给出准确的测试结果。
有鉴于此,本申请实施例提供了一种模拟响应方法。该方法可以由模拟系统执行。该模拟系统可以模拟被测代码块的依赖代码块,对来自模拟代码块的请求进行响应,以便实现对被测代码块的功能测试或性能测试。具体地,模拟系统接收来自被测代码块的请求,根据该请求从规则数据库中获取与请求匹配的多响应规则。其中,与请求匹配的多响应规则可以用于生成与请求匹配的多个响应。然后模拟系统可以根据与上述请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应。
该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖更多的测试场景。而且该方法支持通过简单的配置实现多响应模拟,无需测试人员掌握编程语言,具备较高的编程能力,由此降低了测试门槛,提高了测试效率。
本申请实施例提供的模拟系统可以是软件系统。具体地,模拟系统可以以计算机软件的形式部署在计算设备中,以实现模拟依赖代码块对请求进行响应的功能。在一些实施例中,模拟系统也可以是硬件系统。该硬件系统包括具有模拟依赖代码块对请求进行响应功能的硬件设备。
模拟系统通过不同功能的子系统和不同功能的单元实现模拟依赖代码块对请求进行响应的功能。本申请实施例不限定模拟系统内部子系统和单元的划分方式,以下结合图1所示的一种示例性的划分方式进行介绍。
如图1所示,模拟系统100包括执行子系统102。该执行子系统102包括通信单元1022和执行单元1024。其中,通信单元1022用于接收来自被测代码块的请求,执行单元1024用于根据该请求从规则数据库中获取与请求匹配的多响应规则,通信单元1022还用于根据与请求匹配的多响应规则向被测代码块发送多个响应中与上述请求对应的响应。
进一步地,模拟系统100还包括管理子系统104。该管理子系统104用于为执行子系统102提供与请求匹配的多响应规则。具体地,管理子系统104包括通信单元1042、管理单元1044和规则数据库1046。
其中,通信单元1042提供了可视化的前台,例如是Mock portal。可视化的前台包括用户界面,如图形用户界面(graphical user interface,GUI)或者命令用户界面(command user interface,CUI)。为了便于描述,后文以GUI进行示例说明。
通信单元1042具体用于通过用户界面如GUI接收用户(例如是测试人员)输入的配置信息,该配置信息包括多个响应的内容和响应策略。管理单元1044用于根据上述配置信息生成多响应规则,并根据生成的多响应规则更新规则数据库1046。对应地,执行子系统102的执行单元1024具体用于根据请求从管理子系统104的规则数据库1046中获取与请求匹配的多响应规则。
其中,响应的内容包括状态码(status code)。状态码通常由请求所采用的协议定义,用于指示请求是否已成功完成。例如对于采用超文本传输协议(hypertext transferprotocol,HTTP)的请求,协议中定义状态码指示该HTTP请求是否已成功完成。在一些实施例中,状态码为200时指示请求成功,状态码为400时指示请求语义有误或参数有误。
进一步地,响应的内容还可以包括响应头(response header)或响应体(responsebody)。其中,响应头包括实体头(entity header),例如用于描述响应体大小的内容规模content-size,或者用于描述响应体类型的内容类型content-type,或者是用于描述响应体编码方式的内容编码方式content-encoding等。响应体包括请求的数据。
响应策略是指返回响应的策略。在一些可能的实现方式中,响应策略包括但不限于顺序响应策略或概率响应策略。其中,顺序响应策略是指按照顺序依次返回响应,概率响应策略是指根据概率选择响应并返回该响应。其中,概率可以是随机概率,也可以是测试人员等预先设定的概率。基于此,概率响应策略还可以分为随机概率响应策略和非随机概率响应策略。
图2示出了用于配置多响应规则的配置界面的界面示意图,配置界面200承载有响应策略配置组件202和响应内容配置组件204。接下来,结合附图对响应策略配置组件202和响应内容配置组件204进行详细说明。
响应策略配置组件202用于配置响应策略。具体地,响应策略配置组件202可以提供不同响应策略的选择控件2024,用户可以选中任一个响应策略的选择控件2024,从而实现将响应策略配置为被选中的选择控件2024对应的策略。在一些实施例中,响应策略配置组件202也可以提供下拉框或者文本编辑框,以便用户通过下拉方式选择响应策略,或者直接在文本编辑框编辑响应策略。
响应内容配置组件204用于配置多个响应的内容。具体地,响应内容配置组件204可以提供响应添加控件2042和响应编辑控件2044。响应添加控件2042用于添加新的响应,例如已配置响应1(response 1)时,用户可以通过响应添加控件2042添加响应2(response2)、响应3(response 3)甚至是更多的响应。响应编辑控件2044用于对已添加的响应进行编辑,例如编辑响应的名称、状态码、响应头或响应体中的一个或多个。
进一步地,响应内容配置组件204还可以包括响应顺序调整控件2046或响应删除控件2048。对于已添加的响应,用户可以通过响应顺序调整控件2046调整响应的顺序,或者是通过响应删除控件2048删除不需要的响应。
需要说明的是,多响应规则描述了请求和多个响应的映射关系。基于此,通信单元1042通过用户界面如GUI接收的配置信息还可以包括请求的内容。对于请求的内容和响应的内容可以分别在配置界面200的不同标签页进行配置。图2主要示出了在响应标签页配置响应策略和响应内容的界面,接下来,结合图3对在请求标签页配置请求的内容进行详细说明。
参见图3所示的配置界面的界面示意图,配置界面200的请求标签页承载有请求内容配置组件206。请求内容配置组件206包括请求编辑控件2062。其中,请求编辑控件2062可以包括对请求头(request header)、请求参数(request parameter)、请求体(requestbody)等信息进行编辑的控件。请求头、请求参数和请求体具有各自的标签,用户可以切换标签,如此,配置界面200可以显示切换后的标签所对应的控件。例如,用户通过对请求头进行编辑的控件编辑请求头后,可以将标签切换至请求参数,如此,配置界面200可以显示对请求参数进行编辑的控件,用户可以通过该控件对请求参数进行编辑。
如图2或图3所示,配置界面200还包括确认控件208和取消控件210。当确认控件208被触发时,管理子系统104的通信单元1042接收用户通过上述配置界面200输入的配置信息,如请求的内容、响应的内容、响应策略等信息中的一种或多种。当取消控件210被触发时,管理子系统104的通信单元1042不会接收到上述配置信息。
在一些可能的实现方式中,参见图4,配置界面200也可以在同一页面或者连续的页面承载上述响应策略配置组件202、响应内容配置组件204和请求内容配置组件206。如此,用户无需切换标签页即可配置响应策略、响应的内容以及请求的内容。
进一步地,执行子系统102和管理子系统104可以是解耦的,相应地,执行单元1024和管理单元1044可以是解耦的。例如,模拟系统100基于微服务框架开发得到时,执行子系统102、管理子系统104可以是解耦的微服务。如此模拟系统100可以为用户提供云化的模拟服务,即Mock as a service。
模拟系统100可以分为管理面和执行面,其中,管理面对应于管理子系统104,执行面对应于执行子系统102。管理子系统104可以为用户提供多响应规则的增删查改等管理操作,执行子系统102可以接收来自被测代码块的请求,例如接收来自被测服务、被测函数、被测软件系统的请求,根据与该请求对应的多响应规则生成多个响应,并向被测代码块返回多个响应中与该请求对应的响应。
其中,来自被测代码块的请求包括应用程序编程接口(application programminginterface,API)请求。在一些实施例中,该请求也可以是HTTP请求。相应地,模拟系统100返回的响应可以是与API请求对应的响应,或者是与HTTP请求对应的HTTP响应。需要说明的是,上述API、HTTP请求仅仅是本申请实施例中请求的一些具体实施方式,在本申请实施例其他可能的实现方式中,请求还可以是基于其他协议的请求,例如是远程过程调用(remoteprocedure calls,RPC)请求、文件传输协议(file transfer protocol,FTP)请求或者简单网络管理协议(simple network management protocol,SNMP)请求。
本申请实施例提供的上述模拟系统100具有多种部署方式,下面结合附图对模拟系统的部署方式进行示例说明。
如图5A所示,模拟系统100可以部署在云环境,具体为云环境上的一个或多个计算设备(例如:中心服务器)。该模拟系统100也可以部署在边缘环境中,具体为边缘环境中的一个或多个计算设备(边缘计算设备)上,边缘计算设备可以为边缘服务器、计算盒子等。云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群;边缘环境指示在地理位置上距离端设备(即端侧设备)较近的,用于提供计算、存储、通信资源的边缘计算设备集群。
模拟系统100部署在云环境或边缘环境时,模拟系统100可以以服务的形式提供给用户使用。具体地,用户可以用过浏览器访问云环境或边缘环境,在云环境或边缘环境中创建模拟系统100的实例,然后通过浏览器与模拟系统100的实例进行交互,以模拟生成请求的响应。
模拟系统100还可以部署在端设备上。端设备包括但不限于台式机、笔记本电脑、智能手机等用户终端。通过在这些用户终端上运行模拟系统100,可以根据请求从规则数据库中获取与请求匹配的多响应规则,根据与请求匹配的多响应规则向被测代码块返回多个响应中与请求对应的响应。
模拟系统100部署在端设备时,模拟系统100以客户端的形式提供给用户使用,具体地,端设备获取模拟系统100的安装包,通过运行该安装包,从而将模拟系统100安装在端设备中。
如图5B所示,模拟系统100包括多个部分(例如包括多个子系统,每个子系统包括多个单元),因此,模拟系统100的各个部分也可以分布式地部署在不同环境中,例如,可以在云环境、边缘环境和端设备中的三个环境,或其他任意两个环境上分别部署模拟系统100的一部分。
为了使得本申请的技术方案更加清楚、易于理解,下面将从模拟系统100的角度对本申请实施例提供的模拟响应方法进行介绍。
参见图6所示的模拟响应方法的流程图,该方法包括:
S602:模拟系统100接收来自被测代码块的请求。
被测代码块是被测软件的代码块。在不同的测试场景中,被测代码块可以是不同的。例如,在微服务系统测试场景中,被测代码块可以是服务,例如是微服务。又例如,在单体软件测试场景中,被测代码块可以是软件系统。在一些可能的实现方式中,被测代码块还可以是函数。
用户可以触发测试操作,被测代码块可以响应于该测试操作,生成请求,然后向模拟系统100发送该请求。其中,该请求可以是API请求,或者是HTTP请求,或者是基于其他协议的请求,如RPC请求、FTP请求、SNMP请求。
S604:模拟系统100根据上述请求从规则数据库中获取与请求匹配的多响应规则。
规则数据库存储有至少一条多响应规则。其中,多响应规则是指对相同请求产生多个不同响应的规则。每个多响应规则描述有一个请求和多个响应的映射关系。模拟系统100可以基于来自被测代码块的请求以及上述映射关系,从规则数据库中获取与上述请求匹配的多响应规则。
在一些可能的实现方式中,模拟系统100(例如是管理子系统104)可以通过用户界面如GUI或者是CUI接收用户输入的配置信息,并根据配置信息生成多响应规则,然后根据生成的多响应规则更新规则数据库。其中,模拟系统100可以对多响应规则进行处理,从而得到结构化的、机器可读的多响应规则,以便于存储或传输。
其中,配置信息具体可以包括多个响应的内容和响应策略。响应的内容包括状态码。状态码通常由请求所采用的协议定义,用于指示请求是否已成功完成。例如状态码可以为200、400等,状态码为200时表征请求成功,状态码为400时表征错误的请求。进一步地,响应的内容还可以包括响应头和响应体。响应策略是指返回响应的策略。在一些实施例中,响应策略可以包括顺序响应策略或者概率响应策略。概率响应策略还可以根据概率是否随机进一步分为随机概率响应策略和非随机概率响应策略。
响应策略具体可以根据对被测代码块进行测试的测试目标确定。其中,测试目标是指对被测代码块进行测试所期望达成的目标。在实际应用时,测试人员可以根据测试目标制定测试方案,确定测试过程中响应的返回策略,也即确定响应策略。
在一些实施例中,测试目标可以包括测试被测代码块的功能。如此,测试人员可以根据该测试目标选择相应的测试工具,编写相应的测试用例,利用测试工具执行该测试用例,实现对被测代码块的功能测试。
其中,被测代码块的依赖代码块为连续查询型接口或者状态转移型接口时,测试人员期望模拟系统100按照设定顺序返回不同响应。基于此,响应策略可以配置为顺序响应策略。
例如在模拟连续查询场景时,模拟系统100针对同一类查询请求顺序返回多种不同的响应。在一个示例中,针对第一次请求,模拟系统100返回进度为0%时的响应,针对第二次请求,模拟系统100返回进度为30%时的响应,针对第三次请求,模拟系统100返回进度为100%时的响应。
又例如在模拟状态转移场景时,模拟系统100针对相同操作请求顺序返回多种不同的响应。在一个示例中,对于一个开关机接口,第一次调用时,返回已开机的响应,第二次调用时,返回已关机的响应,第三次调用时,返回已开机的响应,第四次调用时,返回已关机的响应。
在另一些实施例中,测试目标可以包括测试被测代码块的性能。其中,被测代码块的性能包括响应时间、占用内存、占用带宽、占用处理器(central processing unit,CPU)或者是可靠性等指标中的任意一种或多种。
响应内容的大小可以影响请求方如被测代码块的CPU、内存、网络带宽等性能指标,测试人员可以基于模拟系统100构造不同大小的响应内容,例如可以构造大小为1兆字节(MByte,MB)、5MB、10MB的响应。进一步地,测试人员可以将响应策略配置为概率响应策略,例如随机概率响应策略,如此模拟系统100可以随机返回不同大小的响应。测试人员可以确定被测代码块在这种情况下的性能。当然,测试人员也可以将响应策略配置为非随机概率响应策略。具体地,测试人员可以设置不同响应的概率,如将设1MB响应的概率设置为0.5,5MB响应的概率设置为0.3,10MB响应的概率设置为0.2,从而控制单位时间内返回的响应的总流量。测试人员可以确定被测代码块在这种情况下的性能。
响应成功或响应失败可以影响请求方如被测代码块的可靠性。可靠性测试(或混沌测试)通常是通过注入故障实现的。以HTTP接口为例,常见的故障注入包括HTTP状态码注入。当HTTP接口调用成功时,返回2xx状态码;当HTTP接口调用失败(发生故障)时,返回非2xx状态码(例如4xx状态码,5xx状态码)。非2xx响应占总状态码的比例可以用于表征HTTP接口发生故障的概率。基于此,测试人员可以将响应策略配置为随机概率响应策略或非随机概率响应策略,以灵活控制和动态调整HTTP接口发生故障的概率,从而模拟依赖代码块的HTTP接口完全不可用(例如100%返回非2xx状态码)或部分不可用(例如返回50%的2xx状态码和50%的非2xx状态码)的场景。
在一些可能的实现方式中,配置信息还可以包括请求的内容。其中,请求的内容包括请求头、请求参数和请求体。如此,模拟系统100可以根据请求的内容和多个响应的内容建立请求和多个响应的映射关系,以及基于响应策略确定响应的返回策略,由此可以构建多响应规则。
需要说明的是,模拟系统100中的管理子系统104和执行子系统102是解耦的,因此,管理子系统104根据配置信息生成多响应规则,与执行子系统102根据请求从规则数据库中获取与请求匹配的多响应规则是相互独立的。管理子系统104根据配置信息生成多响应规则,以及执行子系统102根据请求从规则数据库中获取与请求匹配的多响应规则的步骤可以并行执行。
S606:模拟系统100根据与请求匹配的多响应规则向被测代码块发送多个响应中与上述请求对应的响应。
具体地,模拟系统100可以解析根据被测代码块的请求所匹配的多响应规则,以从中提取多个响应的内容与响应策略。然后,模拟系统100可以根据响应策略从多个响应中选择一个响应,从而对来自被测代码块的请求进行响应。
当响应策略为随机响应策略时,模拟系统100可以从与请求匹配的多响应规则中提取的多个响应中随机选择一个响应,然后将该响应返回至被测代码块。当响应策略为顺序响应策略时,模拟系统100可以按照多响应规则中多个响应的顺序依次返回响应至被测代码块。当响应策略为概率响应策略时,模拟系统100可以根据概率大小,从与请求匹配的多响应规则中提取的多个响应中选择一个响应,然后将该响应返回至被测代码块。
需要说明的是,当响应策略为概率响应策略时,多响应规则中概率值较大的响应容易被选中,作为被测代码块的请求所对应的响应。
在本实施例中,模拟系统100的管理面与执行面解耦,因此,模拟系统100(例如是管理子系统104)根据配置信息生成多响应规则的步骤,以及模拟系统100(例如是执行子系统102)根据与上述请求匹配的多响应规则向上述被测代码块发送多个响应中与上述请求对应的响应的步骤可以并行执行。如此,管理子系统104更新多响应规则时,无需执行子系统102中断模拟服务,提高了模拟系统100的可用性。
基于上述内容描述,本申请实施例提供了一种模拟响应方法。在该方法中,模拟系统100从规则数据库中获取与请求匹配的多响应规则,利用该多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖更多的测试场景。而且该方法支持通过简单的配置实现多响应模拟,无需测试人员掌握编程语言,具备较高的编程能力,由此降低了测试门槛,提高了测试效率。
接下来,将结合一具体示例对本申请的模拟响应方法进行介绍。
参见图7所示的模拟响应方法的流程示意图,该方法包括:
S702:被测代码块向模拟系统100发送第一次请求。
S704:模拟系统100从规则数据库中获取与第一次请求匹配的多响应规则。
其中,与第一次请求匹配的多响应规则中定义有多个响应的内容,以及响应策略,具体如下所示:
在该示例中,多响应规则定义了两个响应response1和response2的内容。多响应规则的代码中“#”表示解释。
S706:模拟系统100根据与请求匹配的多响应规则向被测代码块发送多个响应中与请第一次求对应的第一次响应。
多响应规则中包括响应策略。在图7所示的示例中,响应策略具体为随机响应策略,如此,模拟系统100可以随机地从多个响应中,选择相应的响应,例如是选择响应1作为与第一次请求对应的响应。
为了便于理解,本申请实施例还提供了第一次请求对应的响应的实例,具体如下所示:
HTTP/1.1 400Not Found#状态码
Date:Sun,18 Oct 2020 10:36:20GMT
Content-Length:28
Connection:Closed
Content-Type:application/xml#响应头
……
{......}#响应体
S708:被测代码块向模拟系统100发送第二次请求。
S710:模拟系统100根据与第二次请求匹配的多响应规则向被测代码块发送多个响应中与第二次请求对应的第二次响应。
其中,第一次请求和第二次请求是相同的请求,第一次响应和第二次响应为不同的响应。模拟系统100可以随机地从多个响应中,选择相应的响应,例如是选择响应2作为与第二次请求对应的响应。具体如下所示:
HTTP/1.1 400Not Found#状态码
Date:Sun,18 Oct 2020 10:36:20GMT
Content-Length:28
Connection:Closed
Content-Type:application/xml#响应头
…
{......}#响应体
基于上述内容描述,本申请实施例提供了一种模拟响应方法,该方法通过预先配置的多响应规则,实现了针对相同请求返回不同响应,满足了多响应模拟的测试需求,覆盖了较多的测试场景。而且,该方法仅需用户进行简单配置,不需要掌握编程语言,具备一定编程能力,极大地降低了应用门槛,具有较高可用性。
进一步地,用于实施上述模拟响应方法的模拟系统在管理面和执行面分离,因此,配置多响应规则和根据多响应规则进行响应模拟的流程是解耦的,更新多响应规则并不会导致根据多响应规则进行响应模拟的流程中断,提高了模拟系统的可用性。
上文结合图1至图7对本申请实施例提供的模拟响应方法进行了详细介绍,下面将结合附图对本申请实施例提供的模拟系统100进行介绍。
参见图1所示的模拟系统100的结构示意图,该模拟系统100用于模拟被测代码块的依赖代码块,模拟系统100包括执行子系统102,该执行子系统102包括:
通信单元1022,用于接收来自所述被测代码块的请求;
执行单元1024,用于根据所述请求从规则数据库中获取与所述请求匹配的多响应规则;
所述通信单元1022,还用于根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应,所述与所述请求对应的响应用于测试所述被测代码块的性能或功能。
在一些可能的实现方式中,所述通信单元1022具体用于:
根据来自所述多响应规则的响应策略,向所述被测代码块发送多个响应中与所述请求对应的响应。
在一些可能的实现方式中,所述响应策略根据对所述被测代码块进行测试的测试目标确定。
在一些可能的实现方式中,所述测试目标包括测试所述被测代码块的功能,且所述被测代码块的依赖代码块包括连续查询型接口或者状态转移型接口时,所述响应策略包括顺序响应策略。
在一些可能的实现方式中,所述测试目标包括测试所述被测代码块的性能时,所述响应策略包括概率响应策略。
在一些可能的实现方式中,所述性能包括响应时间、占用内存和可靠性中的任意一种或多种。
在一些可能的实现方式中,模拟系统100还包括管理子系统104,管理子系统104包括通信单元1042、管理单元1044和规则数据库1046,其中:
通信单元1042,用于通过用户界面接收用户输入的配置信息,所述配置信息包括多个响应的内容和响应策略;
管理单元1044,用于根据所述配置信息生成多响应规则,根据生成的多响应规则更新所述规则数据库1046。
在一些可能的实现方式中,所述执行单元1024与所述管理单元1044解耦。
在一些可能的实现方式中,所述请求包括应用程序编程接口API请求。
在一些可能的实现方式中,所述被测代码块包括服务、函数或者软件系统。
根据本申请实施例的模拟响应系统100可对应于执行本申请实施例中描述的方法,并且模拟响应系统100的各个模块/单元的上述和其它操作和/或功能分别为了实现图6、图7所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种设备800。该设备800可以是笔记本电脑、台式机等端侧设备,也可以是云环境或边缘环境中的服务器或服务器集群。该设备800具体用于实现如图1所示实施例中模拟系统100的功能。
图8提供了一种设备800的结构示意图,如图8所示,设备800包括总线801、处理器802、通信接口803和存储器804。处理器802、存储器804和通信接口803之间通过总线801通信。
总线801可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器802可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口803用于与外部通信。例如,通信接口803用于接收来自被测代码块的请求,根据与请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应。当设备800为端侧设备时,通信接口803包括显示器,显示器是一种输入输出(input/output,I/O)设备。该设备可以将电子文件如图像、文字显示到屏幕上,以供用户查看。根据制造材料不同,显示器可以分为液晶显示器(liquid crystal display,LCD)、有机电激光(organiclight emitting diode,OLED)显示器等。具体地,显示器可以通过向用户提供用户界面,如GUI或者CUI,显示器可以通过用户界面接收用户输入的配置信息,如多个响应的内容和响应策略等,以用于生成多响应规则。
存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器804还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器804中存储有可执行代码,处理器802执行该可执行代码以执行前述模拟响应方法。
具体地,在实现图1所示实施例的情况下,且图1实施例中所描述的模拟系统100的各模块为通过软件实现的情况下,执行图1中的执行单元1024、管理单元1044功能所需的软件或程序代码存储在存储器804中。通信单元1022和通信单元1042功能通过通信接口803实现。通信接口803接收来自被测代码块的请求,将其通过总线801传输至处理器802,处理器802执行存储器804中存储的程序代码,以执行根据所述请求从规则数据库中获取与所述请求匹配的多响应规则的步骤,通信接口803还根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应。
在一些可能的实现方式中,通信接口803还用于通过用户界面接收用户输入的配置信息,该配置信息包括多个响应的内容和响应策略,通信接口803通过总线801将配置信息传输至处理器802,处理器802执行存储器804中存储的程序代码,以执行根据所述配置信息生成多响应规则,根据生成的多响应规则更新所述规则数据库的步骤。
处理器802还用于执行图6、图7所示实施例中任一种可能实现方式对应的方法步骤,本申请实施例对此不作限定。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于模拟系统100的模拟响应方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品被计算机执行时,所述计算机执行前述模拟响应方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述模拟响应方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (23)
1.一种模拟响应方法,其特征在于,所述方法包括:
模拟系统接收来自被测代码块的请求,其中,所述模拟系统用于模拟所述被测代码块的依赖代码块;
所述模拟系统根据所述请求从规则数据库中获取与所述请求匹配的多响应规则;
所述模拟系统根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应,所述与所述请求对应的响应用于测试所述被测代码块的性能或功能。
2.根据权利要求1所述的方法,其特征在于,所述模拟系统根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应,包括:
所述模拟系统根据来自所述多响应规则的响应策略,向所述被测代码块发送多个响应中与所述请求对应的响应。
3.根据权利要求2所述的方法,其特征在于,所述响应策略根据对所述被测代码块进行测试的测试目标确定。
4.根据权利要求3所述的方法,其特征在于,所述测试目标包括测试所述被测代码块的功能,且所述被测代码块的依赖代码块包括连续查询型接口或者状态转移型接口时,所述响应策略包括顺序响应策略。
5.根据权利要求3所述的方法,其特征在于,所述测试目标包括测试所述被测代码块的性能时,所述响应策略包括概率响应策略。
6.根据权利要求5所述方法,其特征在于,所述性能包括响应时间、占用内存和可靠性中的任意一种或多种。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述模拟系统通过用户界面接收用户输入的配置信息,所述配置信息包括多个响应的内容和响应策略;
所述模拟系统根据所述配置信息生成多响应规则,根据生成的多响应规则更新所述规则数据库。
8.根据权利要求7所述的方法,其特征在于,所述模拟系统根据所述配置信息生成多响应规则的步骤,以及所述模拟系统根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应的步骤并行执行。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述请求包括应用程序编程接口API请求、超文本传输协议HTTP请求、远程过程调用RPC请求、文件传输协议FTP请求或者简单网络管理协议SNMP请求。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述被测代码块包括服务、函数或者软件系统。
11.一种模拟系统,其特征在于,所述模拟系统用于模拟被测代码块的依赖代码块,所述模拟系统包括:
通信单元,用于接收来自所述被测代码块的请求;
执行单元,用于根据所述请求从规则数据库中获取与所述请求匹配的多响应规则;
所述通信单元,还用于根据与所述请求匹配的多响应规则向所述被测代码块发送多个响应中与所述请求对应的响应,所述与所述请求对应的响应用于测试所述被测代码块的性能或功能。
12.根据权利要求11所述的系统,其特征在于,所述通信单元具体用于:
根据来自所述多响应规则的响应策略,向所述被测代码块发送多个响应中与所述请求对应的响应。
13.根据权利要求12所述的系统,其特征在于,所述响应策略根据对所述被测代码块进行测试的测试目标确定。
14.根据权利要求13所述的系统,其特征在于,所述测试目标包括测试所述被测代码块的功能,且所述被测代码块的依赖代码块包括连续查询型接口或者状态转移型接口时,所述响应策略包括顺序响应策略。
15.根据权利要求13所述的系统,其特征在于,所述测试目标包括测试所述被测代码块的性能时,所述响应策略包括概率响应策略。
16.根据权利要求15所述的系统,其特征在于,所述性能包括响应时间、占用内存和可靠性中的任意一种或多种。
17.根据权利要求11至16任一项所述的系统,其特征在于,所述通信单元还用于:
通过用户界面接收用户输入的配置信息,所述配置信息包括多个响应的内容和响应策略;
所述系统还包括:
管理单元,用于根据所述配置信息生成多响应规则,根据生成的多响应规则更新所述规则数据库。
18.根据权利要求17所述的系统,其特征在于,所述执行单元与所述管理单元解耦。
19.根据权利要求11至18任一项所述的系统,其特征在于,所述请求包括应用程序编程接口API请求、超文本传输协议HTTP请求、远程过程调用RPC请求、文件传输协议FTP请求或者简单网络管理协议SNMP请求。
20.根据权利要求11至19任一项所述的系统,其特征在于,所述被测代码块包括服务、函数或者软件系统。
21.一种设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至10中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示设备执行如权利要求1至10中任一项所述的方法。
23.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011565377.3A CN114691466A (zh) | 2020-12-25 | 2020-12-25 | 一种模拟响应方法以及相关设备 |
PCT/CN2021/129273 WO2022134895A1 (zh) | 2020-12-25 | 2021-11-08 | 一种模拟响应方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011565377.3A CN114691466A (zh) | 2020-12-25 | 2020-12-25 | 一种模拟响应方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691466A true CN114691466A (zh) | 2022-07-01 |
Family
ID=82130624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011565377.3A Pending CN114691466A (zh) | 2020-12-25 | 2020-12-25 | 一种模拟响应方法以及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114691466A (zh) |
WO (1) | WO2022134895A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
CN110851468A (zh) * | 2018-08-01 | 2020-02-28 | 北京京东尚科信息技术有限公司 | 对客户端的测试请求做出模拟响应的方法和装置 |
CN109491905A (zh) * | 2018-11-02 | 2019-03-19 | 北京金山云网络技术有限公司 | 前端测试方法、装置及电子设备 |
US10929276B2 (en) * | 2019-06-14 | 2021-02-23 | Paypal, Inc. | Simulation computing services for testing application functionalities |
CN112100079B (zh) * | 2020-11-02 | 2022-04-12 | 北京淇瑀信息科技有限公司 | 基于模拟数据调用的测试方法、系统和电子设备 |
-
2020
- 2020-12-25 CN CN202011565377.3A patent/CN114691466A/zh active Pending
-
2021
- 2021-11-08 WO PCT/CN2021/129273 patent/WO2022134895A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022134895A1 (zh) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656538A (zh) | 应用程序的生成方法、装置、系统、设备和介质 | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
CN112333096A (zh) | 一种微服务流量调度方法及相关组件 | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
CN110737548B (zh) | 数据请求方法和服务器 | |
US11288170B1 (en) | Log analysis debugging without running on real production environment | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN111712795A (zh) | 用于评估应用部署的方法、设备、计算机程序产品和可读介质 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
EP4155942A2 (en) | Method and apparatus for load testing, and corresponding storage medium | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN114691466A (zh) | 一种模拟响应方法以及相关设备 | |
US10176062B2 (en) | Cloud servers and methods for handling dysfunctional cloud services | |
US11662927B2 (en) | Redirecting access requests between access engines of respective disk management devices | |
US11606251B2 (en) | Deploying a server stack having a cross-server dependency | |
CN114385498A (zh) | 性能测试方法、系统、计算机设备及可读存储介质 | |
CN113778780B (zh) | 应用稳定性的确定方法、装置、电子设备和存储介质 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN114691468A (zh) | 一种模拟响应方法以及相关设备 | |
CN112306723A (zh) | 一种应用于小程序的运行信息获取方法和装置 | |
CN117112500B (zh) | 一种资源管理方法、装置、设备和存储介质 | |
CN109901997B (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 |