本申请提供了一种模拟响应方法,包括:用于模拟依赖代码块的模拟系统接收来自被测代码块的请求,当与请求匹配的响应规则指示请求对应的模拟响应来自依赖代码块的真实响应时,模拟系统根据真实响应获得请求对应的模拟响应,向被测代码块发送请求对应的模拟响应,以完成对被测代码块的性能测试或功能测试。该方法利用来自依赖代码块的真实响应,对请求进行模拟响应,无需具备编程能力的测试人员手动编写响应的逻辑,降低了测试人员的门槛,提高了软件测试的效率,降低了软件测试的成本。降低了软件测试的成本。降低了软件测试的成本。
【技术实现步骤摘要】
一种模拟响应方法以及相关设备
[0001]本申请涉及软件测试
,尤其涉及一种模拟响应方法、系统、设备以及计算机可读存储介质、计算机程序产品。
技术介绍
[0002]在进行软件开发时,为了保障软件能够正常运行往往需要对软件进行测试。对于多模块或多个子系统的软件而言,单个模块或子系统通常不能独立运行,例如会依赖其他模块或子系统运行。
[0003]业界提供了模拟(mock)系统,用于模拟被测模块或被测子系统所依赖的模块或子系统。模拟系统可以对来自被测模块或被测子系统的请求进行模拟响应,从而实现被测模块或被测子系统的测试。
[0004]目前,已有的模拟系统通常采用内置函数的方式实现对一个请求返回多个不同的响应。然而在需要生成与业务强相关的响应时,内置函数无法满足需求,需要具备编程能力的测试人员手动编写响应的逻辑。如此提高了测试人员的门槛,降低了软件测试的效率,提升了软件测试的成本。
技术实现思路
[0005]本申请提供了一种模拟响应方法,该方法利用来自依赖代码块的真实响应,对请求进行模拟响应,无需具备编程能力的测试人员手动编写响应的逻辑,降低了测试人员的门槛,提高了软件测试的效率,降低了软件测试的成本。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
[0006]第一方面,本申请提供了一种模拟响应方法。该方法可以由模拟系统执行。模拟系统可以是软件系统。该模拟系统可以以计算机软件的形式部署在计算设备中,以实现模拟依赖代码块对请求进行响应的功能。模拟系统模拟的响应可以用于测试被测代码块的功能或性能。在一些实施例中,模拟系统也可以是硬件系统。该硬件系统包括具有模拟依赖代码块对请求进行响应功能的硬件设备。
[0007]具体地,模拟系统接收来自被测代码块的请求,当与所述请求匹配的响应规则指示所述请求对应的模拟响应来自所述依赖代码块的真实响应时,模拟系统根据所述真实响应获得所述请求对应的模拟响应,然后向所述被测代码块发送所述请求对应的模拟响应,以完成对被测代码块的功能测试和/或性能测试。
[0008]如此,在需要生成与业务强相关的响应时,模拟系统利用来自依赖代码块的真实响应,对请求进行模拟响应,例如直接将上述真实响应或者融合有真实响应和预设响应的响应作为对请求的响应,保留了真实响应中实时的特征信息,又能达到模拟的目的。并且,该方法无需具备编程能力的测试人员手动编写响应的逻辑,降低了测试人员的门槛,提高了软件测试的效率,降低了软件测试的成本。
[0009]在一些可能的实现方式中,当与所述请求匹配的响应规则指示所述请求对应的模
拟响应来自预设响应时,模拟系统根据所述预设响应获得所述请求对应的模拟响应。如此可以覆盖较多的测试场景,例如覆盖依赖代码块仍处于开发状态的测试场景,满足不同的测试需求。
[0010]在一些可能的实现方式中,响应规则中携带有响应融合策略。模拟系统在获得与请求匹配的响应规则后,可以从响应规则中解析出响应融合策略,模拟系统可以根据该响应融合策略的指示,获得模拟响应,以用于对被测代码块的功能测试或性能测试。
[0011]在一些可能的实现方式中,所述依赖代码块包括一个或多个接口,所述响应融合策略根据所述一个或多个接口的状态确定。如此在基于不同的接口进行测试时,可以根据上述不同的响应融合策略返回真实响应、模拟响应或者融合有真实响应和模拟响应的响应。由此避免了所有接口都被设置为返回模拟响应,也避免测试人员为了在真实响应和预设响应之间切换而需要修改代码并重新打包的问题,实现不同层面的精准模拟,满足了个性化的测试需求。
[0012]在一些可能的实现方式中,所述接口处于正常运行的状态时,接口可以正常提供服务,响应融合策略可以配置为所述请求对应的模拟响应和所述真实响应一致。如此,可以尽可能地保留真实响应中实时的特征信息,提高测试结果的可信度。
[0013]在一些可能的实现方式中,所述接口处于正在开发的状态时,接口难以正常提供服务,响应融合策略可以配置为所述请求对应的模拟响应和所述预设响应一致。如此可以实现在依赖代码块未开发完成的情况下,对被测代码块进行测试,加快了开发和测试的进度。
[0014]在一些可能的实现方式中,所述接口处于功能变更(例如是功能升级)的状态时,响应体的数据结构随之产生变化,模拟系统可以在功能变更前的接口如旧版本的接口的响应基础上进行修改,以适配新版本的接口,基于此,响应融合策略可以配置为所述请求对应的模拟响应融合有所述真实响应和所述预设响应。由此可以实现支撑并行开发以及持续开发持续交付,提升了软件版本迭代的速度。
[0015]在一些可能的实现方式中,响应包括响应头和响应体。模拟系统可以根据需求对响应头或响应体进行融合,以适应不同测试场景。例如模拟系统可以对真实响应的响应头和预设响应的响应头进行融合,获得模拟响应。又例如模拟系统可以对真实响应的响应体和预设响应的响应体进行融合,获得模拟响应。在一些实施例中,模拟系统可以对真实响应的响应头和预设响应的响应头进行融合,以及对真实响应的响应体和预设响应的响应体进行融合,获得模拟响应。
[0016]在一些可能的实现方式中,模拟系统对请求进行模拟响应依赖于规则数据库中的响应规则。模拟系统可以对规则数据库中的响应规则进行管理,例如对响应规则进行增删查改等操作,以满足测试需求。
[0017]具体地,模拟系统可以提供用户界面,如图形用户界面(graphical user interface,GUI)或命令用户界面(command user interface,CUI),模拟系统通过用户界面接收用户输入的配置信息,该配置信息包括响应融合策略,模拟系统可以根据所述配置信息生成响应规则。
[0018]在一些可能的实现方式中,配置信息还可以包括请求的内容和预设响应的内容。其中,请求的内容包括请求头、请求参数和请求体,预设响应的内容可以包括预设响应的状
态码、响应头和响应体。模拟系统可以根据请求的内容和预设响应的内容建立请求和预设响应的映射关系,进一步地,模拟系统可以建立请求和模拟响应的映射关系,由此可以构建响应规则。相应地,在执行阶段,模拟系统可以根据接收到的请求,以及规则数据库存储的响应规则中请求和模拟响应的映射关系,进行响应规则匹配,当匹配成功时,模拟系统可以根据响应规则解析出响应融合策略,并按照响应策略获得模拟响应,无需测试人员手动编写响应的逻辑,降低了测试门槛,提高了测试效率,降低了测试成本。
[0019]在一些可能的实现方式中,所述请求包括应用程序编程接口请求、超文本传输协议请求、远程过程调用请求、文件传输协议请求或者简单网络管理协议请求。由此可见,上述模拟响应方法不仅可以用于对应用程序接口(如微服务接口)进行测试,还可以用于传统的协议测试、嵌入式消息测试等场景,具有较好的兼容性。
[0020]在一些可能的实现方式中,所述被测代码块包括服务、函数或者软件系统。如此,模拟系统可以实现对不同粒度的被测系统进行多响应模拟,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种模拟响应方法,其特征在于,所述方法包括:模拟系统接收来自被测代码块的请求,其中,所述模拟系统用于模拟所述被测代码块的依赖代码块;当与所述请求匹配的响应规则指示所述请求对应的模拟响应来自所述依赖代码块的真实响应时,所述模拟系统根据所述真实响应获得所述请求对应的模拟响应;向所述被测代码块发送所述请求对应的模拟响应,所述请求对应的模拟响应用于测试所述被测代码块的性能或功能。2.根据权利要求1所述的方法,其特征在于,当与所述请求匹配的响应规则指示所述请求对应的模拟响应来自预设响应时,所述模拟系统根据所述预设响应获得所述请求对应的模拟响应。3.根据权利要求1或2所述的方法,其特征在于,所述请求对应的模拟响应根据来自所述响应规则的响应融合策略确定。4.根据权利要求3所述的方法,其特征在于,所述依赖代码块包括一个或多个接口,所述响应融合策略根据所述一个或多个接口的状态确定。5.根据权利要求4所述的方法,其特征在于,所述接口处于正常运行的状态时,所述响应融合策略为所述请求对应的模拟响应和所述真实响应一致。6.根据权利要求4所述的方法,其特征在于,所述接口处于正在开发的状态时,所述响应融合策略为所述请求对应的模拟响应和预设响应一致。7.根据权利要求4所述的方法,其特征在于,所述接口处于功能变更的状态时,所述响应融合策略为所述请求对应的模拟响应融合有所述真实响应和预设响应。8.根据权利要求7所述的方法,其特征在于,所述请求对应的模拟响应融合有所述真实响应和预设响应,包括:所述请求对应的模拟响应融合有所述真实响应的响应头和所述预设响应的响应头;或者,所述请求对应的模拟响应融合有所述真实响应的响应体和所述预设响应的响应体。9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:所述模拟系统通过用户界面接收用户输入的配置信息,所述配置信息包括响应融合策略;所述模拟系统根据所述配置信息生成响应规则。10.根据权利要求1至9任一项所述的方法,其特征在于,所述请求包括应用程序编程接口API请求、超文本传输协议HTTP请求、远程过程调用RPC请求、文件传输协议FTP请求或者简单网络管理协议SNMP请求。11.根据权利要求1至10任一项所述的方法,其特征在于,所述被测代码块包括服务、函数或者软件系统。12.一种模拟系统,其特征在于,所述模拟系统用于模拟被测代码块的依赖代码块,所述模拟系统包括:通信单元,用于接收来自所述被测代码块的请求;执行单元,用于当与所述请求匹配的响应规则指示所述请求对应的模拟响应来自所述依赖代码块的真实响应时,根据所述真实响应获得所...
【专利技术属性】
技术研发人员:苏琳,肖世良,张军胜,许世恒,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。