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

电磁环境混合自动化测试方法、系统、存储介质及终端设备

文献发布时间:2023-06-19 11:29:13


电磁环境混合自动化测试方法、系统、存储介质及终端设备

技术领域

本发明属于软件自动化测试技术领域,具体涉及一种电磁环境混合自动化测试方法、系统、存储介质及终端设备。

背景技术

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

轨道车辆运行中将经历复杂动态变化的电磁环境,面临着来自系统内外的各类电磁骚扰源的发射,且各类发射源之间存在较强的耦合、辐射、传导和串扰等骚扰传输途径混合并存,使得对系统级的电磁兼容性研究的复杂度上升。

针对轨道交通系统电磁环境的复杂化,目前的测试方法有的还是需要人员参与,有的测试内容固定,无法简单添加或更新,对于新的电磁测试项目无法实现,或者需要因需求频繁变动需要改动测试框架的代码,也存在新功能的增加会影响已有功能的问题。

发明内容

本发明为了解决上述问题,提出了一种电磁环境混合自动化测试方法、系统、存储介质及终端设备,本发明可以节省人力和物力,还可以提高测试效率,降低时间成本。

根据一些实施例,本发明采用如下技术方案:

一种电磁环境混合自动化测试方法,包括以下步骤:

获取数据文件;

按照顺序读取功能点,并判断功能点执行状态;

获取执行的功能点所对应的测试用例和测试数据;

提取测试用例和测试数据的关键字,确定测试用例步骤,读取测试用的操作执行对象;

通过图像匹配实现相应元素定位,在相应位置处按照测试步骤执行所述测试用例;

记录测试用例执行情况相关参数,生成测试报告。

作为可选择的实施方式,提取测试用例和测试数据的关键字,确定测试用例步骤的具体过程包括:预先将需要执行的动作封装成为相应关键字,将相应的关键字与测试步骤相对应。

作为进一步限定的实施方式,预先将需要执行的动作封装成为相应关键字时,不同需要执行的动作所对应的关键字固定,通过不同的关键字进行组合确定不同测试步骤,结合不同的数据,形成不同的测试用例。

作为可选择的实施方式,如果需要对测试用例进行修改,在预先封装的关键字中增加相应操作方法的定义,并加入当执行该关键字时要调用的方法,在测试步骤中添加对应的步骤。

作为可选择的实施方式,通过图像匹配实现相应元素定位的具体过程包括:对控件截图和当前页面截图进行预处理和特征提取,将两图像进行匹配,得出元素在页面上的位置坐标值,从而实现元素的执行操作。

作为进一步限定的实施方式,对控件截图和当前页面截图进行预处理的过程包括:对图像进行灰度化处理,将图像每个像素点的RGB值统一成一个值,将三通道变成单通道。

作为进一步限定的实施方式,对控件截图和当前页面截图进行特征提取的过程包括:利用SIFT算法,进行建立高斯尺度空间,局部极值点检测,关键点方向计算,生成特征向量,以实现特征点的提取,得到两幅图像的特征点集。

作为可选择的实施方式,图像匹配的具体过程包括:

判断该元素的定位方式是否为图像匹配,如果是图像匹配,从图像库中获取对应的控件截图,同时对当前页面进行截图操作并保存,对两幅图像进行匹配,得出控件截图在页面中的位置坐标,并将该坐标存放为变量待使用;通过匹配获得的坐标信息,实现页面该坐标处对应操作的执行。

作为可选择的实施方式,测试用例执行情况相关参数包括但不限于:测试用例名称及测试执行状态,测试用例执行失败时过程日志记录以及出现问题的位置和原因,测试用例开始执行的时间点和执行用例所需时间。

一种电磁环境混合自动化测试系统,包括:

接收模块,被配置为接收输入的数据文件;

读取模块,被配置为按照顺序读取功能点,并判断功能点执行状态,获取执行的功能点所对应的测试用例和测试数据;

驱动模块,被配置为提取测试用例和测试数据的关键字,确定测试用例步骤,读取测试用的操作执行对象;

图像匹配模块,被配置为通过图像匹配实现相应元素定位;

执行模块,被配置为在相应位置处按照确定的测试步骤执行所述测试用例;

报告生成模块,被配置为记录测试用例执行情况相关参数,生成测试报告;

封装模块,被配置为封装测试执行过程中所涉及的算法。

作为可选择的实施方式,所述驱动模块,包括数据驱动模块、关键字驱动模块和WebUI驱动模块,所述数据驱动模块,被配置为将测试用例中的测试数据和测试脚本分离,关键字驱动模块,被配置为根据预先设定的关键字的定义和测试数据,确定对应关测试步骤,WebUI驱动模块,被配置为提供Web页面元素定位和执行测试步骤中的操作的函数。

