控件元素的获取方法及装置、自动化测试系统、存储介质制造方法及图纸

技术编号:22237945 阅读:73 留言:0更新日期:2019-10-09 17:52
本申请公开了一种控件元素的获取方法及装置、自动化测试系统、存储介质,属于自动化测试领域。方法包括:根据输入的目标控件类型的名称,基于预设的对应关系,确定与目标控件类型的名称对应的目标特征标识,对应关系包括待测页面上所有控件类型的名称以及与名称一一对应的特征标识;在待测页面的程序节点中查找目标特征标识;将目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为待测控件的控件元素,控件元素用于输入自动化测试框架,以供自动化测试框架基于待测控件的封装实现类对待测控件进行自动化测试。本申请解决了相关技术中自动化测试用例的开发效率较低且自动化测试的可靠性较低的问题。本申请用于自动化测试。

Control Element Acquisition Method and Device, Automated Testing System, Storage Media

【技术实现步骤摘要】
控件元素的获取方法及装置、自动化测试系统、存储介质
本申请涉及自动化测试领域,特别涉及一种控件元素的获取方法及装置、自动化测试系统、存储介质。
技术介绍
Web(网页)自动化测试方法指通过软件对网页上的控件执行输入操作和单击操作等测试操作的方法,Web自动化测试技术是一种高效率的软件测试技术。目前,业界大部分厂商通常使用TestNG+Seleniu开源框架进行Web自动化测试用例代码的开发,或者通过开发工具采用录制的方式自动生成自动化测试用例代码。自动化测试用例代码在运行过程中,通常采用控件所操控的文档对象模型(DocumentObjectModel,DOM)节点的身份标识(Identity,ID)、名称(Name)、层叠样式表(CascadingStyleSheets,CSS)选择器(Selector)或可扩展标记语言(eXtensibleMarkupLanguage,XML)路径语言(XmlPathLanguage,XPath)作为控件查找依据,以进行控件元素的查找。其中,控件是指Web页面上可操作的对象,例如网页上的控件可以包括按钮控件和文本框控件等,控件元素表示控件的代码对象。相关技术中,通常采用DOM节点的ID或Name查找控件元素,或者,基于DOM节点的ID或Name进行XPath拼接,使用拼接的XPath路径精确查找控件元素。测试人员在编写自动化测试用例代码的过程中,确定控件元素的查找方式的过程可以包括:判断Web页面上控件所操控的DOM节点是否存在固定的ID或Name;如果DOM节点不存在固定的ID或Name,则进行XPath抓取或从根节点开始进行XPath手工拼接,即采用XPath方式查找控件元素;如果DOM节点存在固定的ID或Name,且该DOM节点是控件元素所要操控的节点(例如文本框的输入节点),则使用该DOM节点的ID或Name查找控件元素;如果DOM节点存在固定的ID或Name,但该DOM节点不是控件元素所要操控的节点,例如该DOM节点是控件元素所要操控的节点的父节点或子节点,则基于该DOM节点进行XPath手工拼接,使用拼接的XPath路径精确查找控件元素。一般通过DOM节点的ID或Name查找控件元素的效率较高,但是在Web应用中,存在大量的静态Web页面元素没有ID和Name属性,而动态Web页面元素的ID是在编译过程中动态生成的,因而无法写入测试用例,因此相关技术中通常使用XPath方式查找控件元素。在实现本申请的过程中,专利技术人发现现有技术至少存在以下问题:一方面,在编写自动化测试用例代码的过程中,测试人员需要进行XPath手工拼接,耗费时间较长,导致自动化测试用例的开发效率较低;另一方面,由于XPath是写在自动化测试用例代码中的,当Web页面元素的布局发生改变时,例如Web页面上新增、删除或替换控件时,会导致原Web页面上的DOM结构发生变化,从而导致原自动化测试用例代码中的XPath失效,使得原自动化测试用例代码运行失败,因此相关技术中自动化测试的可靠性较低。
技术实现思路
本申请提供了一种控件元素的获取方法及装置、自动化测试系统、存储介质,可以解决相关技术中自动化测试用例的开发效率较低且自动化测试的可靠性较低的问题。所述技术方案如下:第一方面,本申请提供了一种控件元素的获取方法,所述方法包括:根据输入的目标控件类型的名称,基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识,所述目标控件类型为待测控件的控件类型,所述对应关系包括待测页面上所有控件类型的名称以及与所述名称一一对应的特征标识;在所述待测页面的程序节点中查找所述目标特征标识;将所述目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为所述待测控件的控件元素,所述控件元素用于输入自动化测试框架,以供自动化测试框架基于所述待测控件的封装实现类对所述待测控件进行自动化测试。需要说明的是,本申请实施例提供的自动化测试框架是基于面对对象的程序设计方法进行自动化测试的。测试人员在编写测试用例时,首先需要对待测页面上的所有控件类型进行命名和定义,确定控件类型的名称与特征标识的对应关系,并对定义后的控件类型进行界面操作代码的封装,得到各个控件类型的封装实现类。可选的,当所述待测页面上包括至少两个所述控件类型时,所述在所述待测页面的程序节点中查找所述目标特征标识,包括:基于输入的所述待测页面上的线索,获取所述线索所在的所有程序节点;遍历所述线索所在的所有程序节点以查找所述目标特征标识。可选的,所述遍历所述线索所在的所有程序节点以查找所述目标特征标识,包括:设置查找深度,并对所述线索所在的每个程序节点执行目标特征标识查找流程,直至遍历完成所述线索所在的所有程序节点;其中,所述目标特征标识查找流程包括:判断所述线索所在的自身节点是否匹配所述目标特征标识;当所述自身节点匹配所述目标特征标识时,将所述自身节点的页面元素对象添加到初始页面元素对象列表中,记录所述查找深度,并结束所述目标特征标识查找流程;当所述自身节点不匹配所述目标特征标识时,检测所述自身节点的子节点是否匹配所述目标特征标识;当所述自身节点的子节点中存在目标子节点匹配所述目标特征标识时,将所述目标子节点的页面元素对象添加到所述初始页面元素对象列表中,记录所述查找深度,并结束所述目标特征标识查找流程;当所述自身节点的所有子节点均不匹配所述目标特征标识时,将所述自身节点切换至所述自身节点的父节点,并使所述父节点替换所述自身节点,使所述查找深度加1,得到更新后的查找深度,重复执行所述目标特征标识查找流程,直至将所述自身节点切换至所述自身节点的父节点的切换次数达到预设阈值。需要说明的是,本申请是根据输入的线索和待测控件的类型名称基于就近原则查找待测控件的控件元素的,可以提高获取的控件元素的准确率,从而提高自动化测试的可靠性。相应的,所述将所述目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为所述待测控件的控件元素,包括:对所述初始页面元素对象列表中的页面元素对象进行筛选,得到目标页面元素对象列表;将所述目标页面元素对象列表中的页面元素对象作为所述待测控件的控件元素。可选的,所述对所述初始页面元素对象列表中的页面元素对象进行筛选,得到目标页面元素对象列表,包括:删除所述初始页面元素对象列表中隐藏控件对应的页面元素对象,得到中间页面元素对象列表;获取所述中间页面元素对象列表中所述查找深度最小的至少一个页面元素对象,得到所述目标页面元素对象列表。可选的,所述特征标识包括层叠样式表CSS选择器表达式。进一步的,在所述基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识之前,所述方法还包括:对所述待测页面上的所有控件类型进行命名,确定每个控件类型的名称;对所述待测页面上的所有控件类型进行定义,确定与所述名称一一对应的特征标识,以得到所述对应关系。再进一步的,所述方法还包括:对定义后的控件类型进行界面操作代码的封装,得到所述待测页面上所有控件的封装实现类。可选的,所述待测控件包括按钮控件、文本框控件、普通链接控件、下拉框控件、表格控件、树型控件和日期选择控件中的至少一种。可选的,所述线索包括所述待测页面上的程序节点的身份标识、程序节本文档来自技高网
...

