掌桥专利:专业的专利平台
掌桥专利
首页

一种自动化测试方法及其装置

文献发布时间:2023-06-19 19:28:50


一种自动化测试方法及其装置

技术领域

本申请属于仿真建模技术领域,尤其涉及一种自动化测试方法及其装置。

背景技术

自动化测试即为对相关设计产品进行全面仿真测试,便于对设计进行快速验证,包括接口测试、余度管理测试、机内测试(Built-In Test,BIT)测试、控制逻辑、控制率测试等。

相关技术中,已有的自动化测试软件需要将测试过程拆分成不同可执行的步骤,定义关键字,应对不同的需求的变化,需要定制开发相应的关键字,开发工作量较大。如果新增某些特殊场景,需要修改软件增加关键字,流程复杂,不利于用户进行编辑维护。因此,相关技术中用户编辑测试过程,以及对其进行修改和维护的工作量较大,降低了测试效率。

发明内容

本申请实施例的目的是提供一种自动化测试方法及其装置,能够降低用户编辑测试过程,以及对其进行修改和维护的工作量,提高自动化测试的效率。

第一方面,本申请实施例提供一种自动化测试方法,该方法包括:

响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件(InterfaceControl Document,ICD)参数,生成用例执行信息,

通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,

调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。

在第一方面的一些可实现方式中,在响应于用户对上位机的用户界面的第一输入之前,方法还包括:

获取预设编写脚本,将预设编写脚本作为指令,创建动态库模板,其中,动态库模板包括程序文件和编译脚本文件,程序文件用于调用模板调度接口,模板调度接口用于调用ICD接口和输入/输出IO通信接口,编译脚本文件包括编译指令。

在第一方面的一些可实现方式中,第一参数包括步骤名称、执行类型和运行周期,ICD参数包括ICD的域、增加参数、ICD通道绑定参数、输入ICD变量和输出ICD变量。

在第一方面的一些可实现方式中,执行用例自定义步骤,包括:

在开始执行用例自定义步骤之前,定义执行状态值为NULL,

在开始执行用例自定义步骤时,将执行状态值变为INIT并进行初始化DoInit函数调用,以及控制调度引擎进行定时器的初始化准备,

在执行用例自定义步骤的情况下,将执行状态值变为RUN,并控制调度引擎按照运行周期发送信号,

在用例自定义步骤执行完成后,若接收到下一个信号,则执行DoOneStep函数,

循环判断用例自定义步骤的执行状态值,若执行状态值为STOP,则用例自定义步骤退出循环,否则用例自定义步骤不退出循环,

在用例自定义步骤退出循环的情况下,执行DoDispose函数,并控制调度引擎关闭定时器。

在第一方面的一些可实现方式中,方法还包括以下至少一项:

响应于对执行状态值的编辑输入,将执行状态值变更为STOP或PAUSE;

控制调度引擎将执行状态值变更为STOP或PAUSE。

在第一方面的一些可实现方式中,ICD接口包括ICD输入接口和ICD输出接口,在控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数之后,方法还包括:

调用ICD输出接口,对ICD的域进行打包,得到打包数据,

调用ICD输出接口向IO板卡发送打包数据,以使IO板卡向外部设备发送打包数据,IO板卡与外部设备连接;

调用IO板卡采集外部设备的设备数据之后,按照输入ICD接口的定义参数,对设备数据进行解包并更新数据。

在第一方面的一些可实现方式中,方法还包括:

基于编译指令的增加参数,在编译时生成支持用例自定义步骤运行的动态库。

在第一方面的一些可实现方式中,方法还包括:

通过上位机向下位机下发用例执行信息,其中,上位机与下位机之间通过中间件交互。

第二方面,本申请实施例提供一种自动化测试装置,该装置包括:

配置模块,用于响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,

第一控制模块,用于通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,

第一调用模块,用于调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。

在第二方面的一些可实现方式中,装置还包括:

创建模块,用于获取预设编写脚本,将预设编写脚本作为指令,创建动态库模板,其中,动态库模板包括程序文件和编译脚本文件,程序文件用于调用模板调度接口,模板调度接口用于调用ICD接口和输入/输出IO通信接口,编译脚本文件包括编译指令。

在第二方面的一些可实现方式中,第一调用模块用于:

在开始执行用例自定义步骤之前,定义执行状态值为NULL,

在开始执行用例自定义步骤时,将执行状态值变为INIT并进行初始化DoInit函数调用,以及控制调度引擎进行定时器的初始化准备,

在执行用例自定义步骤的情况下,将执行状态值变为RUN,并控制调度引擎按照运行周期发送信号,

在用例自定义步骤执行完成后,若接收到下一个信号,则执行DoOneStep函数,

循环判断用例自定义步骤的执行状态值,若执行状态值为STOP,则用例自定义步骤退出循环,否则用例自定义步骤不退出循环,

在用例自定义步骤退出循环的情况下,执行DoDispose函数,并控制调度引擎关闭定时器。

在第二方面的一些可实现方式中,装置还包括:

变更模块,用于响应于对执行状态值的编辑输入,将执行状态值变更为STOP或PAUSE;

第二控制模块,用于控制调度引擎将执行状态值变更为STOP或PAUSE。

在第二方面的一些可实现方式中,ICD接口包括ICD输入接口和ICD输出接口,在控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数之后,装置还包括:

第二调用模块,用于调用ICD输出接口,对ICD的域进行打包,得到打包数据,

第三调用模块,用于调用ICD输出接口向IO板卡发送打包数据,以使IO板卡向外部设备发送打包数据,IO板卡与外部设备连接;

第四调用模块,用于调用IO板卡采集外部设备的设备数据之后,按照输入ICD接口的定义参数,对设备数据进行解包并更新数据。

在第二方面的一些可实现方式中,装置还包括:

生成模块,用于基于编译指令的增加参数,在编译时生成支持用例自定义步骤运行的动态库。

在第二方面的一些可实现方式中,装置还包括:

下发模块,用于通过上位机向下位机下发用例执行信息,其中,上位机与下位机之间通过中间件交互。

第三方面,本申请实施例提供一种电子设备,包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现如第一方面的自动化测试方法的步骤。

第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面的自动化测试方法的步骤。

第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被存储在非易失的存储介质中,所述计算机程序产品被至少一个处理器执行以实现如第一方面的自动化测试方法的步骤。

第六方面,本申请实施例提供了一种芯片,该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现如第一方面的自动化测试方法的步骤。

本申请提供一种自动化测试方法及其装置,响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。如此,由于上位机与下位机相关联,在传输数据时可以自动配置相关信息,用户对于编辑测试过程、修改维护的操作要求更加简便,同时可以针对每一种自动化测试自定义测试步骤,可调用不同自动化测试模型生成的模型动态库。可满足与不同的仿真试验的场景,可扩展性强,便于用户扩充自动化测试的功能,提高了测试效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍。

图1是本申请一实施例提供的自动化测试方法的流程示意图;

图2是本申请一实施例提供的执行用例自定义步骤的流程示意图;

图3是本申请另一实施例提供自动化测试方法的流程示意图;

图4是本申请实施例提供的一种自动化测试装置的结构示意图;

图5是本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

已有的自动化测试软件需要将测试过程拆分成不同可执行的步骤,定义关键字,应对不同的需求的变化,需要定制开发相应的关键字,开发工作量较大。如果新增某些特殊场景,需要修改软件增加命令字,影响软件的架构。对于用例的复杂计算,通过增加关键字的方式软件不便于支持。对于全数字仿真模型仿真同测试用例同步仿真测试的场景,需要联合其他软件,无法保证同步调用的精度。