作为可选择的实施方式,所述封装模块,被配置为实现数据的存储和单元格数据的读取、生成图片名称、获取系统当前时间和对页面进行截图。

作为可选择的实施方式,所述执行模块,被配置为调用所述驱动模块的关键字提取结果,以及所述封装模块的相关算法,实现测试用例的执行。

作为可选择的实施方式,所述图像匹配模块包括预处理模块、特征提取模块以及匹配模块,所述预处理模块被配置为对图像进行灰度化处理,将图像每个像素点的RGB值统一成一个值,将三通道变成单通道;

所述特征提取模块,被配置为利用SIFT算法,进行建立高斯尺度空间,局部极值点检测,关键点方向计算,生成特征向量,以实现特征点的提取,得到两幅图像的特征点集;

所述匹配模块,被配置为从图像库中获取对应的控件截图,同时对当前页面进行截图操作并保存,对两幅图像进行匹配,得出控件截图在页面中的位置坐标。

作为可选择的实施方式,所述报告生成模块被配置为根据测试结果,对测试用例不同的运行状态进行筛选,并显示测试用例名称及测试执行状态,测试用例执行失败时过程日志记录以及出现问题的位置和原因,测试用例开始执行的时间点和执行用例所需时间。

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的一种电磁环境混合自动化测试方法的步骤。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的一种电磁环境混合自动化测试方法的步骤。

与现有技术相比,本发明的有益效果为:

本发明结合了数据驱动测试框架和关键字驱动测试框架的优点,针对=不能识别的非Web元素的问题,利用SIFT算法进行图像匹配,在图像匹配过程中减少色彩对后期图像匹配时产生的影响,增加了图像的清晰度和对比度,可以在图像匹配过程中提高图像匹配的效果,实现非Web元素的定位,有助于测试步骤的执行。

本发明利用通用算法的封装,以及预先在测试步骤中用到的操作封装成为关键字,在测试内容增加或改变时,只需要增加或改变关键字,以及其所对应的测试步骤即可,解决了待测系统因需求频繁变动需要改动测试框架的代码的麻烦,并解决了在待测系统整体功能较多需求较复杂的情况下,回归测试重复执行测试用例的问题,同时可以提高代码的复用率,且便于测试人员对测试数据进行修改和维护。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1是实施例一的测试用例执行流程图;

图2是实施例一的图像匹配流程;

图3是实施例二的自动化测试系统整体架构。

具体实施方式:

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。

本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。

实施例一:

如图1所示,一种电磁环境混合自动化测试方法,包括以下步骤:

S01获取数据文件,在本实施例中为xls数据;

S02按照顺序读取功能点,并判断功能点执行状态,如果判断结果为需要或正在执行,或执行状态为Y,进行下一步,否则,返回至S01步骤;

S03获取该功能点所对应的测试用例和测试数据;

S04提取测试用例和测试数据的关键字,确定测试用例步骤,读取测试用的操作执行对象;

S05通过图像匹配实现相应元素定位,在相应位置处按照测试步骤执行所述测试用例;

S06记录测试用例执行情况相关参数,生成测试报告。

其中,步骤S04的执行,需要预先将需要执行的动作封装成为相应关键字,将相应的关键字与测试步骤相对应。

在本实施例中,预先将需要执行的动作封装成为相应关键字时,不同需要执行的动作所对应的关键字固定,通过不同的关键字进行组合确定不同测试步骤,结合不同的数据,形成不同的测试用例。如果需要对测试用例进行修改,在预先封装的关键字中增加相应操作方法的定义,并加入当执行该关键字时要调用的方法,在测试步骤中添加对应的步骤。

如图2所示,步骤S05的具体过程包括:

S0501判断该元素的定位方式是否为图像匹配,如果是图像匹配,从图像库中获取对应的控件截图,同时对当前Web页面进行截图操作并保存;

在本步骤中,如果不是图像匹配方式定位,则采用xpath定位。

S0502对控件截图和当前页面截图进行预处理;

S0503对预处理后的图片进行特征提取;

S0504将两图像进行匹配,得出元素在页面上的位置坐标值,从而实现元素的执行操作。

在本实施例中,步骤S0502的预处理主要是对图像进行灰度化处理,将图像每个像素点的RGB值统一成一个值,将三通道变成单通道。

步骤S0503中,利用SIFT算法,进行建立高斯尺度空间,局部极值点检测,关键点方向计算,生成特征向量,以实现特征点的提取,得到两幅图像的特征点集。

步骤S0504中,对两幅图像进行匹配,得出控件截图在页面中的位置坐标,并将该坐标存放为变量待使用;通过匹配获得的坐标信息,实现页面该坐标处对应操作的执行。

