CN109766274B - 一种测试脚本自动化融合方法、存储介质 - Google Patents
一种测试脚本自动化融合方法、存储介质 Download PDFInfo
- Publication number
- CN109766274B CN109766274B CN201811627321.9A CN201811627321A CN109766274B CN 109766274 B CN109766274 B CN 109766274B CN 201811627321 A CN201811627321 A CN 201811627321A CN 109766274 B CN109766274 B CN 109766274B
- Authority
- CN
- China
- Prior art keywords
- script
- fused
- operation elements
- time
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
一种测试脚本自动化融合方法,包括以下步骤:步骤1:从脚本文件中筛选待融合脚本列表;步骤2:对筛选出的待融合脚本列表,为每个待融合脚本中的操作元素按照操作元素的发生时间建立操作元素的时间线;步骤3:针对待融合脚本列表中的每个待融合脚本,选择不同待融合脚本中操作要素位于设定时间内的所有同类型操作要素,并选择其一作为融合后脚本的操作要素之一;步骤4:针对选择出的所有操作要素,根据各操作要素的发生时间,将各操作要素串联组合起来,生成新的融合脚本文件。本发明改进后,减少了手工操作的工作量,减少错误的发生。操作元素的选择有了明确的标准,避免人为感觉影响。
Description
技术领域
本发明涉及一种测试脚本的自动化融合方法。
背景技术
在自动化测试系统中,一般用内置的文本式的测试脚本来描述测试逻辑和预期结果。自动化测试系统解释执行测试脚本,触发相应的软硬件动作,产生信号或条件,在特定的条件下获取系统反馈,与预期结果相比较,判断系统反馈是否符合预期,从而判定系统功能是否符合设计要求。
测试脚本一般是可由软件解释执行的文本文件,可以采用通用的编程语言来编写,也可以采用自定义的文件格式。因考虑的因素不同,采用的测试脚本方式也不同,各家公司一般不公布自家的脚本格式定义。行业内可以查询到部分厂家使用XML来作为脚本语言定义测试脚本,XML作为一种结构化的数据表达方法,可以很好地定义数据结构,但XML不能被软件直接实行,存在效率问题。
同时,在自动化测试系统中,一般用内置的文本式的测试脚本来描述测试逻辑和预期结果。自动化测试系统解释执行测试脚本,触发相应的软硬件动作,产生信号或条件,在特定的条件下获取系统反馈,与预期结果相比较,判断系统反馈是否符合预期,从而判定系统功能是否符合设计要求。
测试脚本可以由测试人员手工编辑生成,也可以由测试人员录制手工测试过程,系统转化生成。手工编辑生成的脚本是明确的文本,不存在二义性。手工录制脚本时测试人员对操作过程、条件可能考虑不周到,不完善,从而导致录制生成的脚本不完善,因此需要对同一功能的脚本进行多次录制。多次录制出来的测试脚本内容不同,需要进行融合。
目前列控设备中的脚本融合一般通过手工进行。由测试人员手工选择各段测试脚本,组成新的测试脚本。
手工操作时,脚本挑选的工作量大,并且选择的脚本文件质量难以度量,缺乏明确的判断标准,随意性大。
发明内容
本发明提供一种测试脚本自动化融合的方法,该方法依据脚本文件的定义,进行测试脚本的自动化融合,以解决现有技术存在的问题。
本发明采用以下技术方案:
一种测试脚本自动化融合方法,包括:
步骤1:从测试脚本的脚本文件集中筛选待融合脚本列表;
步骤2:对筛选出的待融合脚本列表,为每个待融合脚本中的操作元素按照操作元素的发生时间建立操作元素的时间线;
步骤3:针对待融合脚本列表中的每个待融合脚本,选择不同待融合脚本中操作要素位于设定时间内的所有同类型操作要素,并选择其一作为融合后脚本的操作要素之一;
步骤4:针对选择出的所有操作要素,根据各操作要素的发生时间,将各操作要素串联组合起来,生成新的融合脚本文件。
所述测试脚本包括文件头和文件体;
所述文件头定义为:
1)脚本名称;
2)脚本种类;
3)脚本ID;
4)脚本功能简述;
5)脚本当前版本;
6)脚本发布日期;
7)脚本初创人;
8)脚本来源;
9)脚本运行所要求的LKJ软件版本;
10)脚本运行所要求的LKJ数据版本。
所述文件体内至少设置以下功能:
1) 设定仿真测试平台的输出信号;
2) 设定LKJ运行状态;
3) 获取LKJ反馈信息;
4) 测试结果判断;
5) 测试进度控制。
所述步骤1中,从脚本文件中筛选待融合脚本列表的方法包括:
步骤101:根据文件名称、功能、运行环境、版本、录制人、录制时间建立评价矩阵,评价矩阵包括操作要素以及其对应的向量;
步骤102:遍历待融合脚本,根据评价矩阵分析各融合脚本的相似性,进行聚类分析,罗列出待融合脚本列表;
步骤103:用户选择确定待融合的N个脚本文件。
所述步骤101中,首先定义关键词数据库,关键词数据库至少包括文件名称关键词数据库,功能描述关键词数据库,运行环境关键词数据库,版本关键词数据库;所述关键词数据库中包括关键词及其对应的向量;对待融合脚本文件的文本进行分析并且切词,然后针对切词后的脚本文件,与关键词数据库进行比对,获取待融合脚本的功能种类。
所述步骤2中,对筛选出的待融合脚本列表根据时序建立时间线的方法包括:
步骤201:为待融合脚本列表中的每个脚本建立数据结构,数据结构中的元素至少包括操作要素、相对时刻;所述相对时刻根据该脚本中的第一个操作要素获取;且所述第一个待融合脚本列表的相对时刻为零;
步骤202:根据待融合脚本中各操作要素的相对时刻的时序,对待融合脚本列表中每个待融合脚本的操作要素建立时间线。
所述步骤3中,针对待融合脚本列表中的每个待融合脚本,选择不同待融合脚本中操作要素位于设定时间内的所有同类型操作要素,并选择其一作为融合后脚本的操作要素之一的方法包括:
步骤301:从相对时刻为0的脚本开始,往后推进,遍历各待融合脚本的数据结构;
步骤302:寻找相对时刻在设定时间内的不同待融合脚本的同类型操作要素,并选择其一作为融合后脚本的操作要素之一;
步骤303:选定操作要素后,根据各操作要素的发生时间,将各操作要素串联组合起来,生成新的融合脚本文件。
所述步骤302中,寻找相对时刻在设定时间内的不同待融合脚本的同类型操作要素,并选择其一作为融合后脚本的操作要素之一的选择策略为:选择测试时间最短、最安全测试、操作最少策略中的一个策略。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述方法的步骤。
本发明的有益效果:
1)改进后,减少了手工操作的工作量,减少错误的发生。
2)操作元素的选择有了明确的标准,避免人为感觉影响。
3)新定义的测试脚本文件,满足人工图形化编辑、手动测试录制生成的要求,易于理解,采用Python和C语言结合的方式,既能满足LKJ业务逻辑灵活变更的需求,也能实时操控硬件,具备很高的执行效率。
具体实施方式
下面结合具体实施方式对本发明作进一步详细说明。
基于现有手工融合脚本工作量大、随意性大的缺点,本发明提供一种自动化的脚本融合方法,能够自动选取合适的脚本进行融合,减少手工操作的工作量和手工融合的错误发生。
脚本文件通常包括以下几个要素:
(1)文件头,包括文件名称、功能描述、运行的环境要求、录制人、录制时间;
(2)操作要素序列:是一系列的操作要素及其前提条件,操作要素内容包括时间、动作名称、动作参数等,比如 “20秒 设定速度输出 数值80”。操作要素可以有多种,比如设定速度、设定信号灯、设定柴油机转速等。
(3)期望的结果:包含条件输出结果。比如“紧急制动状态=输出”。
脚本融合的方法包括:
步骤1:从脚本文件中自动筛选功能相同的脚本文件,组成待融合脚本列表;该步骤具体包括以下步骤:
步骤101:脚本文件中包含定义本脚本文件的文件名称、功能描述、运行环境、版本的文件头。首先定义关键词数据库,关键词数据库至少包括文件名称关键词数据库,功能描述关键词数据库,运行环境关键词数据库,版本关键词数据库。
关键词数据库中包括关键词及其对应的向量(长度及方向),向量用于后续的关键词相关性分析。
对脚本文件的文件头进行分析并且切词,然后针对切词后的获得的关键词,与关键词数据库进行比对,获取脚本的主要功能种类,比如脚本是红灯制动控制模式的测试脚本、临时限速控制模式的测试脚本等。
步骤102:针对切词后的脚本文件,与关键词数据库进行比对,然后以文件名称、功能、运行环境、版本等关键词和录制人、录制时间建立评价矩阵,评价矩阵包括文件名称、功能、运行环境等关键词以及其对应的向量。
步骤103:基于上述方法遍历没有融合的脚本文件,分别计算每个脚本文件评价矩阵中各关键词的向量和,以向量和为依据,对所有没有融合的脚本文件进行聚类分析,根据类别罗列出待融合的脚本列表。
本发明中,上述的聚类分析可采用现有任何成熟应用的聚类算法。例如可采用现有的Kmeans算法,基本描述是:
同时提取 N 种特征,本发明中,该N种特征表示每个脚本评价矩阵关键词的向量,将它们放在一起组成一个 N 维向量,从而得到一个从原始数据集合到 N 维向量空间的映射——你总是需要显式地或者隐式地完成这样一个过程,然后基于某种规则进行分类,在该规则下,同组分类具有最大的相似性。
假设我们提取到原始数据的集合为(x1, x2, …, xn),n为特征数,并且每个特征xi为d维的向量,i为第i个特征,K-means聚类的目的就是,在给定分类组数k(k ≤ n)值的条件下,将原始数据分成k类:S = {S1, S2, …, Sk},在数值模型上,即对以下表达式求最小值:
这里μi 表示分类Si 的平均值。
给定K,聚类完成后,对于每个类,对该类中的所有样本点到该类中心点的距离的平方求和,记为sum,对每个类都这样求和,然后把所有类的sum加起来,总和记为SUM,聚类Kmeans算法就是要使得SUM最小。
步骤104:用户选择确定本次要融合的N个脚本文件。
步骤2:对每个脚本文件,均在内存中分别建立时间线。时间线为一个链表数据结构,链表的每个节点包括一个操作要素及其相关信息。该步骤可具体包括:
步骤201:打开要融合的N个脚本文件;
步骤202:为每个脚本文件建立链表Li(1≤i≤N)数据结构。每个脚本文件的链表数据结构上的每个链表节点包括一个操作要素的相关信息,该相关信息包括该操作要素的类型、名称、发生条件、操作数值和相对时刻。相对时刻是相对本脚本文件的第一个操作要素的相对时间,第一个操作要素的相对时刻为0,然后根据每个操作要素的具体操作时间获取每个操作要素的相对时刻。
步骤3:采取策略寻找恰当的操作要素,该步骤可具体包括:
步骤301:从每个链表的相对时刻0开始,往后推进,遍历查找各个链表。
步骤302:根据操作要素的类型,从选定的所有链表中寻找相对时刻时间最接近的同类型操作要素,根据测试时间最短(T策略)、最安全测试(S策略)、操作最少策略(M策略)等策略中的一个策略决定选择某个链表上的当前操作要素,该操作要素作为融合后脚本的操作要素之一。
步骤303:选定操作要素后,沿链表继续向前推进,重复操作要素选择过程,直到链表最后一个节点。
步骤4:组合操作要素
串联组合选定的操作要素,生成新的融合脚本文件。
以下为本发明所提供的一种脚本融合的具体实施方式,用于对本发明的具体过程进行说明。
该实施例针对以下两个脚本文件进行:
脚本1:
文件头:用于测试红灯停车模式的脚本,运营于LKJ-15S中,要求软件版本为V1.0.1,自身版本V1.0,由张三录制,录制时间2018年7月27日。
操作元素序列:
1、设定速度参数:要素类型=2,操作时间=0,速度值=0;
2、设定信号灯:要素类型=3,操作时间=5,信号=绿灯;
3、设计开车参数:要素类型=1,操作时间=8,设定司机号=1234,设定发车车站号=25;
4、设定速度:操作要素=2,操作时间=58,速度=20;
5、设定速度:操作要素=2,操作时间=80,速度=40;
6、设定信号:操作要素=3,操作时间=103,信号=红灯;
期待输出:
紧急制动=输出
脚本2:
文件头:用于测试红灯停车模式,运营于LKJ-15S中,要求软件版本为V1.0.0,自身版本V1.2,由李四录制,录制时间2018年7月28日。
操作元素序列:
1、设定速度参数:要素类型=2,操作时间=0,速度值=0
2、设定信号灯:要素类型=3,操作时间=2,信号=绿灯
3、设计开车参数:要素类型=1,操作时间=8,设定司机号=1234,设定发车车站号=25;
4、设定速度:操作要素=2,操作时间=65,速度=20
5、设定速度:操作要素=2,操作时间=70,速度=40
6、设定信号:操作要素=3,操作时间=120,信号=红灯
期待输出:
紧急制动=输出
融合步骤:
步骤1:经过切词分析,获值两者均为测试红灯停车模式的脚本,即功能相同,且运行环境相同,虽然软件版本由微小差异,录制人不同,录制时间不同,但可判断为一种类型脚本,可以进行融合。
步骤2:分别建立各自的操作序列,可以沿着各自的时间线罗列脚本操作要素。
步骤3:根据时间最短策略,从两个脚本中顺序寻找最合适的操作要素,就是操作时间最快的操作要素。
步骤4:将找到的操作要素合并在一起,形成融合后的脚本。脚本形式如下:
脚本New:
文件头:用于测试红灯停车模式的脚本,运营于LKJ-15S中,要求软件版本为V1.0.1,自身版本V1.0,融合生成,录制时间。
操作元素序列:
1、设定速度参数:要素类型=2,操作时间=0,速度值=0 ;来自脚本1。
2、设定信号灯:要素类型=3,操作时间=2,信号=绿灯;来自脚本2。
3、设计开车参数:要素类型=1,操作时间=8,设定司机号=1234,设定发车车站号=25;来自脚本1。
4、设定速度:操作要素=2,操作时间=58,速度=20 ;来自脚本1。
5、设定速度:操作要素=2,操作时间=70,速度=40 ;来自脚本2。
6、设定信号:操作要素=3,操作时间=103,信号=红灯;来自脚本1。
期待输出:
紧急制动=输出。
为了增加脚本融合过程中的效率,本发明还给出一种基于XML语言定义的脚本文件,该文件能够直接被原件实行,效率更高。
本发明的脚本文件基于以下设计原则:
1.考虑到脚本的可扩充性要求,采用了业内通用的脚本语言。
2.基础语言采用动态语言Python。动态语言在执行时动态加载,不需要预先编译,并且Python执行效率与C语言没有显著差异,满足测试过程的时效性要求。
3.Python语言与C语言结合完成硬件操作。与串口、以太网、CAN通信总线的接口采用C语言编写,Python语言调用C语言开发的模块来控制硬件,发送命令,采集反馈数据。
4.Python负责业务相关逻辑描述,C语言完成硬件操控,实现业务弹性和硬件控制实时性。
在Python语言的基础上,根据自动测试的需求以及LKJ(列车运行监控装置,广泛应用于中国铁路列车运行控制的安全保障设备)的业务逻辑,增加了LKJ业务逻辑相关的关键字,比如设定速度、检查限速数值、获取LKJ输出信息等,生成了ASTS(自动化仿真测试系统)脚本语言。
定义的脚本语言应用到自动化测试系统中,作为测试用例业务描述的语言,也是手动测试录制生成脚本的底层支持语言。
本发明的具体实现过程如下:
脚本文件结构化的,由文件头和文件体组成。
文件头是脚本描述,描述脚本的种类、编制人等。因此文件头的定义包括以下要素:
1)脚本名称(#ASTS_Script_Name):用关键字说明脚本的功能,例如:特殊前行模式测试
2)脚本种类(#ASTS_Script_Type):基本用例/测试实例/测试序列
3)脚本ID(#ASTS_Script_ID):ID由业务种类+序号组成。业务种类包括LKJ种类(LKJ2000、LKJ-15S)、设备种类(主机、显示器、其他设备)、测试种类(区分控制模式)和测试种类细分等。当业务种类无法区分复杂或重复业务时,以序号做区分。
4)功能简述(#ASTS_Script_Func):简单说明脚本的功能
5)当前版本(#ASTS_Script_Version):该脚本的版本号
6)发布日期(#ASTS_Script_ReleaseDate)
7)初创人(#ASTS_Script_Author)
8)来源(#ASTS_Script_Creater):人工编制或手工测试录制
9)脚本运行所要求的LKJ软件版本((#ASTS_Script_LKJ_Version):LKJ软件、LKJ控制条件版本号
10) 脚本运行所要求的LKJ数据版本((#ASTS_Script_LKJ_Data_Version):LKJ数据版本号
11) 其他:包含脚本解释所需的Package列表等,用于脚本解释器引入package。
以上1~10项要素可以Python脚本注释的方式存在。
文件体的定义为:
脚本文件体由功能相关的测试元素顺序组合构成。测试元素由名称、参数列表、函数代码构成,测试元素可通过函数或者结构体等实现,测试元素的参数列表罗列1..n个属性列表,包括属性名称、数据类型(取值类型、缺省值)。测试元素就是各种动作性命令或检查输出项的内容。
文件体内对Python的扩充包括以下五个方面。
(1)设定仿真测试平台的输出信号
设定仿真平台的输出信号,包括开关量信号和模拟量信号的输出,为LKJ提供外部信号条件,比如设定速度通道、各路压力信号、列车手柄信号、机车信号等。除简单的输出外,还可以做具备逻辑特征的信号逼近,比如跟踪速度函数可以持续跟踪LKJ限速的变化,自动调整速度信号,使得速度贴近限速运行,直到满足某个条件时退出速度跟踪。
(2)设定LKJ运行状态
设定LKJ运行状态,可以改变LKJ的运行控制参数和设备自身状态。比如对LKJ进行校时,设定司机发车参数,设定检修参数,对LKJ各插件单元嵌入式软件进行换装。
(3)获取LKJ反馈信息
仿真模拟平台能够接入LKJ内部总线,侦听总线数据,获取系统内部通信数据;也可以采集屏幕显示器(DMI)视频显示和音频输出,通过图像识别和音频识别,获取视频音频信息。
(4)测试结果判断
以断言Assert的方式进行测试结果判断,判断LKJ的信息输出和动作输出是否符合预期。(5)测试进度控制
以动态延时(ASTS_Delay)和进程挂起的方式控制脚本的执行进度,保证测试过程满足业务逻辑要求,也可以使得测试过程暂停和继续,实现“断点续测”。
以下为测试元素以及测试元素内部的参数列表的示意,参数列表可以包含多个属性列表,属性列表包括属性名称、数据类型(取值类型、缺省值)。
1 校时
1.1 定义
校正LKJ时间,延时后读取LKJ时间,判断LKJ时间正确性
1.2 属性
属性个数:1
1.3 代码
ASTS_SetLKJDateTime( )
业务逻辑:
当参数=-1时,用测控单元本机时间校正LKJ时间,年月日、时分秒、毫秒;参数=其他值时,用参数值设定LKJ时间。
2 速度变化
2.1 定义
设定速度信号输出
2.2 属性
属性个数:3。属性列表见下表。
表1
2.3 代码
ASTS_SetSuDu( ASTS_Temp_P1, ASTS_Temp_P2, ASTS_Temp_P3)
3 目标速度
3.1 定义
设定带有目标要求的速度输出。
3.2 属性
属性个数:6。属性列表见下表。
3.3 代码
ASTS_SetTargetSuDu()
业务逻辑: 不断设定速度值,间隔多长时间,与限速的差值多少,在要求的目标点时,令速度 = 目标速度,退出
要注意解决速度与限速的关系,注意限速突降时的超速问题
4 贴线速度
4.1 定义
设定贴限速线运行的速度曲线。
4.2 属性
属性个数:6。属性列表见下表。
4.3 代码
ASTS_SetFollowSuDu(参数列表)
业务逻辑:不断设定速度值, 令 速度=限速-与限速的差值,到目标点时退出
循环中等待多长时间,限速突变时防止超速的问题
5 速度通道
5.1 定义
按通道设定各通道速度输出。
5.2 属性
属性个数:13。属性列表见下表。
表2
5.3 代码
ASTS_SetTongDaoSuDu(ASTS_Temp_P1, ..., ASTS_Temp_P13)
6 设定压力
6.1 定义
设定各个风缸压力
6.2 属性
属性个数:6。属性列表见下表。
表1
6.3 代码
ASTS_SetAllGuanYa( 参数列表 )
7 总风缸压力
7.1 定义
设定总风缸压力
7.2 属性
属性个数:3。属性列表见下表。
7.3 代码
ASTS_SetZongGangYa( 参数列表 )
8 列车管压力
8.1 定义
设定列车管压力
8.2 属性
属性个数:3。属性列表见下表。
表1
8.3 代码
ASTS_SetLieCheGuanYa(参数列表)
9 制动缸压力
9.1 定义
设定制动缸压力
9.2 属性
属性个数:3。属性列表见下表。
9.3 代码
ASTS_SetZhiDongGangYa(参数)
10 均缸1压力
10.1 定义
设定均缸1压力
10.2 属性
属性个数:3。属性列表见下表。
10.3 代码
ASTS_SetJun1GangYa(参数)
11 均缸2压力
11.1 定义
设定均缸2压力
11.2 属性
属性个数:3。属性列表见下表。
11.3 代码
ASTS_SetJun2GangYa(参数)
12 工况设定
12.1 定义
设定工况输出信号
12.2 属性
属性个数:8。属性列表见下表。
12.3 代码
ASTS_SetGongKuang(参数9个)
13 开关量输入
13.1 定义
设定其他开关量输入信号
13.2 属性
属性个数:10。属性列表见下表。
13.3 代码
ASTS_SetKaiGuanLiang(参数列表)
14 发车参数输入
14.1 定义
设定司机发车参数
14.2 属性
属性个数:15。
14.3 代码
ASTS_SetKaiCheCanShu(参数)
15 检查点
15.1 定义
定义测试用例的预期结果。
15.2 属性
属性为ID、超时值和条件组合
15.3 前置代码
——ASTS_TimeOut = 超时值。设定本检查点操作的累加超时时间,单位:秒
——ASTS_InitTimeOut()
——ASTS_SetElementID( ID字符串 ):脚本底层支持库将此ID写入数据库,便于前端显示正在执行的用例元素。
——ASTS_WriteConditionString( 判定条件字符串 ):脚本底层支持库以此函数为起始标志,生成判定理由字符串。
15.4 条件代码
while ( ASTS_CheckTimeOut()<ASTS_TimeOut ):
if (条件):
ASTS_WriteResult( True )
else:
ASTS_WriteResult( False)
ASTS_Delay(0.05)
业务逻辑:
ASTS_WriteResult:将检查点的判定结果和判定理由写入数据库,判定理由包含检查点的判断条件描述以及获得的实际数值。
16 延时
16.1 定义
延时设定时间
16.2 属性
延时时间(秒),支持设定小数,比如0.05秒=50毫秒
16.3 代码
ASTS_Delay(参数)
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的技术人员来说,在不脱离本发明整体构思前提下,还可以作出若干改变和改进,这些也应该视为本发明的保护范围。
Claims (8)
1.一种测试脚本自动化融合方法,其特征在于,包括:
步骤1:从测试脚本的脚本文件集中筛选待融合脚本列表;
步骤2:对筛选出的待融合脚本列表,为每个待融合脚本中的操作要素按照操作要素的发生时间建立操作要素的时间线,操作要素内容包括时间、动作名称、动作参数;
步骤3:针对待融合脚本列表中的每个待融合脚本,选择不同待融合脚本中操作要素位于设定时间内的所有同类型操作要素,并选择其一作为融合后脚本的操作要素之一;
步骤4:针对选择出的所有操作要素,根据各操作要素的发生时间,将各操作要素串联组合起来,生成新的融合脚本文件;
所述步骤1中,从脚本文件中筛选待融合脚本列表的方法包括:
步骤101:根据文件名称、功能、运行环境、版本、录制人、录制时间建立评价矩阵,评价矩阵包括操作要素以及其对应的向量;
步骤102:遍历待融合脚本,根据评价矩阵分析各融合脚本的相似性,进行聚类分析,罗列出待融合脚本列表;
步骤103:用户选择确定待融合的N个脚本文件。
2.根据权利要求1所述的一种测试脚本自动化融合方法,其特征在于:
所述测试脚本包括文件头和文件体;
所述文件头定义为:
脚本名称;
脚本种类;
脚本ID;
脚本功能简述;
脚本当前版本;
脚本发布日期;
脚本初创人;
脚本来源;
脚本运行所要求的LKJ软件版本;
脚本运行所要求的LKJ数据版本。
3.根据权利要求2所述的一种测试脚本自动化融合方法,其特征在于:
所述文件体内至少设置以下功能:
设定仿真测试平台的输出信号;
设定LKJ运行状态;
获取LKJ反馈信息;
测试结果判断;
测试进度控制。
4.根据权利要求1所述的一种测试脚本自动化融合方法,其特征在于:
所述步骤101中,首先定义关键词数据库,关键词数据库至少包括文件名称关键词数据库,功能描述关键词数据库,运行环境关键词数据库,版本关键词数据库;所述关键词数据库中包括关键词及其对应的向量;对待融合脚本文件的文本进行分析并且切词,然后针对切词后的脚本文件,与关键词数据库进行比对,获取待融合脚本的功能种类。
5.根据权利要求1所述的一种测试脚本自动化融合方法,其特征在于:
所述步骤2中,对筛选出的待融合脚本列表根据时序建立时间线的方法包括:
步骤201:为待融合脚本列表中的每个脚本建立数据结构,数据结构中的元素至少包括操作要素、相对时刻;所述相对时刻根据该脚本中的第一个操作要素获取;且所述第一个待融合脚本列表的相对时刻为零;
步骤202:根据待融合脚本中各操作要素的相对时刻的时序,对待融合脚本列表中每个待融合脚本的操作要素建立时间线。
6.根据权利要求5所述的一种测试脚本自动化融合方法,其特征在于:
所述步骤3中,针对待融合脚本列表中的每个待融合脚本,选择不同待融合脚本中操作要素位于设定时间内的所有同类型操作要素,并选择其一作为融合后脚本的操作要素之一的方法包括:
步骤301:从相对时刻为0的脚本开始,往后推进,遍历各待融合脚本的数据结构;
步骤302:寻找相对时刻在设定时间内的不同待融合脚本的同类型操作要素,并选择其一作为融合后脚本的操作要素之一;
步骤303:选定操作要素后,根据各操作要素的发生时间,将各操作要素串联组合起来,生成新的融合脚本文件。
7.根据权利要求6所述的一种测试脚本自动化融合方法,其特征在于:
所述步骤302中,寻找相对时刻在设定时间内的不同待融合脚本的同类型操作要素,并选择其一作为融合后脚本的操作要素之一的选择策略为:选择测试时间最短、最安全测试、操作最少策略中的一个策略。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~7任一权利要求所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811627321.9A CN109766274B (zh) | 2018-12-28 | 2018-12-28 | 一种测试脚本自动化融合方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811627321.9A CN109766274B (zh) | 2018-12-28 | 2018-12-28 | 一种测试脚本自动化融合方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766274A CN109766274A (zh) | 2019-05-17 |
CN109766274B true CN109766274B (zh) | 2022-03-15 |
Family
ID=66452198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811627321.9A Active CN109766274B (zh) | 2018-12-28 | 2018-12-28 | 一种测试脚本自动化融合方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766274B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112147967A (zh) * | 2019-06-27 | 2020-12-29 | 北京新能源汽车股份有限公司 | 一种汽车控制器的场景测试用例自动生成方法及装置 |
CN112434309A (zh) * | 2020-12-18 | 2021-03-02 | 国网河北省电力有限公司电力科学研究院 | 渗透测试方法、装置、设备和存储介质 |
CN113127354B (zh) * | 2021-04-21 | 2023-08-11 | 武汉思普崚技术有限公司 | 基于Web UI的自动化测试方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599044A (zh) * | 2008-06-05 | 2009-12-09 | 国网南京自动化研究院 | 一种测试用例的执行方法 |
CN101727903A (zh) * | 2008-10-29 | 2010-06-09 | 中国科学院自动化研究所 | 基于多特征和多系统融合的发音质量评估和错误检测方法 |
WO2018121531A1 (zh) * | 2016-12-30 | 2018-07-05 | 中兴通讯股份有限公司 | 一种生成测试用例脚本的方法和装置 |
-
2018
- 2018-12-28 CN CN201811627321.9A patent/CN109766274B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599044A (zh) * | 2008-06-05 | 2009-12-09 | 国网南京自动化研究院 | 一种测试用例的执行方法 |
CN101727903A (zh) * | 2008-10-29 | 2010-06-09 | 中国科学院自动化研究所 | 基于多特征和多系统融合的发音质量评估和错误检测方法 |
WO2018121531A1 (zh) * | 2016-12-30 | 2018-07-05 | 中兴通讯股份有限公司 | 一种生成测试用例脚本的方法和装置 |
Non-Patent Citations (1)
Title |
---|
"使用QTP对Silverlight应用进行自动化测试的研究与实践";王健等;《软件》;20140723(第4期);第18-20页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109766274A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN109766274B (zh) | 一种测试脚本自动化融合方法、存储介质 | |
CN105955889B (zh) | 一种图形界面自动化测试方法 | |
CN109086199B (zh) | 一种自动化生成测试脚本的方法、终端和可存储介质 | |
CN109684223B (zh) | 一种测试脚本自动化链接方法、存储介质 | |
CN110399609B (zh) | 意图识别方法、装置、设备及计算机可读存储介质 | |
JPH08241193A (ja) | コード・セグメント解析方法。 | |
CN104679807A (zh) | 基于图的计算中的数据日志记录 | |
CN107862327B (zh) | 一种基于多特征的安全缺陷识别系统和方法 | |
CN110377704A (zh) | 数据一致性的检测方法、装置和计算机设备 | |
CN111046930A (zh) | 一种基于决策树算法的供电服务满意度影响因素识别方法 | |
CN111159241B (zh) | 一种点击转化预估方法及装置 | |
CN115048370B (zh) | 用于大数据清洗的人工智能处理方法及大数据清洗系统 | |
CN115373879A (zh) | 一种面向大规模云数据中心智能运维的磁盘故障预测方法 | |
CN112685374B (zh) | 日志分类方法、装置及电子设备 | |
CN116126740B (zh) | 模型在环测试方法、装置、计算机设备及存储介质 | |
CN115345600B (zh) | 一种rpa流程的生成方法和装置 | |
CN113821452B (zh) | 根据被测系统测试表现动态生成测试案例的智能测试方法 | |
CN112541091A (zh) | 图像搜索方法、装置、服务器和存储介质 | |
CN112182413B (zh) | 一种基于教学大数据的智能推荐方法及服务器 | |
JP2022082525A (ja) | 機械学習基盤情報の提供方法および装置 | |
CN114926154B (zh) | 一种多场景数据识别的保护切换方法及系统 | |
CN114912447B (zh) | 基于智慧城市的数据处理方法及设备 | |
CN114546706B (zh) | 一种应用于深度学习的应用程序缺陷分析方法及服务器 | |
CN117610945B (zh) | 基于人工智能的复杂山区地质灾害风险评价方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |