本发明涉及车辆领域,尤其涉及一种测试脚本的生成方法和装置。
背景技术:
现有技术中,汽车控制器的应用越来越广泛,汽车控制器的设计也越来越复杂,在市场激烈的竞争下,要求汽车控制器能够被快速开发和测试,以便尽早投入市场,所以目前的汽车控制器的测试一般采用自动化测试。
dSPACE产品是被广泛应用在汽车控制器的硬件在环自动测试系统中的产品之一,它具有精度高、可靠性高和能适用多种复杂工况等特点。Automation Desk是基于dSPACE平台搭建的汽车控制器的硬件在环自动测试系统中的测试脚本开发环境。在该环境下,测试脚本开发人员按照测试人员编写的测试用例开发测试脚本。
由于汽车控制器越来越复杂,其对应的测试用例和测试场景也越来越多,所以自动测试脚本的开发工作量越来越大,导致开发周期变长;并且由于测试脚本开发人员的开发习惯差异,导致测试脚本的差异很大,测试脚本的可阅读性和可复用性较低。因此,有必要改进上述缺陷。
技术实现要素:
基于以上问题,本发明提出一种测试脚本的生成方法和装置,解决了现有技术中需要测试人员参与生成测试脚本的过程,使测试脚本开发周期变长和测试脚本的复用性差的问题,本发明实施例能够根据测试用测和变量库自动生成测试脚本,缩短了测试脚本开发周期,使汽车控制器能够快速的被测试,从而能够尽早投入市场;而且使生成的测试脚本的结构和格式统一,增强了测试脚本的可阅读性和复用性。
一方面,本发明提出一种测试脚本的生成方法,包括:
加载测试用例和变量库,所述测试用例中包括至少一个测试用例数据,所述变量库中包括至少一个测试用例变量;
根据所述测试用例和所述变量库,采用测试脚本生成规则生成测试脚本。
此外,所述测试用例数据至少包括测试用例序号、测试用例标定值、测试用例变量、测试步骤和/或测试预期结果。
此外,所述测试用例变量至少包括系统初始化变量、报文变量和/或子系统变量。
此外,在所述加载测试用例和变量库之前,所述方法还包括:显示测试脚本的生成界面,所述生成界面用于加载所述测试用例和所述变量库。
此外,所述测试脚本生成规则至少包括:测试脚本的工程结构、测试脚本的序列结构和/或测试脚本的测试步骤。
此外,所述测试用例由输入了所述测试用例数据的测试用例模板生成。
另一方面,本发明提出一种测试脚本的生成装置,包括:
加载模块,用于:加载测试用例和变量库,所述测试用例中包括至少一个测试用例数据,所述变量库中包括至少一个测试用例变量;
生成模块,用于:根据所述测试用例和所述变量库,采用测试脚本生成规则生成测试脚本。
此外,所述测试用例数据至少包括测试用例序号、测试用例标定值、测试用例变量、测试步骤和/或测试预期结果。
此外,所述测试用例变量至少包括系统初始化变量、报文变量和/或子系统变量。
此外,在所述加载测试用例和变量库之前,所述装置还包括显示模块,用于:显示测试脚本的生成界面,所述生成界面用于加载所述测试用例和所述变量库。
此外,所述测试脚本生成规则至少包括:测试脚本的工程结构、测试脚本的序列结构和/或测试脚本的测试步骤。
此外,所述测试用例由输入了所述测试用例数据的测试用例模板生成。
通过采用上述技术方案,具有如下有益效果:
本发明解决了现有技术中需要测试人员参与生成测试脚本的过程,使测试脚本开发周期变长和测试脚本的复用性差的问题,本发明实施例能够根据测试用测和变量库自动生成测试脚本,缩短了测试脚本开发周期,使汽车控制器能够快速的被测试,从而能够尽早投入市场;而且使生成的测试脚本的结构和格式统一,增强了测试脚本的可阅读性和复用性。
附图说明
图1是根据本发明一个实施例的测试脚本的生成方法的流程图;
图2是根据本发明另一个实施例的测试脚本的生成方法的流程图;
图3是根据本发明另一个实施例的测试脚本的生成方法中的生成界面的示意图;
图4是根据本发明另一个实施例的测试脚本的生成方法中的测试用例模板的示意图;
图5是根据本发明另一个实施例的测试脚本的生成方法中的变量库的存储结构的示意图;
图6是根据本发明另一个实施例的测试脚本的生成方法中的测试脚本的工程结构的示意图;
图7是根据本发明另一个实施例的测试脚本的生成装置的框图。
具体实施方式
以下结合具体实施方案和附图对本发明进行进一步的详细描述。其只意在详细阐述本发明的具体实施方案,并不对本发明产生任何限制,本发明的保护范围以权利要求书为准。
实施例一
参照图1,本发明实施例提出一种测试脚本的生成方法,包括:
步骤S001,加载测试用例和变量库,测试用例中包括至少一个测试用例数据,变量库中包括至少一个测试用例变量;
步骤S002,根据测试用例和变量库,采用测试脚本生成规则生成测试脚本。
在步骤S001中,先加载测试用例和变量库,测试用例可以是一个文件,通过加载测试用例文件加载测试用例,变量库里面存储了生成测试脚本所需的变量,在生成测试脚本的时候,从变量库中读取需要的不同的变量,变量库可以为一个文件,如扩展名为.lib的文件。
在步骤S002中,当测试用例和变量库已经加载完毕后,执行生成测试脚本的程序,该程序根据测试脚本生成规则编写,执行完毕该程序后,生成测试脚本。
本发明实施例解决了现有技术中需要测试人员参与生成测试脚本的过程,使测试脚本开发周期变长和测试脚本的复用性差的问题,本发明实施例能够根据测试用测和变量库自动生成测试脚本,缩短了测试脚本开发周期,使汽车控制器能够快速的被测试,从而能够尽早投入市场;而且使生成的测试脚本的结构和格式统一,增强了测试脚本的可阅读性和复用性。
实施例二
参照图2,本发明实施例提出一种测试脚本的生成方法,包括:
步骤S201,显示测试脚本的生成界面,生成界面用于加载测试用例和变量库。图3所示为生成界面,在生成界面提供加载测试用例的入口“用例_源文件”,提供加载变量库的入口“库_源文件”,可选地,还可以提供“生成脚本”的按钮或者“测试”按钮。通过提供测试脚本的生成界面,使用户更加方便的加载测试用例和变量库,也更加方便的进行测试脚本的生成。
步骤S202,通过测试脚本的生成界面加载测试用例和变量库,测试用例中包括至少一个测试用例数据,变量库中包括至少一个测试用例变量。
测试用例数据至少包括测试用例序号、测试用例标定值、测试用例变量、测试步骤和/或测试预期结果。
可选地,参照图4,测试用例由输入了测试用例数据的测试用例模板生成。
建立测试用例模板,测试用例模板可包含以下五个区域:
用例序号区:用于填写测试用例序号及测试步骤的序号,序号唯一。
用例标定区:用于填写和测试用例相关的测试用例标定值。
变量区:用于填写测试工程中要用到的测试用例变量,如Python变量。
动作区:用于填写测试步骤中的动作。
预期结果区:用于填写测试步骤中的测试预期结果。
通过分区域输入测试用例数据,使输入时能够更加清晰同时方便检查错误。
在测试用例模板中填写测试用例数据时,需要遵守测试用例模板的规则,如:测试用例序号唯一,两个测试步骤之间插入新步骤时不能影响测试用例序号。如:测试用例标定值中标定名称和软件发布标定名称保持一致,标定值名称和软件发布标定名称的字符之间不能有空格,如Ke_PRZ_Enable=True。变量去中填写的测试用例变量可来源于变量库。通过制定测试模板输入测试用例数据的规范,使测试模板生成测试用例时的一致性增强。
步骤S203,根据测试用例和变量库,采用测试脚本生成规则生成测试脚本。
图5所示为变量库的存储结构。可选地,测试用例变量至少包括系统初始化变量、报文变量和/或子系统变量。
系统初始化变量的命名规则为:以Sys_XXXX形式进行命名。
报文变量的命名规则为:以Rx_CAN_XXXX1_XXXX2形式命名。
子系统变量的命名规则为:Act_XXXX1_XXXX2形式命名。
通过在变量库中设置不同的变量种类,从而使自动加载变量时的正确率提高。
可选地,测试脚本生成规则至少包括:测试脚本的工程结构、测试脚本的序列结构和/或测试脚本的测试步骤。
测试脚本的工程结构可包括:
工程名称区:可以自定义工程名称(一般和测试对象相关)。
测试平台区:填写测试平台名称和测试用例文件的路径。
标定值区:填写发布软件中的标定变量。
结果变量区:填写测试用例中测试预期结果中的变量。
加载程序区:加载测试程序。
测试序列区:填写测试用例序号。
测试脚本的序列结构中主要包括:测试步骤区和打印结果区。
测试脚本的测试步骤主要包括:测试时间区、读取测试结果区和对比实际测试结果与预期测试结果区。
图6所示为测试脚本的工程结构。通过设置测试脚本生成规则使测试用例按照相同的规则生成测试脚本,使测试脚本的一致性增强。
本发明实施例通过测试脚本的生成界面加载测试用例和变量库,使加载过程更加方便;通过测试用例模板生成测试用例,使测试用例的一致性得到保证,从而使生成的测试脚本的可读性和可复用性增强。
实施例三
参照图7,本发明实施例提出一种测试脚本的生成装置,包括:
加载模块701,用于:加载测试用例和变量库,测试用例中包括至少一个测试用例数据,变量库中包括至少一个测试用例变量;
生成模块702,用于:根据测试用例和变量库,采用测试脚本生成规则生成测试脚本。
可选地,测试用例数据至少包括测试用例序号、测试用例标定值、测试用例变量、测试步骤和/或测试预期结果。
可选地,测试用例变量至少包括系统初始化变量、报文变量和/或子系统变量。
可选地,在加载测试用例和变量库之前,装置还包括显示模块,用于:显示测试脚本的生成界面,生成界面用于加载测试用例和变量库。
可选地,测试脚本生成规则至少包括:测试脚本的工程结构、测试脚本的序列结构和/或测试脚本的测试步骤。
可选地,测试用例由输入了测试用例数据的测试用例模板生成。
以上所述的仅是本发明的原理和较佳的实施例。应当指出,对于本领域的普通技术人员来说,在本发明原理的基础上,还可以做出若干其它变型,也应视为本发明的保护范围。