如果匹配不成功,则显示异常,该测试用例不通过。

步骤S06中,根据测试结果,在测试报告中嵌入测试用例名称及测试执行状态,测试用例执行失败时过程日志记录以及出现问题的位置和原因,测试用例开始执行的时间点和执行用例所需时间等信息。

当然,上述信息可以根据测试需要和具体情况进行删减或增加。生成报告的方法利用现有报告生成算法即可。

实施例二

提供一种电磁环境混合自动化测试系统,本实施例的系统基于Selenium实现,如图3所示,主要包含驱动模块、BasePage模块、图像匹配模块、执行模块以及报告生成模块;其中,BasePage模块主要实现通用方法的封装;图像匹配模块通过控件截图与页面截图匹配实现非Web元素定位;执行模块实现测试步骤中关键字的调用和测试用例的执行;报告生成模块通过导入HTMLTestRunner模块实现自动化测试报告的生成。

在部分实施例中,系统还包括Page-Object模块,该模块主要是对SeleniumWebDriver自带方法如单个元素定位、多个元素定位等进行重写,再加上try...except...异常处理机制,以防止因某个测试用例的执行失败导致自动化测试异常退出。另一方面,该模块还将方法封装好后方便函数库模块对其进行调用。

如图3所示,驱动模块与执行模块、函数库以及Page-Object模块均进行信息/数据交互。

本系统采用模块化设计,这样设计的好处在于,当项目需求发生变化或需求增加等,只需要在相应的模块中修改相应数据或者添加相应的脚本代码即可。

本实施例提供的是混合驱动自动化测试系统,驱动模块包括数据驱动、关键字驱动和WebUI驱动。其中,数据驱动是通过测试用例中的测试数据和测试脚本实现,关键字驱动通过脚本中关键字的定义和测试数据实现。WebUI驱动即Selenium自动化测试工具,主要是给脚本提供Web页面元素定位和执行测试步骤中的操作的函数。

本实施例的混合驱动自动化测试系统,选择Python作为开发语言,Pycharm作为集成开发环境,使用xpath的定位方法对页面元素进行定位和封装,并通过xpath helper插件获取元素的xpath,将测试功能点和测试用例等数据存放在xls文件中待执行脚本时进行读取。

以此为前提下,执行模块运用Python自带的Unittest单元测试框架作为用例组织执行框架,采用unittest.makeSuite将所有的测试用例添加在测试套件中,以python为开发语言,调用关键字模块、函数库模块,运用TestRunner驱动运行测试用例,执行TestSuite中的测试用例。

当然,系统的外部的测试脚本和测试数据是为系统提供服务的。其中测试数据中包含测试功能点、测试步骤、测试用例及数据和页面元素的定位等多张表格,待测试脚本的读取和调用。

下面对每个重要模块进行详细介绍。

首先是,驱动模块,驱动模块中的数据驱动模块被配置为将测试数据和测试脚本分离,数据驱动的测试步骤需要详细地在脚本中体现,设计起来比较繁琐。

在电磁环境测试平台中有许多重复操作,诸如点击、文本框输入等,因此,在本实施例中,设计关键字模块,采用关键字驱动的方式实现将测试步骤分离的目的。

在关键字模块中,可以将需要执行的动作封装成为一个关键字来增加该动作的可复用率。这样,测试人员在编写测试步骤的时候只需要对不同的关键字进行组合即可,然后输入不同的数据设计出不同的测试用例,就可以将关键字对应在测试步骤的表格中,执行测试步骤的时候通过读取对应的关键字去调用该关键字对应的函数方法。

本实施例通过关键字的引入,一方面可以提高代码的复用率,另一方面便于测试人员对测试数据进行修改和维护。

例如,以具体的示例进行解释,在新需求中需要增加新的关键字,只需要一次修改3个地方:1)在关键字模块的代码中增加相应操作方法的定义,2)在执行引擎中加入当执行该关键字时要调用的方法,3)在测试步骤中添加对应的步骤。

如对“InInput”关键字执行时的方法进行调用,当测试步骤中关键字为“InInput”时,将会调用exeKeyword类中的“input_Text”方法实现文本框内容的输入,其中“input_Text”方法中的“loc”参数为文本框的定位方式,“txt[k]”为表格中第k列的数据,为文本框中输入的内容,这些参数在每条测试用例中都有相应的数据。

可以看出,通过关键字的设计,以及其对应方法,不需要特别专业的人员,就可以实现对代码的处理。

在本实施例中,BasePage模块主要实现所有页面都通用的方法的封装。在本系统中,其功能包括:xls表格的相关操作,在本实施例中,包括数据的存储和单元格数据的读取等、以及生成图片名称、获取系统当前时间、对页面进行截图等。

