一种模拟响应方法以及相关设备技术

技术编号:33990753 阅读:15 留言:0更新日期:2022-07-02 09:37
本申请提供了一种模拟响应方法,包括:用于模拟依赖代码块的模拟系统接收来自被测代码块的请求,根据请求从规则数据库中获取与请求匹配的多响应规则,然后根据与请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应,与请求对应的响应用于测试被测代码块的性能或功能。该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖较多的测试场景。景。景。

【技术实现步骤摘要】
一种模拟响应方法以及相关设备


[0001]本申请涉及软件测试
,尤其涉及一种模拟响应方法、用于执行该模拟响应方法的模拟系统、设备以及计算机可读存储介质、计算机程序产品。

技术介绍

[0002]在进行软件开发时,为了保障软件能够正常运行往往需要对软件进行测试。软件测试中的被测对象称为被测系统(system under testing,SUT)。在不同的测试上下文中,SUT的内容可以不同。例如,SUT可以是一个函数,也可以是一个模块,或者是一个软件系统。
[0003]许多SUT通常不能独立运行,而是依赖于外部的组件、工具或服务。其中,SUT依赖的组件、工具或服务可以统称为SUT的外部依赖。当SUT的外部依赖没有开发完成,或者外部依赖不稳定,或者外部依赖无法满足测试需求时,还可以利用模拟(mock)系统对外部依赖进行模拟。
[0004]目前,已有的模拟系统通常仅支持单响应模拟,也即对于一个请求,模拟系统通常仅产生一个响应。如此难以满足测试需求,尤其是接口功能测试、性能测试、混沌测试的需求。

技术实现思路

