CN118093356A - 测试方法、装置、电子设备、存储介质及程序产品 - Google Patents
测试方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN118093356A CN118093356A CN202211515021.8A CN202211515021A CN118093356A CN 118093356 A CN118093356 A CN 118093356A CN 202211515021 A CN202211515021 A CN 202211515021A CN 118093356 A CN118093356 A CN 118093356A
- Authority
- CN
- China
- Prior art keywords
- test
- function
- tested
- program
- testing
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 665
- 238000010998 test method Methods 0.000 title claims abstract description 14
- 239000000463 material Substances 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 206
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims 1
- 230000000694 effects Effects 0.000 description 51
- 230000009471 action Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 208000035874 Excoriation Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种测试方法、装置、电子设备、存储介质及程序产品。所述方法包括:获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;将操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;基于测试元素与测试函数、测试数据之间的对应关系,生成测试协议;测试函数为待测程序实现待测功能所需要调用的函数,测试数据为待测程序调用测试函数实现待测功能所需要设置的设置参数或输入测试函数的输入参数;基于测试元素和测试协议,生成测试用例。本实施例不依赖UI控件的表现和结构,提高了自动化测试的稳定性,降低测试成本和测试门槛。
Description
技术领域
本公开涉及测试技术领域,尤其涉及一种测试方法、装置、电子设备、存储介质及程序产品。
背景技术
软件测试是软件开发过程中不可缺少的,其目的是发现潜伏在软件里的缺陷,减少软件开发和维护的成本,促进软件质量的提升。软件测试的成本占整个软件开发过程的很大一部分,随着软件功能复杂度的不断提高,相应的自动化测试技术也在不断发展和进步。
在各种类型的自动化测试中,最接近用户需求的测试是与用户交互相关的,俗称为UI(User Interface,用户界面)测试。UI测试是一种对应用程序上的UI控件元素进行测试的技术。比如,点击用户界面上的每个UI控件元素,检测被测试的应用程序的输出结果是否符合预期测试结果。
目前的UI测试方法,通过定位UI控件,触发UI事件来驱动自动化测试用例的执行。这种方式强依赖于UI的表现和结构,稳定性不足,导致测试成本较高。
发明内容
有鉴于此,本公开的目的在于提出一种测试方法、装置、电子设备、存储介质及程序产品。
基于上述目的,本公开的第一个方面提供了一种测试方法,包括:
获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
基于所述测试元素和所述测试协议,生成测试用例。
在一些实施例中,将所待将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素,包括:
将对所述待测功能的多个测试用例对象进行测试时所需的多个操作、素材、分类、分辨率进行组合排序,形成具有有序序列的所述测试元素。
在一些实施例中,还包括:
响应于在与所述待测功能对应的测试任务对象中新增测试用例对象,在所述测试数据中增加与新增的所述测试用例对象对应的输入参数。
在一些实施例中,所述测试协议包括json格式数据。
本公开的第二个方面提供了一种测试方法,包括:
获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的组合;
基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
基于所述测试函数、所述测试数据对所述待测功能进行测试。
在一些实施例中,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息。
在一些实施例中,所待测功能包括至少一个测试用例对象,所述测试函数的输入参数包括与所述测试用例对象对应的测试用例标识、适用对象、持续时间。
在一些实施例中,所述基于所述测试函数、所述测试数据对所述待测功能进行测试,包括:
基于所述测试函数、所述测试数据生成针对每个测试用例对象的操作指令序列;
通过调度器依次调用所述操作指令序列以执行对所述测试用例对象的测试操作。
本公开的第三个方面提供了一种测试装置,包括:
获取模块,被配置为:获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
组合模块,被配置为:将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
第一生成模块,被配置为:基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
第二生成模块,被配置为:基于所述测试元素和所述测试协议,生成测试用例。
本公开的第四个方面提供了一种测试装置,包括:
获取模块,被配置为:获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的有序组合;
确定模块,被配置为:基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
测试模块,被配置为:基于所述测试函数、所述测试数据对所述待测功能进行测试。
本公开的第五个方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一个方面或第二个方面所述的方法。
本公开的第六个方面还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一个方面或第二个方面所述的方法。
本公开的第七个方面还提供了一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据第一个方面或第二个方面所述的方法。
从上面所述可以看出,本公开提供的测试方法、装置、电子设备、存储介质及程序产品,通过将针对某一测试功能的所需的操作、素材、分类、分辨率进行组合排列定义为一个测试元素,并在测试协议中定义测试元素与测试函数、测试数据之间的对应关系,从而使得在测试设备上进行测试时可以直接基于测试元素中定义的操作、素材、分类、分辨率的组合直接调用相应的测试函数进行自动化测试,而无需对每个操作行为以及操作的对象进行定位;这种测试方法不依赖UI控件的表现和结构,即使UI稳定性低导致UI控件的定位信息变化,也无需修改测试用例,从而提高了自动化测试的稳定性,降低测试成本和测试门槛。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种示例性待测程序的待测功能的页面示意图。
图2示出了本公开实施例所提供的一种示例性方法的流程示意图。
图3示出了本公开实施例所提供的一种示例性方法的流程示意图。
图4示出了本公开实施例所提供的示例性装置示意图。
图5示出了本公开实施例所提供的示例性装置示意图。
图6示出了本公开实施例所提供的示例性系统示意图。
图7示出了本公开实施例所提供的示例性计算机设备的硬件结构的示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术所述,目前UI自动化测试一般依赖Appium等UI自动化框架实现自动化测试,在测试时需定位UI控件元素后再触发UI事件来驱动自动化测试用例的执行,实现UI测试。
目前对于用户界面中的控件元素进行定位时,可基于控件元素属性中的ID、name(名称)、xpath(页面结构)、selector(绝对路径)、classname(元素样式)、inktext(超链接)等信息来实现。其中,通过ID可以准确定位到控件元素,但是由于在开发控件元素时,很多控件元素并不会定义ID,使得无法依据ID定位到每一个控件元素,需采用其他定位方式,例如以name定位控件元素。当以name定位控件元素,在用户界面上可能存在多个相同name控件元素,因此需要进一步结合其他信息进行控件定位,直至定位到相应控件元素。
而当用户界面稳定性不足,例如结合tab页面实现定位时,由于UI层级很容易发生变化,原本的控件元素处于第三层,研发人员修改时进行优化减少了一层导致同一控件元素处于第二层,导致该控件布局发生改变。而一旦控件元素的布局发生改变,所有相关的测试用例都要修改对应的控件元素的定位方法。
由于在编写自动化测试用例时,需要人工去详细定义每一个用户的操作行为,包括目标控件元素的定位方法和目标操作。一个测试用例通常对应大量的操作,每个操作都需要精确的控件定位。
例如,图1示出了一种待测软件的功能页面示意图。在该功能页面的第一工具栏1001中,显示了包括媒体、音频、文本、贴纸、特效、转场、滤镜七个类别的功能选项。每个功能选项对应不同的功能,点击不同类别的功能选项可在第二工具栏1002和显示区1003中显示相应的内容。例如点击“特效”功能选项,可在第二工具栏1002进一步显示“特效”的具体分类,包括:收藏、热门、基础、氛围、动感等tab页选项。点击不同的tab页选项时,显示区1003中显示相应的内容,例如点击“热门”tab页选项,在显示区1003中显示包括特效1~特效12在内的十二个特效预览图像1004。
在上述实施例中,当需要测试将特效增加到某一图片的效果时,其动作(action)步骤包括:在“热门”tab页对应的显示区1003中选择一个特效预览图标1004(例如为特效1),之后下载特效1对应的特效预览图像1004,再将特效预览图像1004加载在指定图片中,执行测试。
现有技术中,上述三个动作(action)步骤均需要分别对每一个动作和目标进行定位;相应的,在对“热门”tab页选项页面中的其他特效预览图像1004进行测试,或者对其他tab页选项页面中的特效预览图像1004进行测试,或者针对其他功能选项中的内容进行测试时,也均需要经过上述多次操作步骤,在测试时也均需要对每一个动作和目标进行定位。
在这种情况下,当控件布局发生变化,所有测试用例中的各个操作的控件定位方法都需要修改,这大大提高了测试成本和测试门槛。
有鉴于此,本公开实施例提供一种测试方法,以解决上述问题。在一些实施例中,该测试方法可应用于实现测试用例组装的测试装置中。如图2所示,所述测试方法包括:
步骤S101,获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率。
本实施例中,当对待测程序的某一待测功能进行测试时,该测试过程一般包括对该待测功能进行测试所需的操作、素材、分类、分辨率等。其中,操作可以包括动作(action),即在测试是需对待测功能执行的动作,例如图1中选择、下载、加载特效预览图标1004等;素材可以为测试时所需要的素材内容,例如图1中与特效预览图标1004所对应的特效素材;分类可以是测试时所需要的分类,例如与图1中的收藏、热门、基础、氛围、动感等tab页选项所对应的分类等;分辨率可以是将特效素材加载在指定图片或视频时所需要的分辨率等,本实施例对此不做限制。
步骤S103,将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素。
本实施例中,将至少一个操作,和/或,至少一个素材,和/或,至少一个分类和/或,至少一个分辨率进行组合排列,生成测试元素。即在本实施例中,针对每个测试功能所需的内容进行划分和组合,将针对每个测试功能所需的操作、素材、分类、分辨率等信息组合排列为一个测试元素,即该测试元素可以包括一个或多个操作、素材、分类、分辨率等内容的组合。
例如,在图1所示的实施例中,待测功能可以为“将特效应用于图片上”,该待测功能所包括的操作行为分别包括:点击特效预览图标1004、下载特效预览图标1004以及将特效预览图像1004加载在指定图片中。本实施例中,将上述三个动作、其所需要的特效素材以及分类、分辨率等冲虚组合排列定义为测试元素“将特效应用于图片上”。
例如,在另一些具体的实施例中,待测功能可以为“应用模板”,该待测功能所包括的操作行为分别包括:进入模板页面、选择特定模板、将模板应用于指定对象中。本实施例中,将上述三个动作以及其所需要的模板素材进行排列组合并定义为一个动作测试元素“应用模板”。
例如,在另一些具体的实施例中,待测功能可以为“登录系统”,该待测功能所包括的操作行为分别包括:选择用户名输入框、输入用户名、选择密码框、输入密码及点击登录。本实施例中,将上述五个动作组合定义为一个测试元素“登录系统”。这样,当用于执行测试的设备(例如客户端)在执行针对上述功能的测试时,可以获取针对某一待测功能所对应的测试元素,即获得测试元素“将特效应用于图片上”、“应用模板”和“登录系统”,而不必单独获取针对某一测试功能所需的各个操作、素材、分类、分辨率等内容。
步骤S105,基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数。
在本实施例中,通过测试协议预先定义测试元素与测试函数、测试数据之间的对应关系。其中,所述测试函数(function)为所述待测程序实现待测功能所需要调用的函数,其用于表示测试客户端代码层面的具体功能实现,即每个测试函数包括用于实现某一个具体动作的代码,其是比用户操作更加具体、更细粒度的行为。
例如,在图1所示的实施例中,“点击特效预览图标1004”、“下载特效预览图标1004”以及“将特效预览图像1004加载在指定图片”这三个动作分别可通过一个测试函数实现。本实施例中,当将测试元素“将特效应用于图片上”定义为Action_a时,则其对应的测试函数即可包括function_a1(点击特效预览图标1004)、function_a2(下载特效预览图标1004)以及function_a3(将特效预览图像1004加载在指定图片)。
同时,测试协议中还定义有与测试元素匹配的测试数据,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数。其中,设置参数可以包括测试时所需的输入数据路径、输出数据路径等,输入参数可以包括素材的名称、分类的名称、分辨率的数值等。
可选的,所述测试协议包括json格式数据。
步骤S107,基于所述测试元素和所述测试协议,生成测试用例。
获取测试元素和测试协议之后,即可生成测试用例,并将测试用例发送到执行测试的设备,例如客户端等。执行测试的设备基于该测试用例进行测试时,可以基于测试元素中定义的操作、素材、分类、分辨率的组合直接调用相应的测试函数进行自动化测试。
本实施例中,通过将针对某一测试功能所需的操作、素材、分类、分辨率进行组合排列定义为一个测试元素,并在测试协议中定义测试元素与测试函数、测试数据之间的对应关系,从而使得在测试设备上进行测试时可以直接基于测试元素中定义的操作、素材、分类、分辨率的组合直接调用相应的测试函数进行自动化测试,而无需对每个操作行为以及操作的对象进行定位;这种测试方法不依赖UI控件的表现和结构,即使UI稳定性低导致UI控件的定位信息变化,也无需修改测试用例,从而提高了自动化测试的稳定性,降低测试成本和测试门槛。
在一些实施例中,步骤S103中将所待将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素,包括:将对所述待测功能的多个测试用例对象进行测试时所需的多个操作、素材、分类、分辨率进行组合排序,形成具有有序序列的所述测试元素。
本实施例中,当一个测试元素包括多个操作、素材、分类、分辨率时,将该测试元素中所需要的多个操作、素材、分类、分辨率等信息进行组合排序,形成有序序列,这样在测试设备进行测试时,即可基于此有序序列依次调用相应的测试函数并按照该顺序进行测试,无需额外设置。
本实施例中,一个测试功能一般对应一个测试任务,即针对一个测试功能一般生成一个测试任务对象(TaskBean)。一个测试任务对象对应一条测试协议,即一条测试协议用于实现一个测试任务对象的测试。例如,图1中所示的任务即为“将特效应用于图片上”。
测试任务标识(测试任务ID)用于标记该测试任务对象。在一些实施例中,在生成测试用例时可以可以生成测试任务ID,以便于在执行测试的设备上可以基于该测试任务ID确定测试任务对象,并进一步确定与该测试任务对象匹配的测试元素。其中,一个测试任务对象可对应一个测试元素,也可对应多个测试元素,本实施例对此不作限制。
本实施例中,每个所述测试任务对象(TaskBean)可以包括一个或多个测试用例对象(CaseBean)。每个测试用例对象可以包括用于标记该测试用例对象的测试用例标识(测试用例ID)。当测试任务对象包括多个测试用例对象时,通过不同的测试用例ID来区分不同的测试任务对象。例如,如图1所示,当测试任务对象为“将特效应用于图片上”时,测试用例对象可以为“将特效应用于特定图片上”,输入参数可以包括该特定图片的文件名、文件存储路径等。或者,如图1所示,测试用例对象可以为“将不同的特效应用于图片上”,即第一个测试用例对象可以为将特效1应用于图片上,第二个测试用例对象可以为将特效2应用于图片上。
例如测试任务对象包括两个测试用例对象时,第一个测试用例对象为“将特效应用于图片A上”,此时在输入参数中需定义图片A的名称、路径等信息,以便于后续可以将特效加载在图片A上;第二个测试用例对象为“将特效应用于图片B上”,此时在输入参数中需定义图片B的名称、路径等信息,以便于后续可以将特效加载在图片B上。
在一些实施例中,每个所述测试用例对象包括至少一个测试步骤对象。其中,测试步骤对象可以与测试元素对应设置,即测试步骤对象可以依据测试元素中所定义的一组有序操作行为依次执行对应的操作。可选的,测试步骤对象与测试元素一一对应设置,即每个测试步骤对象仅对应设置一个测试元素。
当测试用例对象包括多个测试步骤对象时,多个测试步骤对象可以为并列的,即每个测试步骤对象均利用针对一个测试用例的通用参数单独执行测试。例如,在图1所示的实施例中,第一个测试步骤对象为“将特效1应用于图片A上”,第二个测试步骤对象为“将特效2应用于图片A上”,第一个测试步骤对象与第二个测试步骤对象是并列的,其测试结果也是并列的,二者不存在相互依存关系。
或者,多个测试步骤对象可以为连续的,即下一个测试步骤对象利用上一个测试步骤对象的结果执行测试。例如,在一个具体实施例中,第一个测试步骤对象为“进入模板页面”,第二个测试步骤对象为“模板应用”,第一个测试步骤对象与第二个测试步骤对象是连续的,第二个测试步骤对象需要在第一个测试步骤对象的基础上进行测试,二者存在相互依存关系。
本实施例中,针对不同测试用例对象的测试元素可以相同,也可以不同,本实施例对此不做限制。
本实施例中,针对同一测试用例对象的测试元素可以为一个,也可以为多个。当针对同一测试用例对象的测试元素为多个,对一个测试用例对象可以先执行一个测试元素所对应的测试内容,再执行另一个测试元素所对应的测试内容。例如,对特定图像依次执行测试元素“磨皮”和测试元素“瘦脸”。
在一些实施例中,当在与所述待测功能对应的测试任务对象中新增测试用例对象时,在所述测试数据中增加与新增的所述测试用例对象对应的输入参数。
本实施例中,当对测试用例对象进行调整时,例如新增测试用例对象时,可直接在测试数据中增加与新增的所述测试用例对象对应的输入参数。例如,当测试用例对象为“将特效应用于特定图片上”,新增测试用例对象为“将特效应用于图片C上”,可以在输入参数中新增定义图片C的名称、路径等信息;当测试用例对象为“将不同的特效应用于图片上”,新增测试用例对象为将特效13应用于图片上时,可以在输入参数中新增定义特效13的名称、路径等信息,本实施例对此不做限制。
本公开实施例还提供了一种测试方法。在一些实施例中,该测试方法应用于执行测试用例进行测试的测试设备,例如客户端等。如图3所示,所述测试方法,包括:
步骤S201,获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的组合。即在一个测试元素中,包括:至少一个操作,和/或,至少一个素材,和/或,至少一个分类和/或,至少一个分辨率的组合排列。
本实施例中,用于执行测试操作的测试设备获取测试用例后,可以解析该测试用例获取其中的测试元素和测试协议。
步骤S203,基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数。
本实施例中,测试设备可以解析测试协议,从而获得与所述测试元素匹配的测试函数和测试数据。其中,测试函数为所述待测程序实现待测功能所需要调用的函数,即为测试客户端代码层面的具体功能实现;测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数。
在一些实施例中,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息等。其中,输入信息可以包括输入数据路径,输出信息可以包括输出数据路径。
步骤S205,基于所述测试函数、所述测试数据对所述待测功能进行测试。
本实施例中,获取测试函数和测试数据后,执行测试的设备即可基于测试元素中定义的操作、素材、分类、分辨率的组合,直接基于测试数据依次调用相应的测试函数进行自动化测试。
本实施例中,通过将针对某一测试功能的所需的操作、素材、分类、分辨率进行组合排列定义为一个测试元素,并在测试协议中定义测试元素与测试函数、测试数据之间的对应关系,从而使得在测试设备上进行测试时可以直接基于测试元素中定义的操作、素材、分类、分辨率的组合直接调用相应的测试函数进行自动化测试,而无需对每个操作行为以及操作的对象进行定位;这种测试方法不依赖UI控件的表现和结构,即使UI稳定性低导致UI控件的定位信息变化,也无需修改测试用例,从而提高了自动化测试的稳定性,降低测试成本和测试门槛。
在一些实施例中,所待测功能包括至少一个测试用例对象,所述测试函数的输入参数包括与所述测试用例对象对应的测试用例标识、适用对象、持续时间。其中,适用范围可用于定义当前测试用例的适用范围。例如,如图1所示,当测试任务对象为“将特效应用于图片上”时,测试用例对象为“将特效应用于特定图片上”,适用对象即为该特定图片,则输入参数可包括该特定图片的文件名、文件存储路径等信息。
在一些实施例中,步骤S205中所述基于所述测试函数、所述测试数据对所述待测功能进行测试,包括:
步骤S301,基于所述测试函数、所述测试数据生成针对每个测试用例对象的操作指令序列。
本实施例中,由于已经获取了针对每个测试用例对象的测试函数和测试数据,且由于测试元素中所包括的多个操作、素材、分类、分辨率在进行组合排序时形成有序序列,则所获得的测试函数也是有序的,因此可以基于测试函数、测试数据生成针对测试用例对象的操作指令序列。
步骤S303,通过调度器依次调用所述操作指令序列以执行对所述测试用例对象的测试操作。
本实施例中,可通过调度器调度相应的操作指令序列驱动测试执行。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种测试装置,该测试装置用于实现测试用例的组装。
参考图4,所述测试装置,包括:
第一获取模块11,被配置为:获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率。
组合模块13,被配置为:将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素。
第一生成模块15,被配置为:基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数。
第二生成模块17,被配置为:基于所述测试元素和所述测试协议,生成测试用例。
在一些实施例中,所述组合模块13,还被配置为:将对所述待测功能的多个测试用例对象进行测试时所需的多个操作、素材、分类、分辨率进行组合排序,形成具有有序序列的所述测试元素。
在一些实施例中,所述装置,还被配置为:响应于在与所述待测功能对应的测试任务对象中新增测试用例对象,在所述测试数据中增加与新增的所述测试用例对象对应的输入参数。
在一些实施例中,所述测试协议包括json格式数据。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了另一种测试装置,测试装置可用于测试用例的执行。
参考图5,所述测试装置,包括:
第二获取模块21,被配置为:获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的有序组合;
确定模块23,被配置为:基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
测试模块25,被配置为:基于所述测试函数、所述测试数据对所述待测功能进行测试。
在一些实施例中,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息。
在一些实施例中,所待测功能包括至少一个测试用例对象,所述测试函数的输入参数包括与所述测试用例对象对应的测试用例标识、适用对象、持续时间。
在一些实施例中,所述测试模块25,还被配置为:基于所述测试函数、所述测试数据生成针对每个测试用例对象的操作指令序列;通过调度器依次调用所述操作指令序列以执行对所述测试用例对象的测试操作。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
在一些实施例中,本实施例所述测试方法可应用于测试系统中。图6示出了一种测试系统的结构示意图。
如图6所示,测试系统可包括一服务器2001以及至少一个客户端2002。其中,服务器2001中包括一测试用例组装模块。测试用例组装模块用于生成测试协议、抽象测试元素以及重组测试元素从而生成测试用例。
具体的,测试用例组装模块通过测试协议预先定义测试元素与测试函数之间的对应关系,每个测试元素包括与针对某一待测功能进行测试的一组有序操作行为对应设置,从而将测试时所需的操作行为与测试函数直接关联,无需对待测试的UI控件进行定位即可实现对UI控件的测试,提高了自动化测试的稳定性,降低测试成本和测试门槛。
当需要增加测试时,仅需增加测试协议,即增加测试协议中测试元素与测试函数之间的对应关系即可。
测试用例组装模块可基于测试协议中测试元素与测试函数之间的对应关系并结合测试数据进行进一步的组合与编排,从而得到新的测试用例。具体的,测试用例组装单元可以基于测试任务对象、测试用例对象以及测试步骤对象之间的关系,并结合测试任务参数、测试用例参数以及测试步骤参数进行组合与编排,从而生成新的测试用例。
之后,服务器2001将该测试用例发送至客户端2002。客户端2002包括一协议模块,该协议模块可以基于测试协议处理测试逻辑,即基于测试协议对测试用例进行解析,并按照解析的内容将测试用例中的测试元素转换为测试函数以及相应的参数,从而基于测试用例生成可用于客户端测试的测试函数(function)序列。之后,调度器基于对应的测试函数序列驱动测试执行。
具体的,可通过handler判断测试用例的对应测试函数并获得相应的测试数据,利用反射原理获取客户端中对应的测试函数,并顺序调用相应的测试函数来实现测试。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。
图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行上述实施例所述的方法。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (13)
1.一种测试方法,其特征在于,包括:
获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
基于所述测试元素和所述测试协议,生成测试用例。
2.根据权利要求1所述的方法,其特征在于,将所待将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素,包括:
将对所述待测功能的多个测试用例对象进行测试时所需的多个操作、素材、分类、分辨率进行组合排序,形成具有有序序列的所述测试元素。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于在与所述待测功能对应的测试任务对象中新增测试用例对象,在所述测试数据中增加与新增的所述测试用例对象对应的输入参数。
4.根据权利要求1所述的方法,其特征在于,所述测试协议包括json格式数据。
5.一种测试方法,其特征在于,包括:
获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的组合;
基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
基于所述测试函数、所述测试数据对所述待测功能进行测试。
6.根据权利要求5所述的方法,其特征在于,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息。
7.根据权利要求5所述的方法,其特征在于,
所待测功能包括至少一个测试用例对象,所述测试函数的输入参数包括与所述测试用例对象对应的测试用例标识、适用对象、持续时间。
8.根据权利要求7所述的方法,其特征在于,所述基于所述测试函数、所述测试数据对所述待测功能进行测试,包括:
基于所述测试函数、所述测试数据生成针对每个测试用例对象的操作指令序列;
通过调度器依次调用所述操作指令序列以执行对所述测试用例对象的测试操作。
9.一种测试装置,其特征在于,包括:
第一获取模块,被配置为:获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
组合模块,被配置为:将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
第一生成模块,被配置为:基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
第二生成模块,被配置为:基于所述测试元素和所述测试协议,生成测试用例。
10.一种测试装置,其特征在于,包括:
第二获取模块,被配置为:获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的有序组合;
确定模块,被配置为:基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
测试模块,被配置为:基于所述测试函数、所述测试数据对所述待测功能进行测试。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4或者5至8任意一项所述的方法。
12.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至4或者5至8任意一项所述的方法。
13.一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,其特征在于,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据权利要求1至4或者5至8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211515021.8A CN118093356A (zh) | 2022-11-28 | 2022-11-28 | 测试方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211515021.8A CN118093356A (zh) | 2022-11-28 | 2022-11-28 | 测试方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093356A true CN118093356A (zh) | 2024-05-28 |
Family
ID=91160593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211515021.8A Pending CN118093356A (zh) | 2022-11-28 | 2022-11-28 | 测试方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093356A (zh) |
-
2022
- 2022-11-28 CN CN202211515021.8A patent/CN118093356A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN110046101B (zh) | 页面自动化测试方法、装置及计算机存储介质 | |
CN108964968B (zh) | 一种容器云环境下的服务接入管理方法和系统 | |
US11449348B2 (en) | Pre/post deployment customization | |
US20170147480A1 (en) | Test script generation | |
CN110320378B (zh) | 质控测试申请方法、装置、设备及计算机可读存储介质 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN111475390A (zh) | 日志采集系统部署方法、装置、设备及存储介质 | |
US11954011B2 (en) | Apparatus and method for executing customized artificial intelligence production line | |
CN113626102A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110674083A (zh) | 工作流迁移方法、装置、设备及计算机可读存储介质 | |
CN114579452A (zh) | 接口影响检测方法及相关设备 | |
CN111459802A (zh) | 一种基于GUI的Android应用程序WebView页面的测试方法、装置及设备 | |
CN118093356A (zh) | 测试方法、装置、电子设备、存储介质及程序产品 | |
US10169216B2 (en) | Simulating sensors | |
CN111258875A (zh) | 界面测试方法及系统、电子设备、存储介质 | |
CN115170062A (zh) | 自动化流程开发方法、装置及设备 | |
CN114090436A (zh) | 测试方法及装置 | |
CN108509331B (zh) | 测试方法和装置 | |
CN111639030A (zh) | 一种页面测试方法、装置、设备及存储介质 | |
CN112463639A (zh) | 测试脚本的编辑方法、装置及设备 | |
CN114443375A (zh) | 测试方法及装置、电子装置及计算机可读存储介质 | |
JP2017021475A (ja) | ソフトウェア試験装置及びプログラム | |
US20220300269A1 (en) | Information processing apparatus, information processing system, and information processing method | |
CN117667701A (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 |