在执行测试用例的时候代码中如果直接用WebDriver自带的方法,那么当某一个测试用例出现异常情况的时候会导致整个测试工作停止。比如find_element_by_XXX,该语法可以实现不同方式的元素定位,如果代码中直接写该语句,那么页面元素定位不到时会导致整个程序异常退出,就不会执行后面的测试用例。因此该自动化测试框架的设计中将该方法封装成为相应的函数,在封装时加上“try...except...”异常处理的机制。BasePage模块即是实现将诸如find_element_by_XXX的语法功能封装成为函数。

本系统的执行模块以python为平台,调用关键字方法、BasePage模块函数等实现测试用例的执行,包括:

S101测试场景创建成功后,脚本按照功能点的顺序遍历测试功能点文档;

S102按照顺序判断该功能点的执行状态是否为“Y”;

S103如果执行状态为“Y”,则获取到该功能点对应的测试用例信息和测试步骤信息;如果执行状态为“N”,则跳到下一条功能点判断执行状态;

S104获取到测试用例信息后,根据测试用例的编号读取测试数据、测试步骤中对应的关键字以及封装后的元素,并调用关键字方法;

S105根据测试步骤执行测试用例;

S106测试用例执行完成后,生成HTML测试报告。

在本实施例中,针对Selenium WebDriver不能识别的非Web元素的问题,设计了图像匹配模块,其被配置为对控件截图和当前页面截图进行相应的预处理和特征提取,然后将两图像进行匹配,通过待匹配图片与页面截图进行匹配得出元素在页面上的位置坐标值,从而实现元素的执行操作。

图像匹配模块中的预处理模块,与图像特征提取模块连接,是对图像进行分析时,图像特征提取模块前对图像进行处理,因为在图像匹配过程中,图像质量的好坏直接影响图像匹配的成功率,在进行图像分析前要对两幅图像进行预处理。

预处理模块的目的主要是去掉图像中的无关信息,消除噪声和干扰,恢复有用信息并对有用信息进行增强,从而改进特征提取过程中的可靠性。

在本实施例中,预处理模块采用灰度化处理算法,该算法可以将图像每个像素点的RGB值统一成一个值,将三通道变成单通道,本实施例中,预处理模块分别将两幅图像进行灰度化处理,减少色彩对后期图像匹配时产生的影响,增加了图像的清晰度和对比度,可以在图像匹配过程中提高图像匹配的效果。

图像特征提取模块,被配置为运用SIFT算法进行特征点的提取,提取后分别得到两幅图像的特征点集。

当然,在特征提取过程中主要包括了建立高斯尺度空间,局部极值点检测,关键点方向计算,生成特征向量四个步骤。这些步骤和算法均采用现有方法即可。

图像匹配模块在进行图像匹配的过程时,主要被配置为执行以下步骤:

S201首先判断该元素的定位方式是否为图像匹配,如果是图像匹配即进行下一步。

S202从图像库中获取对应的控件截图,同时对当前页面进行截图操作并保存。

S203对上一步中的两幅图像进行匹配,得出控件截图在页面中的位置坐标,并将该坐标存放为变量待使用。

S204通过匹配获得的坐标信息,实现页面该坐标处对应操作的执行。

经过驱动模块、执行模块和Page-Object模块等模块的作用,即可完成测试,在本实施例中,利用报告生成模块自动生成测试报告。以便测试人员根据测试报告分析测试过程中出现的问题。

当然,要实现上述功能,测试报告中首先需要包含每条测试用例的名称和运行状态,并且针对测试未通过的测试用例,测试报告中应该显示问题出现的具体步骤和具体对象。其次,测试报告应该有分别统计通过和未通过测试用例个数的功能,测试人员可以根据测试用例不同的运行状态进行筛选显示,这样测试用例的执行结果便一目了然。最后,报告中需要显示测试用例执行的时长,方便与手工测试时间进行对比,分析自动化测试的效率。

针对以上条件,本实施例选择导入HTMLTestRunner模块生成测试报告,且生成的测试报告中主要包含以下信息和功能:测试用例名称及测试执行状态,测试用例执行失败时过程日志记录以及出现问题的位置和原因,测试用例开始执行的时间点和执行用例所需时间。

测试人员可通过测试用例执行状态进行筛选,并且统计不同类别用例个数。可通过代码定义测试报告的标题,方便区分各个模块的测试报告。

实施例三

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行实施例一提供的一种电磁环境混合自动化测试方法的步骤。

实施例四

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行实施例一提供的一种电磁环境混合自动化测试方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

相关技术
  • 电磁环境混合自动化测试方法、系统、存储介质及终端设备
  • Web自动化测试方法、系统、存储介质及终端设备
技术分类

06120112941959