为了改善相关技术中的问题,本申请实施例提供了一种自动化测试方法,通过响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。如此,由于上位机与下位机相关联,在传输数据时可以自动配置相关信息,用户对于编辑测试过程、修改维护的操作要求更加简便,同时可以针对每一种自动化测试自定义测试步骤,可调用不同自动化测试模型生成的模型动态库。可满足与不同的仿真试验的场景,可扩展性强,便于用户扩充自动化测试的功能,提高了测试效率。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的自动化测试方法进行详细地说明。

图1是本申请一实施例提供的自动化测试方法的流程示意图,该自动化测试方法的执行主体可以为电子设备。

该电子设备可以为手机、平板电脑、智能穿戴设备、边缘侧设备、云端服务设备、服务器或者服务器集群等,本申请对此不做具体限定。

下面以自动化测试方法的执行主体为电子设备为例,说明本申请的自动化测试方法。需要说明的是,上述执行主体和应用场景并不构成对本申请的限定。

如图1所示,本申请实施例提供的自动化测试方法可以包括步骤110-步骤130。

步骤110,响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,

步骤120,通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,

步骤130,调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。

本申请实施例提供的自动化测试方法,通过响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。如此,由于上位机与下位机相关联,在传输数据时可以自动配置相关信息,用户对于编辑测试过程、修改维护的操作要求更加简便,同时可以针对每一种自动化测试自定义测试步骤,可调用不同自动化测试模型生成的模型动态库。可满足与不同的仿真试验的场景,可扩展性强,便于用户扩充自动化测试的功能,提高了测试效率。

下面结合具体地实施例,详细介绍上述步骤的具体实现方式。

在步骤110中,上位机是指可以直接发出操控命令的计算机,在计算机上有可供用户输入的用户界面。

其中,第一输入可以包括第一子输入、第二子输入和第三子输入,其中,第一子输入用于配置与第一测试场景关联的用例自定义步骤的第一参数,第二子输入用于配置与第一测试场景关联的动态库模板,第三子输入用于配置接口控制文件ICD参数。

示例性地,第一子输入可以为在用户界面对用例自定义步骤的第一参数的编辑输入,该第一参数例如可以是步骤名称;用户界面可以显示多个动态库模板的名称,第二子输入可以为用户从多个动态库模板的名称中选取目标名称的输入,该目标名称关联的动态库模板即为与第一测试场景关联的动态库模板,或者,该第二子输入为对动态库模板名称的编辑输入;第三子输入可以为用户在用户界面编辑ICD参数的输入,该输入例如可以是键盘输入、手势输入或者语音输入等,本申请对此不做具体限定。

第一测试场景可以是自动化测试场景,例如可以是接口测试场景、余度管理测试场景、BIT测试场景、控制逻辑测试场景、控制率测试场景、IO通道故障逻辑测试场景和模拟量输入信号监控测试场景等任意一种。

用例自定义步骤可以是与第一测试场景关联的自动化测试方法的自定义步骤,具体可以用于测试第一场景下的自定义功能。第一参数可以是与第一测试场景关联的相关一个或多个参数,具体可以是步骤名称、执行类型和运行周期等。

在一些实施例中,为了使第一参数和ICD参数更加精确,第一参数可以包括步骤名称、执行类型和运行周期,ICD参数包括ICD的域、增加参数、ICD通道绑定参数、输入ICD变量和输出ICD变量。

动态库是一个包含可由多个程序同时使用的代码和数据的库,动态库可以使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个动态库中,该动态库包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

接口控制文件ICD参数可以是定义和描述组成航空电子系统的各分系统和电子设备之间接口信号的功能、技术特性及使用说明的技术文件。用例执行信息可以是由ICD信息和第一参数信息生成的。

在一些实施例中,为了增强动态库模板的适用性和灵活性,响应多变、复杂的场景的需求,本申请还提供了自动化测试方法的另一种实现方式,在响应于用户对上位机的用户界面的第一输入之前,该实现方式还可以包括:

获取预设编写脚本,将预设编写脚本作为指令,创建动态库模板,其中,动态库模板包括程序文件和编译脚本文件,程序文件用于调用模板调度接口,模板调度接口用于调用ICD接口和输入/输出IO通信接口,编译脚本文件包括编译指令。

在上述实施例中,预设编写脚本可以是编译指令,模板调度接口可以是一个或多个用于函数调度的接口。ICD接口可以提供函数接口,可对ICD所在通道进行收发。IO通信接口可以提供函数接口,可对ICD所在通道进行收发。上述实施例具体可以是用户编写预设脚本,创建动态库模板。

其中,模板调度接口主要包括以下接口:autoTestDoInitialization,其函数原型为int autoTestDoInitialization(),该接口为初始化函数,会在启动前进行调用,函数返回值为0时代表执行成功,否则执行失败;autoTestDoOneStep,函数原型为intautoTestDoOneStep(double time),该接口为测试步骤的运行周期执行函数,按照运行周期调用此函数,参数为time,表示当前运行次数,从0开始,函数返回值为0时代表执行成功,否则执行失败;autoTestDoDispose,函数原型为int autoTestDoDispose(),该接口为资源释放函数,会在结束时进行调用,函数返回值为0时代表执行成功,否则执行失败。

ICD接口包括:etICDData,函数原型为int setICDData(string ICDID,stringfieldID,double data),该接口主要用于设置ICD域(调用ICDManager设置并打包);其函数参数包括ICDID、fieldID、data。其中ICDID为输入参数,是ICD唯一标识,该名称为可扩展的标识语言(eXtensibleMarkupLanguage,xml)ICDID的内容;fieldID为输入参数,是ICD域唯一标识,该名称为xml文件中FieldID的内容;Data为输入参数,可以是设置的值;函数返回值为0时代表执行成功,否则执行失败。getICDData,函数原型为int getICDData(stringICDID,string fieldID,double*data),该接口用于获取ICD域(解包并获取);其函数参数包括ICDID、fieldID、data;其中ICDID为输入参数,是ICD唯一标识,该名称为xml文件中ICDID的内容;fieldID为输入参数,是ICD域唯一标识,该名称为xml文件中FieldID的内容;Data为输出参数,可以是获取的值;函数返回值为0时代表执行成功,否则执行失败。

IO通信接口可以包括:sendICDChnData,函数原型为int sendICDChnData(stringICDID,string cardType,int cardID),该接口通过ICD的uuid在对应的板卡发数据(先从打解包Tx缓存中获取数据再发送);其函数参数包括ICDID、cardType、cardID;其中ICDID为输入参数,是ICD唯一标识,该名称为xml文件中ICDID的内容;cardType为输入参数,是ICD域唯一标识,为板卡类型,该名称为xml文件中CardType的内容;cardID为输入参数,可以是板卡号,该名称为xml文件中CardID的内容;函数返回值为0时代表执行成功,否则执行失败。receiveICDChnData,函数原型为int receiveICDChnData(string ICDID,stringcardType,int cardID),该接口通过ICD的uuid在对应的板卡收数据(先收数据再更新打解包Rx缓存中);其函数参数包括ICDID、cardType、cardID;其中ICDID为输入参数,是ICD唯一标识,该名称为xml文件中ICDID的内容;cardType为输入参数,是ICD域唯一标识,为板卡类型,该名称为xml文件中CardType的内容;cardID为输入参数,可以是板卡号,该名称为xml文件中CardID的内容;函数返回值为0时代表执行成功,否则执行失败。

如此,通过根据预设编写脚本,其中,预设编写脚本包括编译指令,可以根据指令生成对应的动态库模板,即支持自定义动态库的模板,增强了动态库模板的适用性和灵活性,可以响应多变、复杂的场景的需求。

在步骤120中,下位机可以是直接控制设备获取设备状况的计算机,ICD参数可以包括ICD的域、增加参数、ICD通道绑定参数、输入ICD变量和输出ICD变量等任意一个或多个参数。可以是上位机向下位机发送用例执行信息,控制下位机调用动态库解析用例执行信息,得到第一参数和ICD参数。