[0005]本申请提供了一种模拟响应方法,该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖较多的测试场景。本申请还提供了上述方法对应的模拟系统、设备、计算机可读存储介质以及计算机程序产品。
[0006]第一方面,本申请提供了一种模拟响应方法。该方法可以由模拟系统执行。模拟系统可以是软件系统。该模拟系统可以以计算机软件的形式部署在计算设备中,以实现模拟依赖代码块对请求进行响应的功能。模拟系统模拟的响应可以用于测试被测代码块的功能或性能。在一些实施例中,模拟系统也可以是硬件系统。该硬件系统包括具有模拟依赖代码块对请求进行响应功能的硬件设备。
[0007]具体地,模拟系统接收来自被测代码块的请求,根据该请求从规则数据库中获取与请求匹配的多响应规则。其中,与请求匹配的多响应规则可以用于生成与请求匹配的多个响应。然后模拟系统可以根据与上述请求匹配的多响应规则向被测代码块发送多个响应中与请求对应的响应,以完成对被测代码块的功能测试和/或性能测试。
[0008]该方法通过利用预先配置的多响应规则对相同请求生成不同的响应,从而满足多响应模拟的测试需求,覆盖更多的测试场景。而且该方法支持通过简单的配置实现多响应模拟,无需测试人员掌握编程语言,具备较高的编程能力,由此降低了测试门槛,提高了测试效率。
[0009]在一些可能的实现方式中,多响应规则中携带有响应策略。模拟系统在获得与请求匹配的多响应规则后,不仅可以根据多响应规则解析出多个响应,还可以从多响应规则中获取相应的响应策略,然后根据该响应策略,向被测代码块发送多个响应中与请求对应
的响应。如此,可以适应不同测试场景,满足不同的测试需求。
[0010]在一些可能的实现方式中,测试人员在对被测代码块进行测试时设定有测试目标。其中,测试目标是指对被测代码块进行测试所期望达成的目标。在实际应用时,测试人员可以根据测试目标制定测试方案,进而确定测试过程中响应的返回策略,也即确定响应策略。通过根据测试目标确定响应策略,可以帮助测试人员针对性制定测试方案,达成测试目标。
[0011]在一些可能的实现方式中,测试目标可以包括测试被测代码块的功能。如此,测试人员可以根据该测试目标选择相应的测试工具,编写相应的测试用例,利用测试工具执行该测试用例,实现对被测代码块的功能测试。
[0012]其中,被测代码块的依赖代码块为连续查询型接口或者状态转移型接口时,测试人员期望模拟系统按照设定顺序返回不同响应。基于此,响应策略可以配置为顺序响应策略。
[0013]例如在模拟连续查询场景时,模拟系统针对同一类查询请求顺序返回多种不同的响应。在一个示例中,针对第一次请求,模拟系统返回进度为0%时的响应,针对第二次请求,模拟系统返回进度为30%时的响应,针对第三次请求,模拟系统返回进度为100%时的响应。
[0014]又例如在模拟状态转移场景时,模拟系统针对相同操作请求顺序返回多种不同的响应。在一个示例中,对于一个开关机接口,第一次调用时,返回已开机的响应,第二次调用时,返回已关机的响应,第三次调用时,返回已开机的响应,第四次调用时,返回已关机的响应。
[0015]在一些可能的实现方式中,测试目标可以包括测试被测代码块的性能。其中,被测代码块的性能包括响应时间、占用内存、占用带宽、占用处理器(central processing unit,CPU)或者是可靠性等指标中的任意一种或多种。
[0016]响应内容的大小可以影响请求方如被测代码块的CPU、内存、网络带宽等性能指标,测试人员可以基于模拟系统构造不同大小的响应内容,例如可以构造大小为1兆字节(MByte,MB)、5MB、10MB的响应。
[0017]进一步地,测试人员可以将响应策略配置为概率响应策略,例如随机概率响应策略,如此模拟系统可以随机返回不同大小的响应。测试人员可以确定被测代码块在这种情况下的性能。当然,测试人员也可以将响应策略配置为非随机概率响应策略。具体地,测试人员可以设置不同响应的概率,如将设1MB响应的概率设置为0.5,5MB响应的概率设置为0.3,10MB响应的概率设置为0.2,从而控制单位时间内返回的响应的总流量。测试人员可以确定被测代码块在这种情况下的性能。
[0018]响应成功或响应失败可以影响请求方如被测代码块的可靠性。可靠性测试(或混沌测试)通常是通过注入故障实现的。以超文本传输协议(hypertext transfer protocol,HTTP)接口为例,常见的故障注入包括HTTP状态码注入。当HTTP接口调用成功时,返回2xx状态码;当HTTP接口调用失败(发生故障)时,返回非2xx状态码(例如4xx状态码,5xx状态码)。非2xx响应占总状态码的比例可以用于表征HTTP接口发生故障的概率。基于此,测试人员可以将响应策略配置为随机概率响应策略或非随机概率响应策略,以灵活控制和动态调整HTTP接口发生故障的概率,从而模拟依赖代码块的HTTP接口完全不可用(例如100%返回非
2xx状态码)或部分不可用(例如返回50%的2xx状态码和50%的非2xx状态码)的场景。
[0019]在一些可能的实现方式中,模拟系统可以对规则数据库中的多响应规则进行管理,例如对多响应规则进行增删查改等操作,以满足测试需求。具体地,模拟系统可以提供用户界面,如图形用户界面(graphical user interface,GUI)或命令用户界面(command user interface,CUI),模拟系统通过用户界面接收用户输入的配置信息,该配置信息可以包括多个响应的内容和响应策略,模拟系统可以根据包括多个响应的内容和响应策略在内的配置信息生成多响应规则,并根据生成的多响应规则更新规则数据库。如此可以为后续匹配多响应规则,并基于多响应规则对请求进行模拟响应提供帮助。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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.一种模拟系统,其特征在于,所述模拟系统用于模拟被测代码块的依赖代码块,所述模拟系统包括:通信单元,用于接收来自所述被测代码块的...

【专利技术属性】
技术研发人员:肖世良苏琳许世恒张军胜
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1