自动化测试方法及系统与流程

文档序号:13673295阅读:136来源:国知局
技术领域本发明涉及互联网测试技术领域,特别涉及一种自动化测试方法及系统。

背景技术:
在自动化测试领域中,传统的用于自动化测试的自动化测试脚本的开发一般有两种方法。第一种方法是通过手工运行一次测试,同时使用自动化测试工具的录制功能,把所进行的操作记录下来,生成测试脚本。这种技术生成的脚本回放成功率比较低,后期维护也比较困难。第二种方法是编写测试框架,对测试需要的基础操作提供接口供调用,测试人员根据用例操作需求,手工编写调用接口的自动化测试脚本,这种方法对测试人员的代码水平要求很高。在自动化测试时,通常是通过控件ID来对控件进行定位,并待定位完成后对其开展测试。但在实际操作过程中,常出现控件ID重复或者没有控件ID的问题,针对无法定位控件时,一般采用第二种方法,即要求开发规范代码编写,或者添加控件ID的方式,但基于该方法需要耗费大量的时间。而且,对于页面十分复杂的网页在出现上述问题时,进一步增大了定位网页的控件的难度。因此,提供一种自动化测试方法,以高效的查找页面的控件成为本领域技术人员亟待解决的问题。

技术实现要素:
本发明的目的在于提供一种自动化测试方法及系统,以解决现有的自动化测试无法高效的查找页面的控件的问题。为解决上述技术问题,本发明提供一种自动化测试方法,所述自动化测试方法包括:启动测试对象;利用控件ID查找所述测试对象包含的多个待测试控件;对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件;对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,其中,所述无法正常定位的待测试控件为不具有唯一标识的待测试控件,所述第一标识和所述第二标识的标识原则不同;基于查找到的待测试控件对所述测试对象进行自动化测试。可选的,所述的自动化测试方法还包括:对进行第二标识后仍无法正常定位的待测试控件,利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件。可选的,在所述的自动化测试方法中,利用JQuery对利用控件ID无法正常定位到的待测试控件进行第一标识,所述第一标识的标识原则为根据待测试控件的属性进行标识。可选的,在所述的自动化测试方法中,所述待测试控件的属性为:控件的类型与控件ID两者的组合;或者,控件名称与控件ID两者的组合。可选的,在所述的自动化测试方法中,利用JQueryEasyUI对进行第一标识后仍无法正常定位的待测试控件进行第二标识,所述第二标识的标识原则为给待测试控件添加新属性。可选的,在所述的自动化测试方法中,所述利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件包括:将预先保存的截图与不同类型的控件的显示图像逐一进行对比,并根据不同类型的控件所对应的预定算法查找所述待测试控件。可选的,在所述的自动化测试方法中,所述预定算法与控件的类型相关:若控件的类型为事件响应类,则利用查找时显示图像的中心点定位控件;若控件的类型为输入类,则根据查找时显示图像的中心点和预设的偏移量进行定位控件。本发明还提供一种自动化测试系统,所述自动化测试系统包括:第一查找控件模块,用于利用控件ID查找所述测试对象包含的多个待测试控件;第二查找控件模块,用于对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件;第三查找控件模块,用于对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,其中,所述无法正常定位的待测试控件为不具有唯一标识的待测试控件,所述第一标识和所述第二标识的标识原则不同;测试模块,基于查找到的待测试控件对所述测试对象进行自动化测试。可选的,所述的自动化测试系统还包括:第四查找控件模块,用于对进行第二标识后仍无法正常定位的待测试控件时,利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件。可选的,在所述的自动化测试系统中,利用JQuery对利用控件ID无法正常定位到的待测试控件进行第一标识,所述第一标识的标识原则为根据待测试控件的属性进行标识。可选的,在所述的自动化测试系统中,所述控件的属性为:控件的类型与控件ID两者的组合;或者,控件名称与控件ID两者的组合。可选的,在所述的自动化测试系统中,利用JQueryEasyUI对进行第一标识后仍无法正常定位的待测试控件进行第二标识,所述第二标识的标识原则为给待测试控件添加新属性。可选的,在所述的自动化测试系统中,所述第四查找控件模块包括:对比模块,用于将预先保存的截图与不同类型的控件的显示图像逐一进行对比,并根据不同类型的控件所对应的预定算法查找所述待测试控件。可选的,在所述的自动化测试系统中,所述预定算法与控件的类型相关:若控件的类型为事件响应类,则利用查找时显示图像的中心点定位控件;若控件的类型为输入类,则根据查找时显示图像的中心点和预设的偏移量进行定位控件。在本发明所提供的自动化测试方法及系统中,先利用控件ID查找测试测试对象的多个待测试控件,对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件;对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,最终基于查找到的待测试控件对所述测试对象进行自动化测试。逐次对待测试控件进行标识以使每个待测试控件均存在唯一标识,解决了页面中控件不存在控件ID、控件ID全部一样或由于页面过于复杂无法查找控件的问题,简化了查找目标控件的过程,提高查找控件的效率。附图说明图1是本发明一实施例中自动化测试方法的流程图;图2是本发明另一实施例中自动化测试系统的结构框图。图2中,第一查找控件模块-10;第二查找控件模块-11;第三查找控件模块-12;第四查找控件模块-13;测试模块-14。具体实施方式以下结合附图和具体实施例对本发明提出的自动化测试方法及系统作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。为了较好的理解本发明的技术方案,这里对于专业术语进行详细的解读。Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、MozillaFirefox、MozillaSuite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。JQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需要定义ID即可。JQueryEasyUI是一组基于JQuery的UI插件集合体,而JQueryEasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的Javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。Sikuli是一种新颖的图形脚本语言Sikuli,计算机用户只须有最基本的编程技能(比如会写print\helloworld\),不需要去写出一行行代码,而是用屏幕截图的方式,可以利用图形用户界面的截图元素自动的完成大多数编程任务。实施例一图1是自动化测试方法的流程图。如图1所示,所述自动化测试方法具体步骤如下:S1:启动测试程序包;所述测试程序包为根据测试的需求自行开发的可以驱动测试对象自动运行的代码,采用测试程序包进行测试为本领域技术人员的公知常识,在此不再赘述。S2:加载配置数据;其中,所述配置数据包括测试对象所依赖的操作系统对象库,浏览器程序,数据库的链接字符及一些测试对象必须配置的选项。S3:启动测试对象;所述测试对象通常为软件系统,例如乳腺后处理软件或远程诊断系统。S4:利用控件ID查找所述测试对象包含的多个待测试控件;其中,采用的工具为Selenium,控件ID查找控件的原理为:通过查找控件的唯一属性来调用这个控件的响应事件来实现自动化测试,常规方法下,多数是依据ID,控件的层级XPath来定位控件的。但是在实际的开发过程中很多程序员编写的代码并不规范,会缺少很多标准属性,同时也发现有不少控件属性是重复的,例如很多控件ID和Name都是重复的,这样就导致通过Selenium原生的方法很难去定位页面元素,针对这一问题,本申请引入了新的方法协助页面元素的定位,具体请参考步骤S5及步骤S6的内容。S5:对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件。S6:对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,其中,所述无法正常定位的待测试控件为不具有唯一标识的待测试控件,所述第一标识和所述第二标识的标识原则不同。S7:基于查找到的待测试控件对所述测试对象进行自动化测试。较佳的,在执行S6后,若进行第二标识后仍无法正常定位的待测试控件,则还包括利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件的步骤。下面以测试对象为乳腺工作站产品为举例,对步骤S5进行详细说明。在前台的UI中,病人信息的刻录状态是在嵌套在一个表格样式内部,这个表格的嵌套逻辑是这样的:Chrome整体界面→Frame→list→datagrid→row→field→img→title,嵌套比较多,使用Selenium原生的方法来查找待测试控件的效率比较低,并且经常会出现利用Selenium无法正常定位到控件ID的情况。此时可以使用JQuery查找Selenium基于控件ID无法正常定位到的待测试控件。具体过程是通过JQuery封装利用Selenium查找、测试待测试控件的测试程序包,对Selenium无法正常定位到的待测试控件进行进一步处理。处理的过程是对利用Selenium无法正常定位到的待测试控件进行第一标识,所述第一标识的标识原则优选的为根据待测试控件的属性进行标识,即当无法由Selenium正常定位(没有唯一标识)的待测试控件,通过第一标识的方式使得这些待测控件具有唯一标识,便于查找。其中,所述待测试控件的属性可以为:控件的类型与控件ID两者的组合;或者,控件名称与控件ID两者的组合。使用JQuery查找待测试控件的优点如下:1)通过执行js直接获取或操作HTML元素;2)当有多个iframe时,Webdriver实例定位控件方法需要来回切换iframe时,使用JQuery方便简单查找控件;3)可以对HTML元素组进行操作;4)前端页面的代码不规范时,有多种获取元素的方法(通过标签名、ID、类名、指定层次关系、元素的属性值、过滤器等),方便灵活;实现实例:/*用例ID455194标题SSIT_患者检查_检查列表_显示列_刻录状态图标操作步骤0:前提:系统中存在已刻录的患者A,未刻录的患者B;1:诊断医生登录乳腺图像后处理工作站,进入患者检查界面;2:查看检查列表中患者A、患者B的刻录状态列;3:点击“刻录状态”列头过滤。描述验证刻录状态对应于检查导出CD/DVD刻录功能由于S5中利用JQuery对利用控件ID无法正常定位到的待测试控件进行第一标识,进行第一标识的原则为控件的属性,存在经过第一标识后会出现多个待测试控件属性相同的情况,因此,在控件的属性相同的多个待测试控件中定位待测试控件时,仍存在无法正常定位的待测试控件。对于该问题,本实施例中在步骤S6通过JQueryEasyUI对进行第一标识后仍无法正常定位的待测试控件进行第二标识,以进一步标识属性相同的多个待测试控件,所述第二标识的标识原则为给待测试控件添加新属性,新属性可以是采用在控件名称的基础上增加前缀或后缀。使用JQueryEasyUI查找待测试控件的优点如下:1)控件使用JQueryEasyUI生成时,可结合JQueryEasyUI封装的方法执行相关的命令操作控件;2)JQueryEasyUI是基于JQuery的,可以很方便的使用JQuery的语法,不需要复杂的代码,可方便快捷的操作前端控件;3)支持HTML5,代码简单功能强大。实现实例:publicstaticeasyUIInterfaceeui=neweasyUIInterface();/*用例ID456790标题SSIT_配置中心_胶片打印机配置_新增AE_无效输入操作步骤0:前提:用户进入配置中心;1:点击胶片打印机配置;2:点击新增,保留AETitle、IP地址和端口号其中一个或两个为空,点击测试;3:IP地址栏输入不合理的IP地址(0.0.0.0到255.255.255.255范围之外的任何数值或者字符串);4:端口号输入不合理值(0-65535范围之外的任何数字或字符串),如-12或者65577;5:输入有效的AETitle和端口号,无效的IP地址(如不存在的IP,或者是与AETitle不对应的IP),点击测试;6:输入有效的AETitle、IP地址,无效的端口号(比如与系统冲突的端口号21),点击测试;描述验证在输入错误AE信息前提下,连接测试通信失败对于利用上面步骤S5和步骤S6两种方案后仍无法正常定位的待测试控件,进一步的通过步骤S7采用封装截图查找待测试控件的方法。所述利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件包括:将预先保存的截图与不同类型的控件的显示图像逐一进行对比,并根据不同类型的控件所对应的预定算法查找所述待测试控件。其中,所述预定算法与控件的类型相关:若控件的类型为事件响应类,则利用查找时显示图像的中心点定位控件;若控件的类型为输入类,则根据查找时显示图像的中心点和预设的偏移量进行定位控件。实现实例:实施例二图2是本发明自动化测试系统的结构框图。如图2所示,所示自动化测试系统包括:第一查找控件模块10、第二查找控件模块11、第三查找控件模块12、第四查找控件模块13及测试模块14;其中,所示第一查找控件模块10用于利用控件ID查找所述测试对象包含的多个待测试控件;所述第二查找控件模块11用于对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件;所述第三查找控件模块12用于对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,其中,所述无法正常定位的待测试控件为不具有唯一标识的待测试控件,所述第一标识和所述第二标识的标识原则不同;所述第四查找控件模块13用于对进行第二标识后仍无法正常定位的待测试控件时,利用Sikuli基于图像对比的方式查找进行第二标识后仍无法正常定位的待测试控件;所述测试模块14用于基于查找到待测试控件对测试对象进行自动化测试。进一步地,所述第四查找控件模块13包括:对比模块;其中,所述对比模块用于将预先保存的截图与不同类型的控件的显示图像逐一进行对比,并根据不同类型的控件所对应的预定算法查找所述待测试控件。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。综上,在本发明所提供的自动化测试方法及系统中,先利用控件ID查找测试测试对象的多个待测试控件,对利用控件ID无法正常定位到的待测试控件进行第一标识,并基于所述第一标识查找利用控件ID无法正常定位到的待测试控件;对进行第一标识后仍无法正常定位的待测试控件进行第二标识,并基于所述第二标识查找进行第一标识后仍无法正常定位的待测试控件,最终基于查找到的待测试控件对所述测试对象进行自动化测试。逐次对待测试控件进行标识以使每个待测试控件均存在唯一标识,解决了页面中控件不存在控件ID、控件ID全部一样或由于页面过于复杂无法查找控件的问题,简化了查找目标控件的过程,提高查找控件的效率。上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1