在一个实施例中,自动化测试采用上下位机架构,上位机完成软件设置、ICD管理、设备的路由配置管理、用例管理、执行和监控。

示例性地,可以是在用例自定义步骤执行前,上位机下发用例执行信息,通过上下位机接口实现下发用例步骤的信息。用例执行时,用例执行信息被下位机服务器传入动态库中,可用于动态库进行解算。

在一些实施例中,为了使自动化测试更加准确,本申请实施例还提供了自动化测试方法的另一实现方式,ICD接口可以包括ICD输入接口和ICD输出接口,在步骤120中控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数之后,该具体实现方式还可以包括:

调用ICD输出接口,对ICD的域进行打包,得到打包数据,

调用ICD输出接口向IO板卡发送打包数据,以使IO板卡向外部设备发送打包数据,IO板卡与外部设备连接;

调用IO板卡采集外部设备的设备数据之后,按照输入ICD接口的定义参数,对设备数据进行解包并更新数据。

在上述实施例中,动态库提供ICD输入输出接口,通过ICD与IO间关联可完成ICD打解包和IO间的通信。

作为一个示例,上位机设置的ICD域通过下位机服务解析传入动态库中,输出ICD经打包后发给IO板卡,IO板卡采集到的数据按照输入ICD定义解包后并更新数据。

如此,通过调用ICD输出接口,对ICD的域进行打包,得到打包数据,调用ICD输出接口向IO板卡发送打包数据,以使IO板卡按照输入ICD接口的定义参数,对打包数据进行解包并更新数据,由于动态库提供ICD输入输出接口,ICD与IO间相关联,可完成ICD打解包和IO间的通信,完成数据的传输,使自动化测试过程更加准确。

在步骤130中,可以是下位机调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤。

作为一个示例,调用动态库基于ICD参数进行解算,可以是调用动态库基于ICD参数中的输入ICD变量和输出ICD变量进行解算。

需要说明的是,在执行用例自定义步骤时,多个步骤可以基于同一运行周期同时执行。

在一些实施例中,为了使用例自定义步骤更加精确,保证实时性,本申请还提供了执行用例自定义步骤的一种实现方式,如图2所示,该实现方式具体可以包括:

步骤210,在开始执行用例自定义步骤之前,定义执行状态值为NULL,

步骤220,在开始执行用例自定义步骤时,将执行状态值变为INIT并进行初始化DoInit函数调用,以及控制调度引擎进行定时器的初始化准备,

步骤230,在执行用例自定义步骤的情况下,将执行状态值变为RUN,并控制调度引擎按照运行周期发送信号,

步骤240,在用例自定义步骤执行完成后,若接收到下一个信号,则执行DoOneStep函数,

步骤250,循环判断用例自定义步骤的执行状态值,若执行状态值为STOP,则用例自定义步骤退出循环,否则用例自定义步骤不退出循环,

步骤260,在用例自定义步骤退出循环的情况下,执行DoDispose函数,并控制调度引擎关闭定时器。

在上述实施例中,执行状态值可以是表示自定义测试步骤的状态的字符,例如可以是NULL、INIT、RUN或STOP等。用例调度引擎可以用于完成实时自动化测试调度。

如此,通过在开始执行用例自定义步骤之前,定义执行状态值为NULL,在开始执行用例自定义步骤时,将执行状态值变为INIT并进行初始化DoInit函数调用,以及控制调度引擎进行定时器的初始化准备,在执行用例自定义步骤的情况下,将执行状态值变为RUN,并控制调度引擎按照运行周期发送信号,在用例自定义步骤执行完成后,若接收到下一个信号,则执行DoOneStep函数,循环判断用例自定义步骤的执行状态值,若执行状态值为STOP,则用例自定义步骤退出循环,否则用例自定义步骤不退出循环,在用例自定义步骤退出循环的情况下,执行DoDispose函数,并控制调度引擎关闭定时器,完成了自定义步骤的执行,使用例自定义步骤更加精确,可以精准定时,保证实时性。