【技术保护点】
1.一种控件元素的获取方法,其特征在于,所述方法包括:根据输入的目标控件类型的名称,基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识,所述目标控件类型为待测控件的控件类型,所述对应关系包括待测页面上所有控件类型的名称以及与所述名称一一对应的特征标识;在所述待测页面的程序节点中查找所述目标特征标识;将所述目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为所述待测控件的控件元素,所述控件元素用于输入自动化测试框架,以供自动化测试框架基于所述待测控件的封装实现类对所述待测控件进行自动化测试。

【技术特征摘要】
1.一种控件元素的获取方法,其特征在于,所述方法包括:根据输入的目标控件类型的名称,基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识,所述目标控件类型为待测控件的控件类型,所述对应关系包括待测页面上所有控件类型的名称以及与所述名称一一对应的特征标识;在所述待测页面的程序节点中查找所述目标特征标识;将所述目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为所述待测控件的控件元素,所述控件元素用于输入自动化测试框架,以供自动化测试框架基于所述待测控件的封装实现类对所述待测控件进行自动化测试。2.根据权利要求1所述的方法,其特征在于,当所述待测页面上包括至少两个所述控件类型时,所述在所述待测页面的程序节点中查找所述目标特征标识,包括:基于输入的所述待测页面上的线索,获取所述线索所在的所有程序节点;遍历所述线索所在的所有程序节点以查找所述目标特征标识。3.根据权利要求2所述的方法,其特征在于,所述遍历所述线索所在的所有程序节点以查找所述目标特征标识,包括:设置查找深度,并对所述线索所在的每个程序节点执行目标特征标识查找流程,直至遍历完成所述线索所在的所有程序节点;其中,所述目标特征标识查找流程包括:判断所述线索所在的自身节点是否匹配所述目标特征标识;当所述自身节点匹配所述目标特征标识时,将所述自身节点的页面元素对象添加到初始页面元素对象列表中,记录所述查找深度,并结束所述目标特征标识查找流程;当所述自身节点不匹配所述目标特征标识时,检测所述自身节点的子节点是否匹配所述目标特征标识;当所述自身节点的子节点中存在目标子节点匹配所述目标特征标识时,将所述目标子节点的页面元素对象添加到所述初始页面元素对象列表中,记录所述查找深度,并结束所述目标特征标识查找流程;当所述自身节点的所有子节点均不匹配所述目标特征标识时,将所述自身节点切换至所述自身节点的父节点,并使所述父节点替换所述自身节点,使所述查找深度加1,得到更新后的查找深度,重复执行所述目标特征标识查找流程,直至将所述自身节点切换至所述自身节点的父节点的切换次数达到预设阈值。4.根据权利要求3所述的方法,其特征在于,所述将所述目标特征标识所匹配到的至少一个程序节点的页面元素对象确定为所述待测控件的控件元素,包括:对所述初始页面元素对象列表中的页面元素对象进行筛选,得到目标页面元素对象列表;将所述目标页面元素对象列表中的页面元素对象作为所述待测控件的控件元素。5.根据权利要求4所述的方法,其特征在于,所述对所述初始页面元素对象列表中的页面元素对象进行筛选,得到目标页面元素对象列表,包括:删除所述初始页面元素对象列表中隐藏控件对应的页面元素对象,得到中间页面元素对象列表;获取所述中间页面元素对象列表中所述查找深度最小的至少一个页面元素对象,得到所述目标页面元素对象列表。6.根据权利要求1所述的方法,其特征在于,所述特征标识包括层叠样式表CSS选择器表达式。7.根据权利要求1所述的方法,其特征在于,在所述基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识之前,所述方法还包括:对所述待测页面上的所有控件类型进行命名,确定每个控件类型的名称;对所述待测页面上的所有控件类型进行定义,确定与所述名称一一对应的特征标识,以得到所述对应关系。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:对定义后的控件类型进行界面操作代码的封装,得到所述待测页面上所有控件的封装实现类。9.根据权利要求1所述的方法,其特征在于,所述待测控件包括按钮控件、文本框控件、普通链接控件、下拉框控件、表格控件、树型控件和日期选择控件中的至少一种。10.根据权利要求2所述的方法,其特征在于,所述线索包括所述待测页面上的程序节点的身份标识、程序节点的名称和页面元素中的至少一种。11.一种控件元素的获取装置,其特征在于,所述装置包括:第一确定模块,用于根据输入的目标控件类型的名称,基于预设的对应关系,确定与所述目标控件类型的名称对应的目标特征标识,所述目标控件类型为待测控件的控件类型,所述对应关系包括待测页面上所有控件类型的名称以及与所述名...

【专利技术属性】
技术研发人员:胡应广
申请(专利权)人:华为软件技术有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1