一种基于桌面操作系统的测试脚本颗粒化方法及系统与流程

文档序号:27769711发布日期:2021-12-04 02:22阅读:156来源:国知局
一种基于桌面操作系统的测试脚本颗粒化方法及系统与流程

1.本技术涉及软件自动化测试领域,尤其涉及一种基于桌面操作系统的测试脚本颗粒化方法及系统。


背景技术:

2.目前在桌面操作系统测试的过程中,存在很多应用广泛的测试套件,这些测试套件内包含大量的测试项。测试套件在使用时往往需要进行安装依赖包、编译、安装套件等过程,测试完毕后,需要对测试套件进行卸载清理等操作。由于测试套件包含大量的测试项,往往会有很多可选参数供使用者使用,参数搭配比较复杂,需要一定的学习成本。这些操作如果每次都由测试人员手工执行的话效率低下,因此就需要通过编写测试脚本,由测试脚本来自动化的进行测试套件的安装、执行和卸载等工作,测试人员只需要执行测试脚本就可以完成整个测试,提高测试效率。
3.由于测试套件内的测试项有时可能多达几百个,如果只编写一个测试脚本执行全部的测试项,那么当有部分测试项执行失败需要重跑时,只能重跑整个测试脚本,将测试脚本内的全部测试项都重跑一遍,耗费大量的测试时间,同时不利于测试问题定位。因此就必须对测试脚本进行颗粒化,细化测试脚本的粒度,一个测试脚本只对应测试套件内的一个测试项。当某个测试项执行失败时,用户只需要针对性的重跑失败项即可,提高了测试出错后重跑验证以及问题定位的效率。
4.现有的测试脚本颗粒化方案大多是编写一个测试脚本,通过传递不同参数的方式来执行不同的测试项,或者人工为测试套件内的每个测试项编写一个测试脚本,来实现对测试套件内具体测试项的调用。如果通过传参数的方式,由用户根据测试需要设置不同的参数来运行不同的测试项,就需要用户了解测试脚本各个参数的具体含义,如果测试套件内有几百个测试项,那么参数值的可选范围非常庞大,这就提高了测试执行的难度,降低了测试脚本的易用性;如果通过人工为测试套件内的每个测试项编写一个独立的测试脚本的方式,每个测试脚本以测试用例名,那么用户不需要了解测试套件本身的使用方式和参数,只需要根据测试需要执行不同的脚本即可。但是如果测试套件内有几百个测试项,就需要对应的编写几百个测试脚本,测试脚本的开发和维护成本比较高。


技术实现要素:

5.为解决上述现有技术所存在的问题,本发明提出了一种基于桌面操作系统的测试脚本颗粒化方法及系统,能够对测试脚本快速实现颗粒化,有效节省测试脚本的开发和维护成本。
6.为实现上述目的,本发明第一方面提出一种基于桌面操作系统的测试脚本颗粒化方法,包括如下步骤:步骤s1、生成测试脚本模板,所述测试脚本模板中包括有不同的测试项在执行过程中存在的相同的逻辑代码以及待替换的标签字段;
步骤s2、将各测试项所对应的不同的逻辑代码作为各测试项对应的配置信息生成测试脚本配置文件;步骤s3、根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本。
7.可选地,还包括:步骤s4、在生成测试脚本后获取脚本生成结果信息,根据所述脚本生成结果信息创建测试脚本生成记录。
8.可选地,所述步骤s3包括:将所述测试脚本模板和所述测试脚本配置文件放到测试脚本生成工具的目录下,执行测试脚本生成工具,所述测试脚本生成工具根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本。
9.可选地,所述根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本包括:步骤s31:加载测试脚本模版,通过正则表达式获取测试脚本模版中待替换的标签字段;步骤s32:加载测试脚本配置文件,逐一处理测试脚本配置文件中每个测试项的配置信息,将可替换的标签及其真实值以键值对的方式保存;步骤s33:根据步骤s32的执行结果,读取每个测试项的全部键值对的配置信息,依次对未处理的测试项配置信息执行步骤34;当所有测试项的配置信息都处理完毕后,创建测试脚本生成记录;步骤s34:逐一检查测试项的配置信息中是否有所述测试脚本模板中匹配到的待替换的标签字段,如果有,则将配置信息中保存的标签的真实值替换到所述测试脚本模板中;步骤s35:创建新的测试脚本,将步骤s34中替换完毕的测试脚本模板写入到新的测试脚本中,写入完毕后,返回步骤s33,继续处理下一个测试项的配置信息,直至所有测试脚本生成完毕。
10.可选地,所述测试脚本配置文件采用csv的格式,每一行代表一个测试项的全部差异配置,每一列代表一个可替换的标签字段。
11.可选地,所述步骤s2中,测试项的配置信息包括:测试项对应的测试用例名称、步骤、生成的测试脚本名称、详细测试执行命令及参数。
12.本发明第二方面提出一种基于桌面操作系统的测试脚本颗粒化系统,包括:测试脚本模板单元,用于存储不同的测试项的执行过程中存在的相同的逻辑代码以及待替换的标签字段;测试脚本配置单元,用于配置测试项对应的配置信息;测试脚本生成单元,用于根据所述测试脚本配置单元的配置信息动态查找并替换所述测试脚本模板单元内的待替换的标签字段,生成测试脚本。
13.可选地,还包括:记录单元,用于在生成测试脚本后获取脚本生成结果信息,根据所述脚本生成结果信息创建测试脚本生成记录。
14.可选地,所述测试脚本生成单元包括:脚本加载子单元,用于加载所述测试脚本模版单元,通过正则表达式获取所述测试脚本模版单元中待替换的标签字段;配置文件加载子单元,用于加载所述测试脚本配置单元,逐一处理所述测试脚本配置单元中每个测试项的配置信息,将可替换的标签及其真实值以键值对的方式保存;配置信息处理子单元,用于读取每个测试项的全部键值对的配置信息,依次对未处理的测试项配置信息进行处理,逐一检查测试项的配置信息中是否有所述测试脚本模板单元中匹配到的待替换的标签字段,如果有,则将配置信息中保存的标签的真实值替换到所述测试脚本模板单元中;脚本生成子单元,用于根据替换后的所述测试脚本模板单元生成测试脚本。
15.从以上技术方案可以看出,本发明的技术方案具有以下优点:1、本发明提出的一种基于桌面操作系统的测试脚本颗粒化方法及系统,能够对测试脚本快速实现颗粒化,有效节省测试脚本的开发和维护成本。测试脚本颗粒化可以使每个测试脚本只对应一个测试用例,提高了执行自动化测试的灵活性,同时提高测试用例执行失败后的重测和问题定位的效率。
16.2、本发明基于测试脚本模板文件进行测试脚本生成,如果后续自动化测试执行方式发生变更,测试脚本之间相同的公共代码逻辑部分发生改变,只需要修改脚本模板文件重新批量生成,可维护性强。
17.3、本发明通过csv格式的配置文件管理大量测试项的差异配置信息,可读性强,方便修改,便于后续维护。
附图说明
18.为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明实施例中的基于桌面操作系统的测试脚本颗粒化方法的总体框架设计图;图2是本发明实施例中基于桌面操作系统的测试脚本颗粒化方法的步骤流程图。
具体实施方式
20.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.参见图1和图2,本实施例的测试脚本颗粒化方法的执行主体主要包含三部分:测试脚本模板、测试脚本配置文件、测试脚本生成工具。
22.(1)测试脚本模板:测试脚本模板是批量生成测试脚本的基础。以测试套件的脚本颗粒化为例,测试套件内不同的测试项的执行过程中,存在大量的相同的逻辑代码,只有少
部分差异点。比如测试套件的安装、运行、结果处理的操作流程和方法是基本一致的,差异点在于不同的测试项需要执行不同的命令、传递不同的参数,部分测试项可能需要一些独立的特殊配置。那么对于相同的逻辑代码,就可以写死在测试脚本模版中,对于差异的逻辑代码,可以设置特殊的标签,由测试脚本生成工具读取测试脚本配置文件后进行动态替换。
23.(2)测试脚本配置文件:测试脚本配置文件用于配置不同测试脚本之间的差异代码,为了便于维护,配置文件采用csv的格式,每一行代表一个测试项的全部差异配置,每一列代表一个可替换的标签字段。
24.(3)测试脚本生成工具:测试脚本生成工具是实现颗粒化的主程序,其主要作用是加载测试脚本模版,读取测试脚本配置文件,根据配置文件中的内容,动态查找并替换测试脚本模板内的特殊标签,生成真正用于执行的测试脚本,并记录测试脚本生成结果。
25.在本实施例中,测试脚本颗粒化方法包括如下步骤:步骤s1、生成测试脚本模板,所述测试脚本模板中包括有不同的测试项在执行过程中存在的相同的逻辑代码以及待替换的标签字段。根据对不同的测试项的执行流程进行相同点和差异点的分析,编写测试脚本模板文件,对于相同的逻辑代码,直接写死在模板中即可,对于差异的部分,用特殊的标签进行占位,方便后续解析并替换真正的执行代码到标签所在位置。
26.步骤s2、将各测试项所对应的不同的逻辑代码作为各测试项对应的配置信息生成测试脚本配置文件。根据对不同的测试项进行分析,将测试项对应的测试用例名称、步骤、生成的测试脚本名称、详细测试执行命令或者参数等其他信息,根据需要填写到配置文件中,每个测试项对应配置文件中的一条配置记录。
27.步骤s3、根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本。
28.需要理解地,本实施例适用于多个测试脚本之间存在大量相同的逻辑代码,只存在少量差异逻辑代码的情况,比如执行测试套件内的测试项的场景,测试套件的编译、安装、配置、结果处理等代码就是测试脚本之间的相同的逻辑代码,通过不同的命令来执行不同的测试项就是差异逻辑代码。本发明实施例针对在编写大量自动化测试脚本时,如果脚本之间大部分代码逻辑是相同的,只有少量差异点的情况,可以通过本实施例中的这种自动化的方案批量生成测试脚本,快速完成脚本颗粒化。通过测试脚本模板文件实现对一组测试脚本的相同的代码逻辑的复用,通过在测试脚本模板文件中添加特殊的标签字段实现对一组测试脚本的差异性内容的区分。通过简单易维护的测试脚本配置文件,实现数据驱动批量替换测试脚本模板中的特殊标签并生成测试脚本,快速完成测试脚本颗粒化工作。因此,和其他同类技术相比较,本实施例具有以下几点优势:1、在为不同测试项编写测试脚本时,如果分析后发现测试脚本之间相同的代码逻辑的居多,只存在少量差异点的情况,可以全自动批量生成测试脚本,有效节省测试脚本开发的时间;2、本实施例基于测试脚本模板文件进行测试脚本生成,如果后续自动化测试执行方式发生变更,测试脚本之间相同的公共代码逻辑部分发生改变,只需要修改脚本模板文件重新批量生成,可维护性强;3、本实施例通过配置文件管理大量测试项的差异配置信息,可读性强,方便修改,便于后续维护。
29.在一个改进实施例中,还包括:步骤s4、在生成测试脚本后获取脚本生成结果信息,根据所述脚本生成结果信息
创建测试脚本生成记录。将测试脚本的生成结果信息写入到生成记录中,方便使用者检查测试脚本批量生成的结果。
30.在作为对上述实施例的进一步改进,所述步骤s3包括:将所述测试脚本模板和所述测试脚本配置文件放到测试脚本生成工具的目录下,执行测试脚本生成工具,所述测试脚本生成工具根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本。其中,根据所述测试脚本配置文件中的配置信息动态查找并替换测试脚本模板内的待替换的标签字段,生成测试脚本包括:步骤s31:加载测试脚本模版,通过正则表达式获取测试脚本模版中待替换的标签字段;步骤s32:加载测试脚本配置文件,逐一处理测试脚本配置文件中每个测试项的配置信息,将可替换的标签及其真实值以键值对的方式保存;步骤s33:根据步骤s32的执行结果,读取每个测试项的全部键值对的配置信息,依次对未处理的测试项配置信息执行步骤34;当所有测试项的配置信息都处理完毕后,创建测试脚本生成记录;步骤s34:逐一检查测试项的配置信息中是否有所述测试脚本模板中匹配到的待替换的标签字段,如果有,则将配置信息中保存的标签的真实值替换到所述测试脚本模板中;步骤s35:创建新的测试脚本,在结果文件夹中创建新的测试脚本,脚本名称以配置信息中保存的测试用例名称来命名,将步骤s34中替换完毕的测试脚本模板写入到新的测试脚本中,写入完毕后,返回步骤s33,继续处理下一个测试项的配置信息,直至所有测试脚本生成完毕。
31.本实施例通过依次处理测试项配置信息,通过测试脚本模板文件实现对一组测试脚本的相同的代码逻辑的复用,批量生成测试脚本,能够对测试脚本快速实现颗粒化,有效节省测试脚本的开发和维护成本。
32.本发明实施例还提出一种基于桌面操作系统的测试脚本颗粒化系统,包括:测试脚本模板单元,用于存储不同的测试项的执行过程中存在的相同的逻辑代码以及待替换的标签字段;测试脚本配置单元,用于配置测试项对应的配置信息;测试脚本生成单元,用于根据所述测试脚本配置单元的配置信息动态查找并替换所述测试脚本模板单元内的待替换的标签字段,生成测试脚本。
33.作为对上述系统的改进,还包括:记录单元,用于在生成测试脚本后获取脚本生成结果信息,根据所述脚本生成结果信息创建测试脚本生成记录。
34.作为对上述系统的改进,所述测试脚本生成单元包括:脚本加载子单元,用于加载所述测试脚本模版单元,通过正则表达式获取所述测试脚本模版单元中待替换的标签字段;配置文件加载子单元,用于加载所述测试脚本配置单元,逐一处理所述测试脚本配置单元中每个测试项的配置信息,将可替换的标签及其真实值以键值对的方式保存;
配置信息处理子单元,用于读取每个测试项的全部键值对的配置信息,依次对未处理的测试项配置信息进行处理,逐一检查测试项的配置信息中是否有所述测试脚本模板单元中匹配到的待替换的标签字段,如果有,则将配置信息中保存的标签的真实值替换到所述测试脚本模板单元中;脚本生成子单元,用于根据替换后的所述测试脚本模板单元生成测试脚本。
35.本实施例的基于桌面操作系统的测试脚本颗粒化系统的工作原理和上述方法的步骤流程相同,再此不做赘述。
36.本发明涉及的缩略语和关键术语定义如下:粒度:对于测试脚本来说,粒度指的是一个测试脚本的测试范围。
37.脚本颗粒化:测试脚本可以测试一组功能(粗粒度),也可以只测试单个功能(细粒度)。脚本颗粒化指的是将一个粗粒度的脚本拆分细化为多个细粒度的脚本的过程。
38.测试套件:测试套件即一组相关的测试的集合。
39.应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1