在一些实施例中,为了增强用例自定义步骤的适用性,本申请实施例还提供了自动化测试的另一种实现方式,该实现方式还可以包括至少以下一项:

响应于对执行状态值的编辑输入,将执行状态值变更为STOP或PAUSE;

控制调度引擎将执行状态值变更为STOP或PAUSE。

在上述实施例中,在自定义测试步骤动态库中可主动将执行状态变为STOP或PAUSE,也可由调度引擎改变执行状态为STOP或PAUSE。

如此,通过,在自定义测试步骤动态库中可主动将执行状态变为STOP或PAUSE,也可由调度引擎改变执行状态为STOP或PAUSE,使用户自定义更改执行状态,可以控制自定义执行步骤的过程,增强了用例自定义步骤的适用性。

在一些实施例中,为了使动态库具有适用性,本申请还提供了自动化测试方法的另一种实现方式,该实现方式还可以包括:

基于编译指令的增加参数,在编译时生成支持用例自定义步骤运行的动态库。

示例性地,通过编译指令增加参数DEBUG=1,在编译时生成支持调试环境运行的动态库。

如此,通过基于编译指令的增加参数,在编译时生成支持用例自定义步骤运行的动态库,使用户可以根据需要自定义指令增加参数,从而在编译时生成可以调试的动态库,使动态库更具有适用性。

在一些实施例中,本申请还提供了自动化测试方法的另一种实现方式,该实现方式还可以包括:

通过上位机向下位机下发用例执行信息,其中,上位机与下位机之间通过中间件交互。

在一些实施例中,上下位机通过中间件交互,下位机在实时Linux操作系统中,接收上位机下发的用例执行信息等信息。

为了更清楚的理解本方案,本申请还提供了一种自动化测试的架构示意图。具体如图3所示。

在上位机中,包含ICD管理模块、设备管理模块、软件设置模块、用例管理模块、用例执行模块以及用例监控模块。在下位机中,包含IO通信模块、用例执行模块、自动化调度模块以及ICD打解包模块,在下位机中可以处理用例执行信息、绑定信息和ICD信息。上位机和下位机通过中间件进行连接。

其中,ICD打解包模块用于ICD数据解析,实现按照数据定义完成打包和解包。IO通信模块用于对IO驱动进行封装,在用例执行时完成IO数据收发。用例自动化调度引擎模块采用基于频率调度技术,使用高精度时钟,实现实时自动化调度。自定义测试步骤动态库模块:提供程序文件,即C程序的模板文件,编译脚本文件,即Makefile的编译脚本的模板文件,提供模板调度接口,ICD接口,外部IO通信接口。

可以理解的是,本申请实施例提供的自动化测试方法,执行主体可以为电子设备,或者自动化测试装置中用于执行自动化测试方法的控制模块。下面对自动化测试装置进行详细介绍。

图4是本申请实施例提供的一种自动化测试装置的结构示意图。如图4所示,该自动化测试装置400可以包括:配置模块410、第一控制模块420、第一调用模块430。

其中,配置模块410,用于响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,

第一控制模块420,用于通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,

第一调用模块430,用于调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。

本申请提供的自动化测试装置,通过响应于用户对上位机的用户界面的第一输入,配置与第一测试场景关联的用例自定义步骤的第一参数,以及与第一测试场景关联的动态库模板和接口控制文件ICD参数,生成用例执行信息,通过向下位机下发用例执行信息,控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数,调用动态库基于ICD参数进行解算,并基于第一参数和动态库模板执行用例自定义步骤,用例自定义步骤用于测试第一测试场景下的自定义功能。如此,由于上位机与下位机相关联,在传输数据时可以自动配置相关信息,用户对于编辑测试过程、修改维护的操作要求更加简便,同时可以针对每一种自动化测试自定义测试步骤,可调用不同自动化测试模型生成的模型动态库。可满足与不同的仿真试验的场景,可扩展性强,便于用户扩充自动化测试的功能,提高了测试效率。

