软件系统的模拟方法、模拟系统及计算机可读介质
技术领域
本发明涉及软件系统测试技术领域,尤其涉及一种软件系统的模拟方法、模拟系统及计算机可读介质。
背景技术
为了支持开发、测试这些软件系统,开发者需预先部署对应的设备;在软件发布后的版本持续迭代研发过程中,同样也需要这些设备的支持。而采购(或租赁)和部署这些设备(特别是一些价格昂贵、生产少的专用设备)时,需要投入大量的资金、人员成本和精力,同时会占用较长的时间。对于软件系统开发者,特别是对于投入、项目研发周期敏感类开发者(多为中、小微及民营企业)而言,这部分的成本支出将直接会影响项目立项环节的可行性分析是否能获得通过。
此外,近年来随着服务器虚拟化技术的发展,多数软件系统开发环节引入了虚拟机技术以实现对服务器设备的虚拟化,在有效提升服务器使用效率的同时,实现对底层设备部分组件的模拟效果。但虚拟化技术无法有效对专有服务器设备(以及其中的各个专有功能部件、外部设备等)进行模拟,从而也无法支撑各类软件系统对应的开发、测试和运行过程。如某服务器厂家的一款服务器设备,当接收到软件系统下发的特定指令时,会在服务器前、后面板的指定位置点亮或关闭对应的不同颜色的指示灯,而通用性虚拟化技术无法对这种专有硬件进行模拟。
有鉴于此,有必要对现有技术中软件系统的模拟技术予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种软件系统的模拟方法、模拟系统及计算机可读介质,用以现有技术中无法对特定设备进行模拟而需要采购和部署对应设备才可实现对软件系统的开发导致开发过程复杂、开发环境置备成本高及开发周期较长的问题。
为解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种软件系统的模拟方法,包括:
响应于目标输入指令,加载软件系统的设备资产库,以确定所述软件系统中预先维护登记的模拟设备和/或对接的真实设备;
若所述软件系统中维护有模拟设备,则加载设备响应信息库,以确定所述模拟设备的响应信息,所述响应信息包括所述模拟设备对所述软件系统开放的模拟接口的输入参数、与所述输入参数对应的输出响应结果;
控制所述软件系统调用模拟设备的响应信息和/或记录所述真实设备的执行信息,以反馈所述模拟设备的输出响应结果和/或所述真实设备的执行结果,所述目标输入指令包含有所述输入参数。
作为本发明的进一步改进,控制所述软件系统调用模拟设备的响应信息和/或记录所述真实设备的执行信息,包括:
若所述软件系统仅模拟所述模拟设备,则控制所述软件系统调用所述模拟设备的响应信息,以反馈所述模拟设备的输出响应结果;
若所述软件系统模拟所述模拟设备且对接所述真实设备,则控制所述软件系统调用所述模拟设备的响应信息并记录所述真实设备的执行信息,以反馈模拟设备的输出响应结果和真实设备的执行结果;
若所述软件系统仅对接所述真实设备,则控制所述软件系统将所述目标输入指令传送至真实设备,以反馈真实设备的执行结果,并反馈基于真实设备的执行结果与预存的真实设备的执行信息之间的对比结果。
作为本发明的进一步改进,在控制所述软件系统调用模拟设备的响应信息和/或记录所述真实设备的执行信息,以反馈所述模拟设备的输出响应结果和/或所述真实设备的执行结果之后,包括:
响应于第一输入,调整或重新加载所述模拟设备的响应信息,以控制所述软件系统调用模拟设备的调整后或重新加载的响应信息,以反馈调整后或重新加载的响应信息对应的输出响应结果。
作为本发明的进一步改进,在控制所述软件系统调用模拟设备的响应信息和/或记录所述真实设备的执行信息,以反馈所述模拟设备的输出响应结果和/或所述真实设备的执行结果之后,包括:
响应于第一输入,重新加载所述模拟设备的响应信息,以控制所述软件系统调用模拟设备的重新加载的响应信息,以反馈重新加载的响应信息对应的输出响应结果;
响应于第二输入,调整所述模拟设备的重新加载的响应信息,以控制所述软件系统调用模拟设备的调整后的响应信息,以反馈调整后的响应信息对应的输出响应结果。
作为本发明的进一步改进,在控制所述软件系统调用模拟设备的响应信息和/或记录所述真实设备的执行信息,以反馈所述模拟设备的输出响应结果和/或所述真实设备的执行结果之后,包括:
响应于第一输入,调整所述模拟设备的响应信息,以控制所述软件系统调用模拟设备的调整后的响应信息,以反馈调整后的响应信息对应的输出响应结果;
响应于第二输入,重新加载所述模拟设备的调整后的响应信息,以控制所述软件系统调用模拟设备的重新加载的响应信息,以反馈重新加载的响应信息对应的输出响应结果。
作为本发明的进一步改进,所述设备资产库存储有在运行环境中待模拟设备的类型、待模拟设备的型号、待模拟设备的供应商信息。
作为本发明的进一步改进,还包括:
响应于对所述设备资产库中目标设备的添加或删除或修改操作,更新软件系统的设备资产库。
第二方面,提供了一种软件系统的模拟系统,包括:
第一加载单元,响应于目标输入指令,加载软件系统的设备资产库,以确定所述软件系统中预先维护登记的模拟设备和/或对接的真实设备;
第二加载单元,若所述软件系统中维护有模拟设备,则加载设备响应信息库,以确定所述模拟设备的响应信息,所述响应信息包括所述模拟设备对所述软件系统开放的模拟接口的输入参数、与所述输入参数对应的输出响应结果;
调用单元,控制所述软件系统调用模拟设备的响应信息;
记录单元,用于记录真实设备的执行信息;以及,
展示单元,用于反馈模拟设备的输出响应结果和/或真实设备的执行结果;
其中,所述目标输入指令包含有所述输入参数。
第三方面,提供了一种计算机可读介质,所述计算机可读介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行如第一方面所述的软件系统的模拟方法中的步骤。
第四方面,提供了一种终端设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的软件系统的模拟方法的步骤。
与现有技术相比,本发明的有益效果如下:
本发明的软件系统的模拟方法在软件系统接收到目标输入指令后加载软件系统中的设备资产库,确定预先维护登记的模拟设备和/或对接的真实设备,以在预先维护登记有模拟设备的情况下加载设备响应信息库,确定包含有模拟设备对软件系统开放的模拟接口的输入参数及对应的输出响应结果的响应信息,从而控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果。由此可见,本发明的软件系统的模拟方法通过预先封装的模拟设备对软件系统开放模拟接口,以实现软件系统对模拟设备的模拟,而无需购买或租赁或部署相关的服务器设备即可实现对软件系统的开发、测试等支撑,从而解决现有技术中无法对特定设备进行模拟而需要部署或采购对应设备才可实现对软件系统的开发而导致开发过程复杂、开发环境置备成本高且开发周期较长的问题。
附图说明
图1为本发明一个实施例的软件系统的模拟方法的流程图;
图2为本发明另一个实施例的软件系统的模拟方法的流程图;
图3为本发明再一个实施例的软件系统的模拟方法的流程图;
图4为本发明再一个实施例的软件系统的模拟方法的流程图;
图5为本发明再一个实施例的软件系统的模拟系统的流程图;
图6为本发明一个实施例的软件系统的模拟系统的拓扑结构图;
图7为本发明另一个实施例的软件系统的模拟系统的拓扑结构图;
图8为本发明所揭示的一种计算机可读介质的拓扑结构图;
图9为本发明所揭示的一种终端设备的拓扑结构图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
申请人通过下文示出若干实施例,以对本发明所含具体技术方案予以详细阐述。
实施例一:
图1为本发明一个实施例的软件系统的模拟方法(下文简称“方法”或者“模拟方法”)的示意性流程图,以实现软件系统对模拟设备的模拟,而无需购买或租赁或部署相关的服务器设备即可实现对软件系统的开发、测试等的支撑。本发明实施例的软件系统的模拟方法包括:
步骤102.响应于目标输入指令,加载软件系统的设备资产库,以确定软件系统中预先维护登记的模拟设备和/或对接的真实设备。
在加载软件系统的设备资产库之前,可通过上电等方式启动软件系统,以使软件系统处于运行状态中。设备资产库存储有待模拟设备的参数信息,该参数信息包括但不限于:用于登记运行环境中待模拟设备的供应商信息(比如说基于英特尔服务器或者基于华为鲲鹏服务器,曙光的统一存储设备等)、待模拟设备的类型(如服务器、存储设备、网络交换机、路由器、防火墙等)、待模拟设备的型号信息等。
其中,目标输入指令是指测试请求发送端向软件系统发送的控制指令。需要说明的是,前述所指向软件系统发送的控制指令的“测试请求发送端”还可解释为现有技术中任何能够执行目标输入指令的系统、装置、程序或者包含计算机可执行代码的物理装置,例如邮件(邮件服务器)、可定期或者任意设定发送目标输入指令的APP、逻辑上独立于模拟设备和/或真实设备的软件系统或者硬件系统。测试请求发送端纳管一个或多个软件系统,且通过有线电缆或http协议或无线通信等方式建立通信连接。
本实施例的模拟方法在加载软件系统的设备资产库之前,还可包括:
步骤100.响应于对设备资产库中目标设备的添加或删除或修改操作,更新软件系统的设备资产库。其中,目标设备包括设备资产库中的模拟设备和/或真实设备。
不难理解,在软件系统的设备资产库中添加或删除某一个或某一些模拟设备或真实设备后,或对某一个或某一些模拟设备或真实设备的特定参数(如目标设备的名称等参数)进行修改后,设备资产库中存储的内容自动更新,以根据更新后的设备资产库确定维护登记的模拟设备和/或真实设备。需要说明的是,也可在加载软件系统的设备资产库之后执行,如图2所示的步骤103,并在更新设备资产库后重新加载设备资产库,以确定维护登记的模拟设备和/或真实设备。当然,步骤100也可在步骤106之后执行,为下一次软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息做准备。
步骤104.若软件系统中维护有模拟设备,则加载设备响应信息库,以确定模拟设备的响应信息,响应信息包括模拟设备对软件系统开放的模拟接口的输入参数、与输入参数对应的输出响应结果。
应理解,设备响应信息库存储有响应信息。在设备资产库中对模拟设备进行登记维护之前,需要对模拟设备的模拟接口进行封装。具体地,将模拟设备对软件系统开放的各类模拟接口的输入参数、对应的输出响应结果进行编排梳理,以形成可规范化保存的响应信息。具体形式可以是配置文件、关系型数据库、非关系型数据库等。输入参数包括调用方式(如OpenAPI/SDK/CLI等)、调用指令名和调用参数、调用参数的类型和取值范围(某些情况下可能为动态范围,需联合其它系统获取动态取值)、认证方式、信息加密方式、返回信息接收方式等。输出响应结果包括返回值、加密方式、错误码信息、各字段参数和取值范围等。由此,通过响应信息封装成模拟设备的模拟接口,以在软件系统中登记有模拟设备时根据设备响应信息库加载的响应信息对软件系统开放。
步骤106.控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果,目标输入指令包含有输入参数。
具体而言,若软件系统仅模拟测试模拟设备(即全模拟模式),则控制软件系统调用模拟设备的响应信息,以反馈模拟设备的输出响应结果。
比如,设备响应信息库中存储的响应信息为whoami(输入参数)、对应的输出响应结果(Isaac’s Printer)。测试请求发送端(如云平台)向软件系统发送“whoami”指令后,软件系统会调用模拟设备的响应信息,即查询设备响应信息库,以查找到对应的输出响应结果“Isaac’s Printer”,从而展示输出响应结果“Isaac’s Printer”。
对于某些特定设备的运行情况无法高效、安全模拟的情形,如需模拟处于高温环境中(一般PC服务器设备运行的环境温度在-5~40摄氏度范围内,测试时可能需检测服务器管理系统界面是否可在40度以上环境下展示对应温度告警提示)的服务器设备(即特定设备);或在拥有部分特定设备同时又缺乏某些特定设备,通常采用混合模拟的方式进行测试模拟,以最大化提升开发或测试环节的执行效率和准确性。即若软件系统模拟测试模拟设备且对接真实设备,则控制软件系统调用模拟设备的响应信息并记录真实设备的执行信息,以反馈模拟设备的输出响应结果和真实设备的执行结果。由此,通过对模拟设备的输出响应结果和真实设备的执行结果进行对比,以用于结果对比等业务场景中。
可见,混合模式的主要特征是目标输入指令的其中一部分指令调用真实设备,另一部分指令调用模拟设备。
如,在服务器管理界面超限温度告警功能测试中,需验证某型号服务器(即特定设备)在正常温度、超限温度下通过IPMI接口获取该型号服务器内置温度传感器的取值时,因无法准确且快速地改变真实测试环境温度,故虽然已有真实的服务器设备(即真实设备),但仍需借助模拟设备对该型号服务器内置的温度传感器所反馈的数据进行模拟,从而快速完成对服务器管理界面超限温度告警功能的检测。
再比如,在某测试流程中,用户调用远程打印机(真实设备)进行打印操作前,相关打印内容需先通过硬件加密机(模拟设备)进行处理后才传送至远程打印机,而测试环境中没有真正的硬件加密机,此时可选用混合模拟方式进行模拟测试。具体可以为:调用者(即测试请求发送端)发出打印信息(即目标输入指令),调用硬件加密机(模拟设备)对打印信息进行处理,并将处理结果传递给远程打印机(真实设备)以执行打印操作。由此,在没有真实硬件加密机的情况下,完成对打印过程的测试。从而最大化提升了开发或测试环节的准确性。
而对于对比模式也即软件系统仅对接真实设备的情形,其主要特征是测试请求发送端发送的指令均调用真实设备,同时也会给出对应指令的模拟反馈结果(即真实设备的执行结果),用于评估特定场景(如高并发访问、高温或高压等情况下)对真实设备反馈的干扰和影响。
比如,测试请求发送端连续向软件系统发送若干条whoami指令(即目标输入指令),并将真实设备的执行结果和预存的真实设备的执行信息同时反馈至测试请求发送端,以由测试请求发送端确定真实设备的执行结果和预存的真实设备的执行信息之间是否存在不一致的问题。一般而言,真实设备在处理测试请求发送端持续发送的若干条指令时,由于真实设备的实际负载能力的限制,往往会超出真实设备的响应上限。比如,某一真实设备只能处理最高100条的并发指令,该真实设备在完成处理100条指令前若再收到测试请求发送端所发送的新指令,则会对期间无法处理(即超过100并发外)的指令统一回复如“Internal error”。
由此可见,若软件系统仅对接真实设备(即对比模式),则将目标输入指令传送至真实设备,以反馈真实设备的执行结果,并反馈基于真实设备的执行结果与预存的真实设备的执行信息之间的对比结果。由此,通过对比模式下仅对接的真实设备对全模拟模式或混合模式下的软件系统的运行数据进行横向对比分析,以供研发人员对设备的模拟策略做进一步的优化建议。
应理解,本发明实施例的软件系统的模拟方法在软件系统接收到目标输入指令后加载软件系统中的设备资产库,确定预先维护登记的模拟设备和/或对接的真实设备,以在预先维护登记有模拟设备的情况下加载设备响应信息库,确定包含有模拟设备对软件系统开放的模拟接口的输入参数及对应的输出响应结果的响应信息,从而控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果。
由此可见,本实施例所揭示的软件系统的模拟方法通过预先封装的模拟设备对软件系统开放模拟接口,实现软件系统对不同模拟设备的模拟,以支撑各类软件系统对应的开发、测试和运行过程。由于软件系统的开发存在定制化的特性,因此本实施例的方法无需购买或租赁或部署相关的服务器设备(即下文所指的特定设备)即可实现对软件系统的开发、测试等实际需求,从而解决现有技术中无法对特定设备进行模拟而需要采购或部署对应的特定设备才可实现对软件系统的开发导致软件系统开发过程复杂、开发环境置备成本高且开发周期较长的问题。
在图3的实施例中,在控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果之后,包括:
步骤108.响应于第一输入,调整或重新加载模拟设备的响应信息,以控制软件系统调用模拟设备的调整后或重新加载的响应信息,以反馈调整后或重新加载的响应信息对应的输出响应结果。
可以理解的是,在软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,并反馈对应的输出响应结果和/或对应的执行结果之后,若软件系统对模拟设备的模拟过程未结束,则由于设备响应信息库存储的响应信息可能会随时变动或根据需求进行调整,由此在下一次调用模拟设备的响应信息之前,重新加载或调整设备响应信息库中的响应信息,以进一步提高软件系统对模拟设备的模拟测试结果。
其中,对于重新加载设备响应信息库中响应信息的情形,通常在软件系统对模拟设备进行模拟测试的过程中,根据实际工况需求中断该模拟过程或测试过程后,需要重新加载设备响应信息库,以根据重新加载的响应信息重新进行模拟测试的操作过程。对于调整设备响应信息库中响应信息的情形,无需中断当前软件系统对模拟设备的模拟测试进程,通过动态地调整设备响应信息库中的响应信息,并动态地加载设备响应信息库,从而根据动态调整的响应信息继续进行模拟测试的操作过程,以提升测试环节的执行效率。
在图4的实施例中,在控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果之后,包括:
步骤110.响应于第一输入,重新加载模拟设备的响应信息,以控制软件系统调用模拟设备的重新加载的响应信息,以反馈重新加载的响应信息对应的输出响应结果。
步骤112.响应于第二输入,调整模拟设备的重新加载的响应信息,以控制软件系统调用模拟设备的调整后的响应信息,以反馈调整后的响应信息对应的输出响应结果。
应理解,与图3实施例不同的是,本实施例在软件系统调用(即第一次调用)模拟设备的响应信息和/或记录真实设备的执行信息,并反馈对模拟设备的输出响应结果和/或真实设备的执行结果之后,通过响应第一输入重新加载模拟设备的响应信息,以控制软件系统第二次调用模拟设备的重新加载的响应信息,从而反馈对应的输出响应结果和/或对应的执行结果。在第二次调用模拟设备的重新加载的响应信息之后,通过响应第二输入调整模拟设备的重新加载的响应信息,以控制软件系统第三次调用调整后的响应信息,从而反馈调整后的响应信息对应的输出响应结果。
在图5的实施例中,在控制软件系统调用模拟设备的响应信息和/或记录真实设备的执行信息,以反馈模拟设备的输出响应结果和/或真实设备的执行结果之后,包括:
步骤110’.响应于第一输入,调整模拟设备的响应信息,以控制软件系统调用模拟设备的调整后的响应信息,以反馈调整后的响应信息对应的输出响应结果。
步骤112’.响应于第二输入,重新加载模拟设备的调整后的响应信息,以控制软件系统调用模拟设备的重新加载的响应信息,以反馈重新加载的响应信息对应的输出响应结果。
与图4实施例不同的是,在软件系统第一调用模拟设备的响应信息和/或记录真实设备的执行信息后,先通过响应第一输入调整模拟设备的响应信息,以控制软件系统第二次调用模拟设备的重新加载的响应信息,从而反馈模拟设备的输出响应结果和/或真实设备的执行结果。然后,通过响应第二输入重新加载模拟设备的调整后的响应信息,以控制软件系统第三次调用模拟设备的重新加载的响应信息,从而反馈调整后的响应信息对应的输出响应结果。
可以理解的是,软件系统对模拟设备进行模拟测试的过程可根据实际工况需求进行确定,即软件系统可多次调用模拟设备的响应信息和/或记录真实设备的执行信息,每次调用模拟设备的响应信息之前,均可重新加载或调整设备响应信息库中存储的响应信息,以确保软件系统对模拟设备进行模拟测试的数据真实性。
需要说明的是,第一输入、第二输入均是指按工况需求设置定时器,以周期性触发形成的输入,调整或重新加载模拟设备的响应信息,或通过在软件系统的用户界面中为用户开发对应的响应信息的调整入口或软件系统的对外接口(如OpenAPI/SDK/CLI)等方式为第三方软件系统提供基于接口调用的模拟设备响应信息的调整方式,以通过在调整入口或对外接口的输入,调整或重新加载模拟设备的响应信息。
在本实施例中,第一输入可由图6中的第一执行主体609执行,第二输入可由图6中的第二执行主体610执行,第一执行主体609与第二执行主体610可为机器人程序、管理员或者用户。同时,在图3的实施例中,第一输入所包含的事件可为对模拟设备的响应信息进行调整或重新加载的事件。在图4的实施例中,第一输入所包含的事件为触发对模拟设备的响应信息进行重新加载的事件,第二输入所包含的事件可为触发对模拟设备的响应信息进行调整的事件。在图5的实施例中,第一输入所包含的事件可为触发对模拟设备的响应信息进行调整的事件,第二输入所包含的事件可为触发对模拟设备的响应信息进行重新加载的事件。
结合图6所示,在一个具体的实施例中,以华云数据安超OSTM云平台管理系统作为测试请求发送端700,普印力P8220高速行式打印机作为待模拟设备,通过软件系统测试模拟华云数据安超OSTM云平台管理系统在对接普印力P8220高速行式打印机时,是否可针对12条打印机设备通用型指令,正常获取到有效的反馈,以验证普印力P8220高速行式打印机和华云数据安超OSTM云平台管理系统是否存在不兼容问题。
其中,在模拟测试之前,华云数据安超OSTM云平台管理系统和软件系统通过网络建立通信连接,以确保华云数据安超OSTM云平台管理系统和软件系统可通过网络互访,且华云数据安超OSTM云平台管理系统拥有调用软件系统的对外接口层的权限(可在软件系统中维护有对应调用者的权限)。参图6所示,在本实施例中,具体的模拟测试过程可以为下述步骤一至步骤五所示。
步骤一,启动软件系统600后通过第一加载单元601加载软件系统的设备资产库602。软件系统的设备资产库中维护登记普印力P8220高速行式打印机(即模拟设备6032),并有两个模拟实例,两个模拟实例对应的唯一标识分别为“201.201.201.130”、“201.201.201.131”。
步骤二,通过第二加载单元604加载软件系统的设备响应信息库605。软件系统的设备响应信息库中存储普印力P8220高速行式打印机对特定指令的响应情况等响应信息,并具体包含下述步骤a至步骤e所示。
步骤a、软件系统收到“loginadmin/testuserpin201.201.201.130”的指令时,通过调用单元606调用标识为“201.201.201.130”的模拟实例对应的输出响应结果为“welcome!”,以在展示单元608中展示。
步骤b、软件系统600执行步骤a后收到“whoami”的指令时,通过调用单元606调用标识为“201.201.201.130”的模拟实例,对应的输出响应结果为“Isaac's printer”,以在展示单元608中展示。
步骤c、软件系统600执行步骤a后收到“listmq”的指令时,通过调用单元606调用标识为“201.201.201.130”的模拟实例对应的输出响应结果为“当前正在打印-张三的2020年上半年述职报告”,以在展示单元608中展示。
步骤d、当执行步骤a后收到“delmq-y”的指令时,通过调用单元606调用标识为“201.201.201.130”的模拟实例对应的输出响应结果为“已强制终止当前打印作业-张三的2020年上半年述职报告”,以在展示单元608中展示。
步骤e、当执行步骤a后收到“logout”指令时,通过调用单元606调用标识为“201.201.201.130”的模拟实例对应的输出响应结果为“bye!”,以在展示单元608中展示。此后必须再次执行步骤a才可运行步骤b、步骤c、步骤d、步骤e中的命令。
其中,若步骤b、步骤c、步骤d、步骤e的执行顺序出现异常,则返回“Internalerror”。若收到无法识别的指令,则输出响应结果为“Bad command or file name”。
步骤三,华云数据安超OSTM云平台管理系统对软件系统下发“loginadmin/testuserpin201.201.201.130”的指令,软件系统接收查询华云数据安超OSTM云平台管理系统下发的指令并查询设备响应信息库,以确定对应的反馈记录即输出响应结果为“welcome!”。
步骤四,华云数据安超OSTM云平台管理系统对软件系统下发“whoami”指令,软件系统接收到“whoami”指令后,查询设备响应信息库,以确定对应的反馈记录为“Isaac'sprinter”,并在展示单元608中展示输出响应结果“Isaac's printer”。
步骤五,华云数据安超OSTM云平台管理系统对软件系统下发“how old a u”指令,软件系统接收到“how old a u”指令后,查询设备响应信息库未找到对应的反馈记录,以在展示单元608中展示输出响应结果“Bad command or file name”。
由此可见,本发明实施例的软件系统的模拟方法无需购买或租赁或部署相关的服务器设备,通过预先封装的模拟设备对软件系统开放模拟接口,实现软件系统对模拟设备的模拟,以实现对软件系统的开发、测试等支撑,从而解决现有技术中需要部署或采购对应设备才可实现对软件系统的开发而导致软件系统开发过程复杂且开发周期较长的问题。
实施例二:
如图6所示,本发明实施例还提供一种软件系统的模拟系统,包括:软件系统600和用于向软件系统600发送目标输入指令的测试请求发送端700。其中,软件系统600包括:第一加载单元601,响应于目标输入指令,加载软件系统的设备资产库602,以确定软件系统中预先维护登记的目标设备603(模拟设备6032和/或对接的真实设备6031),其中,目标输入指令包含有输入参数;第二加载单元604,若软件系统中维护有模拟设备(模拟设备6032a、模拟设备6032b…),则加载设备响应信息库605,以确定模拟设备的响应信息,响应信息包括模拟设备对软件系统开放的模拟接口的输入参数、与输入参数对应的输出响应结果;调用单元606,控制软件系统调用模拟设备的响应信息;记录单元607,用于记录真实设备(真实设备6031a、真实设备6031b…)的执行信息;以及展示单元608,用于展示模拟设备的输出响应结果和/或真实设备的执行结果。例如,本实施例中的记录单元607可为数据库或者以日志形式进行存储的装置等存储设备。
应理解,本发明实施例的软件系统的模拟系统在测试请求发送端700向软件系统600发送目标输入指令后,通过第一加载单元601加载软件系统中的设备资产库602确定预先维护登记的模拟设备6032和/或对接的真实设备6031,并通过第二加载单元604在预先维护登记有模拟设备的情况下加载设备响应信息库605,确定包含有模拟设备对软件系统开放的模拟接口的输入参数及对应的输出响应结果的响应信息,以通过调用单元606控制软件系统调用模拟设备的响应信息和/或通过记录单元607记录真实设备的执行信息,以通过展示单元608展示反馈模拟设备的输出响应结果。由此可见,本发明实施例的软件系统的模拟系统通过预先封装的模拟设备对软件系统开放模拟接口,实现软件系统对模拟设备的模拟,而无需购买或租赁或部署相关的服务器设备即可实现对软件系统的开发、测试等支撑,从而解决现有技术中无法对特定设备进行模拟而需要部署或采购对应设备才可实现对软件系统的开发导致软件系统开发过程复杂且开发周期较长的问题。
本实施例所指的测试请求发送端700可配置为云平台管理系统,也可为能够向软件系统600发送目标输入指令的计算机装置(如笔记本电脑)或者邮件系统。
需要说明的是,本实施例与实施例一中相同部分的技术方案,请参实施例一所述,在此不再赘述。
实施例三:
如图7所示,本发明实施例提供的软件系统的模拟系统还可包括与软件系统600通信连接的远程接收端800,以在软件系统600中展示单元608展示模拟设备的输出响应结果和/或真实设备的执行结果后,将所展示的内容同步发送至远程接收端800,便于远程接收端800同时根据所接收的输出响应结果和/或执行结果进行存储或分析。此外,远程接收端800也可与测试请求发送端700通信连接,以在远程接收端800接收到输出响应结果和/或执行结果后,将所接收的内容反馈至测试请求发送端700。当然,也可有软件系统600直接将展示单元608所展示的内容反馈至测试请求发送端700。
需要说明的是,本实施例与实施例一和/或实施例二中相同部分的技术方案,请参实施例一和/或实施例二所述,在此不再赘述。
实施例四:
结合图8所示,本实施例揭示了一种计算机可读介质900的一种具体实施方式。该计算机可读介质900可整体或者部分配置于物理形态的计算机、服务器、集群服务器或者数据中心中。
在本实施例中,一种计算机可读介质900,该计算机可读介质900中存储有计算机程序指令901,计算机程序指令901被一处理器902读取并运行时,执行如实施例一所揭示的软件系统的模拟方法中的步骤。
可选地,计算机可读介质900可配置为服务器,且该服务器运行于构建私有云、混合云或者公有云的物理设备上。同时,该计算机可读介质900还可被配置为随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
该计算机可读介质900用于存储程序,处理器902在接收到执行指令后,以执行实施例一所揭示的软件系统的模拟方法。
同时,本实施例所揭示的处理器902可能是一种集成电路芯片,具有信号的处理能力。该处理器902可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该通用处理器也可以是任何常规处理器。
本实施例所揭示的一种计算机可读介质900中与实施例一和/或实施例二中相同部分的技术方案,请参实施例一和/或实施例二所述,在此不再赘述。
实施例五:
结合参照图9所示,本实施例揭示了一种终端设备1000,包括处理器1001、存储器1002及存储在所述存储器1002上并可在所述处理器1001上运行的计算机程序,所述计算机程序被所述处理器1001执行时实现如实施例一所揭示的软件系统的模拟方法的步骤。同时,在处理器1001与存储装置1002之间建立通信连接的通信总线1003。处理器1001用于执行存储装置1002中存储的一个或者多个程序,该程序为如实施例一所述的软件系统的模拟方法。
在本实施例中,该存储装置1002由存储单元10021~存储单元1002i组成,参数i取大于或者等1的正整数。该终端设备1000可被理解为一种计算机,一种集群服务器,或者云平台。
本实施例所揭示的终端设备1000所依赖/包含的软件系统的模拟方法的具体技术方案,请参实施例一所述,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。