在本申请的一些实施例中,自动化测试装置400还包括:

创建模块,用于获取预设编写脚本,将预设编写脚本作为指令,创建动态库模板,其中,动态库模板包括程序文件和编译脚本文件,程序文件用于调用模板调度接口,模板调度接口用于调用ICD接口和输入/输出IO通信接口,编译脚本文件包括编译指令。

在本申请的一些实施例中,第一调用模块430用于:

在开始执行用例自定义步骤之前,定义执行状态值为NULL,

在开始执行用例自定义步骤时,将执行状态值变为INIT并进行初始化DoInit函数调用,以及控制调度引擎进行定时器的初始化准备,

在执行用例自定义步骤的情况下,将执行状态值变为RUN,并控制调度引擎按照运行周期发送信号,

在用例自定义步骤执行完成后,若接收到下一个信号,则执行DoOneStep函数,

循环判断用例自定义步骤的执行状态值,若执行状态值为STOP,则用例自定义步骤退出循环,否则用例自定义步骤不退出循环,

在用例自定义步骤退出循环的情况下,执行DoDispose函数,并控制调度引擎关闭定时器。

在本申请的一些实施例中,自动化测试装置400还包括:

变更模块,用于响应于对执行状态值的编辑输入,将执行状态值变更为STOP或PAUSE;

第二控制模块,用于控制调度引擎将执行状态值变更为STOP或PAUSE。

在本申请的一些实施例中,ICD接口包括ICD输入接口和ICD输出接口,在控制下位机调用动态库解析用例执行信息得到第一参数和ICD参数之后,自动化测试装置400还包括:

第二调用模块,用于调用ICD输出接口,对ICD的域进行打包,得到打包数据,

第三调用模块,用于调用ICD输出接口向IO板卡发送打包数据,以使IO板卡向外部设备发送打包数据,IO板卡与外部设备连接;

第四调用模块,用于调用IO板卡采集外部设备的设备数据之后,按照输入ICD接口的定义参数,对设备数据进行解包并更新数据。

在本申请的一些实施例中,解析单元具体用于:在第一模型的各级模块中包括子系统模块的情况下,解析子系统模块的下级模块,得到子系统模块的子模块。

在本申请的一些实施例中,装置还包括:

生成模块,用于基于编译指令的增加参数,在编译时生成支持用例自定义步骤运行的动态库。

在本申请的一些实施例中,自动化测试装置400还包括:

下发模块,用于通过上位机向下位机下发用例执行信息,其中,上位机与下位机之间通过中间件交互。

本申请实施例提供的自动化测试装置,能够实现图1-3的方法实施例中电子设备所实现的各个过程,并能实现相同的技术效果,为避免重复,在此不再赘述。

图5是本申请实施例提供的一种电子设备的硬件结构示意图。

如图5所示,本实施例中的电子设备500可以包括处理器501以及存储有计算机程序指令的存储器502。

具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。存储器可包括只读存储器(Read-Only Memory,ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个数据有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请实施例的方法所描述的操作。

处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种自动化测试方法。

在一个示例中,电子设备500还可以包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。

通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线510包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

本申请实施例提供的电子设备,能够实现图1-3的方法实施例中电子设备所实现的各个过程,并能实现相同的技术效果,为避免重复,在此不再赘述。

结合上述实施例中的自动化测试方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种自动化测试方法的步骤。

结合上述实施例中的自动化测试方法,本申请实施例可提供一种计算机程序产品来实现。该(计算机)程序产品被存储在非易失的存储介质中,该程序产品被至少一个处理器执行时实现上述实施例中的任意一种自动化测试方法的步骤。

本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述自动化测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

技术分类

06120115920273