一种交互式自动化测试系统的制作方法

文档序号:6436902阅读:148来源:国知局
专利名称:一种交互式自动化测试系统的制作方法
技术领域
本发明涉及软件自动化测试领域工具的设计和开发领域,特别涉及一种交互式自动化测试构建工具。
技术背景
当前的主流测试工具,无论是开源自动化测试工具,还是商业自动化测试工具,都是直接使用某种编程语言,进行测试脚本编写和调试,然后脚本在单机执行自动化测试。这些自动化测试,由于其对缺陷的捕获能力、健壮性和对变更的适应性,都依赖于脚本的编写结果。但是,单个测试脚本的复杂度限制和测试成本效益的限制,不能把脚本写的过于复杂。所以,当前的自动化测试工具,只能用于软件成熟稳定时的回归测试。对于测试过程中, 脚本未考虑到的“意外”错误,在原理上,无法做到有效捕获和自动处理。
由于当前测试工具基本都是针对单机执行设计的,所以,很难建立多台机器之间交互过程的业务流用例测试。而这方面的业务流测试,却往往是一个软件的功能需求的核心功能测试。
由于自动化测试脚本,是以某种语言,以编程的方式构建成的。所以,自动化测试的构建过程,从设计测试框架和构建调试测试脚本,到准备测试数据的过程,耗费了大量时间和资源,使得自动化测试很难显示出显著的成本效益
发明内容
为了解决上述技术问题,本发明提供一种交互式自动化测试系统,采用如下技术方案,一种交互式自动化测试系统,包括界面录制模块、自动化用例编辑器、测试总控端和代理执行端,其中所述界面录制模块录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用;所述自动化用例编辑器加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查;所述测试总控端把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给代理执行端执行,同时,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;所述代理执行端连接测试总控端,并接收执行测试总控端发送过来的控件操作动作, 同时将操作后的结果和截屏发送给测试总控端;所述录制界面通过录制的控件库文件进行连接,所述测试总控端分别与自动化用例编辑器和代理执行端连接;所述自动化用例编辑器和测试总控端应用有类自然语言管理器。
所述的测试总控端至少连接一个代理执行端。
所述的自动化用例编辑器器用于直接调出录制模块、运行模块录制和执行自动化测试。
所述类自然语言管理器将生成好的类自然语言测试用例的每个测试动作语句进行解析,解析出动作名称、动作对象和动作参数语素,送入相应的函数接口执行。
所述的类自然语言管理器为中文和英文两种类自然语言。
所述的英文类自然语言是以英文测试用例常用语句为样板提炼加工而成,符合英文测试用例常用的表达习惯。
所述的中文类自然语言是以中文测试用例常用语句为样板提炼加工而成,符合中文测试用例常用的表达习惯。
本发明的优点在于,由于其实施方案原理与传统测试系统不同,使得软件自动化测试的构建速度大大提高,同时也降低了对自动化测试人员的能力要求,并且能执行传统测试工具无法解决的软件交互式测试的难题。具体如下1.该系统采用直接录制控件库,并配合被测界面的截图,能完全展示被测程序的GUI (Graphical User hterface,图形用户界面)界面的外形,使测试人员在该界面上操作时更直观,和在被测软件上直接操作感觉相似,新技术减少了在页面刷新过慢时被测系统刷新的等待时间。
2.测试人员在测试工具展示的被测软件的虚拟界面想要操作的控件上点击右键, 可以选择该控件可以执行的任何一种动作或者数据检查,由工具自动生成该测试语句,使得自动化测试操作语句的生成和传统的录制动作的模式速度是等效的。但是在数据检查语句的生成速度上,由于免去了手写脚本和调试脚本的工作,效率提升可为传统方式的2 10倍以上。
3、生成的测试语句采用类似自然语言的语法习惯,读起来像人工写成的测试用例语句,使得自动化测试和手动测试可以采用同一个测试用例,让手动测试和自动化测试结合的更加紧密,语句结构简单,减少了用例调试的复杂度。这种用例生成后,几乎不需要调试即可很好的执行。同时,也使不懂编程的纯手工测试人员无需培训即可熟练设计自动化测试用例。既提高了脚本生成的速度和质量,又大大降低了人力资源的成本。
4、异常的自动捕获和处理功能。传统测试工具需要自己预设哪里的测试操作会遇到哪些意外错误,并写出完整的处理脚本并调试通过才能完成,并且,脚本编写者由于经验和时间的原因,无法把一个测试脚本中的所有意外错误情况都设计进脚本,使得脚本天生就具备很多缺陷,遇到脚本没有涉及到的情况就无法处理,需要人工干预才可以继续运行, 使自动化执行的效果大打折扣。
该系统具有意外错误自动检查功能,使得测试人员省去了设计用例每个动作执行后会出现哪些意外错误,以及如何处理错误的代码设计时间。
5、该系统采用Console (测试总控端)-Agent (代理执行端)架构执行测试用例, Console控制每个Agent端的每个测试动作,使得自动化测试能直接执行B/S或C/S软件多终端之间的交互式测试用例。这些测试用例往往就是该软件业务流测试的核心用例,传统4测试工具无此功能。
6、该系统采用自动日志和截图功能,使得测试过程中的任何细节,都能够如是准确的记录下来。用户也不需要在测试步骤中加入日志记录和截屏判断语句,减少了自动化测试用例的复杂度。
7、该系统采用动态数据存储技术,使得测试用例内部和测试用例之间的数据传递和数据验证,变得简单便捷,使得测试用例的构建更加高效。
8、自动异常捕获和记录执行端在遇到任何执行过程中出现的被测软件的异常或错误,执行端都会自动捕获下来,并记入测试执行日志。这个过程是自动的,自动化测试人员在生成测试用例时无需做这方面的考虑,这些节省了大量的工作时间,提高自动化用例的生成效率。


图1是本发明的工作流程图; 图2是本发明的模块连接关系图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明。
如图2所示,本发明提出的交互式自动化测试系统包括界面录制模块 (Recorder )、自动化用例编辑器(CaseEditor )、测试总控端(Conso 1 e )和代理执行端 (Agent),其中所述界面录制模块录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用;所述自动化用例编辑器加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查;所述测试总控端把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给代理执行端执行,同时,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;所述代理执行端连接测试总控端,并接收执行测试总控端发送过来的控件操作动作, 同时将操作后的结果和截屏发送给测试总控端;其中,所述录制界面通过录制的控件库文件进行连接,所述测试总控端分别与自动化用例编辑器和代理执行端连接;所述自动化用例编辑器和测试总控端应用有类自然语言管理器。
所述的测试总控端至少连接一个代理执行端;所述的自动化用例编辑器器用于直接调出录制模块、运行模块录制和执行自动化测试;所述类自然语言管理器将生成好的类自然语言测试用例的每个测试动作语句进行解析,解析出动作名称、动作对象和动作参数语素,送入相应的函数接口执行;所述的类自然语言管理器为中文和英文两种类自然语言; 所述的英文类自然语言是以英文测试用例常用语句为样板提炼加工而成,符合英文测试用例常用的表达习惯;所述的中文类自然语言是以中文测试用例常用语句为样板提炼加工而成,符合中文测试用例常用的表达习惯。
其工作流程如图1所示,1)打开被测系统,打开想要录制的界面。
2)打开测试系统的Recorder (界面对象录制)模块界面,配置录制热键,并最小化录制模块界面。
3)将被测系统界面放到最前,按照录制热键的配置,按下录制热键。
4)等待录制完成的提示信息弹出。
5)打开CaseEditor (自动化用例编辑器)模块界面6)刷新编辑器的界面显示,刚录制好的界面会显示在CaseEditor中。
7)在CaseEditor显示的被测界面中,某个控件上点击鼠标右键,弹出该控件上可以进行的各种测试动作。根据手动测试用例的要求,选择一种测试动作。
8)CaSeEdit0r会自动在自身的测试用例文本编辑器中,产生一条类自然语言的测试动作描述。
9)重复7) 8)的动作,直至完成一个完整的手工测试用例的所有动作和数据验证动作。
10)保存生成的自动化测试用例。
11)打开Console模块,加载生成的测试用例。
12)打开一台计算机或多台计算机上的Agent模块,建立Console-Agent的网络连接。
13)在Console上点击执行按钮,Console会根据测试用例的动作要求,指挥一个或多个Agent执行测试动作。
14)测试动作执行完毕后,Console端会自动生成该测试用例执行的结果统计。该执行结果包括测试动作的执行通过率,每一步执行情况饿截图,每一步动作执行的耗时等详细信息。
模块功能设计Recorder (界面对象录制模块)录制被测对象的所有控件及界面截图,打包封装到控件库中,供CaseEditoH自动化用例编辑器)用例生成使用和Console (测试总控端)-Agent (代理执行端)执行使用。
CaseEditor(自动化用例编辑器)加载Recorder (界面对象录制模块)录制的控件库,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员,直接选取被测控件,生成该控件执行的动作或检查。
Console (测试总控端)把Recorder (界面对象录制模块)录制的控件库和CaseEditor (自动化用例编辑器) 生成的自动化测试用例加载如系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给Agent (代理执行端)执行。同时,接受Agent (代理执行端)执行动作后的结果日志和对应的截图,保存成固定格式的日志文件。
Agent (代理执行端)连接Console (测试总控端),并接收执行Console (测试总控端)发送过来的控件操作动作,同时,将操作后的结果和截屏,发送给Console (测试总控端)端。
异常的自动捕获和处理模块该模块属于Agent (代理执行端)的子模块,功能是在执行Console (测试总控端)发送过来的动作指令前后时间内,捕获被测软件和操作系统环境等,发生的各种异常和错误。并自动处理这些异常,恢复测试现场。该模块功能,主要根据测试异常判定的原理进行检验, 并根据异常的关闭特点和规律,自动执行异常的关闭操作。并同时调用现场抓屏的手段,记录下该异常。
脚本样例展示1 (英文类自然语言自动化用例展示) PC_A: Goto > [百度一下,你就知道] PC_A: Enter "123" to [Txt_ 搜索]by keyboard PC_A: Click [btn_ 百度一下] PC_A: Get [Hyperlink 4] value is <Flow_l> 脚本样例展示2 (中文类自然语言自动化用例展示) PC_A:跳转到界面 > [百度一下,你就知道] PC_A:使用键盘向[Txt_搜索]控件输入"123〃 PC_A:点击控件[btn_百度一下]PC_A:抓取控件[Hyperlink 4]的文字并存入变量<Flow_l>中该系统的优势在于使自动化用例设计人员无须考虑每个测试动作或系统环境会出现哪些异常,如何处理这些异常的问题。使得自动化测试用例只有必要的测试步骤,没有多余的判断和跳转之类的设计。结合类自然语言管理技术,使自动化测试用例完全符合手工测试用例的标准,是一个真正专业化的自动化测试用例。
最后,还需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
权利要求
1.一种交互式自动化测试系统,其特征在于,包括界面录制模块、自动化用例编辑器、 测试总控端和代理执行端,其中所述界面录制模块录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用;所述自动化用例编辑器加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查;所述测试总控端把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给代理执行端执行,同时,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;所述代理执行端连接测试总控端,并接收执行测试总控端发送过来的控件操作动作, 同时将操作后的结果和截屏发送给测试总控端;所述录制界面通过录制的控件库文件进行连接,所述测试总控端分别与自动化用例编辑器和代理执行端连接;所述自动化用例编辑器和测试总控端应用有类自然语言管理器。
2.根据权利要求1所述的系统,其特征在于,所述的测试总控端至少连接一个代理执行端。
3.根据权利要求1所述的系统,其特征在于,所述的自动化用例编辑器器用于直接调出录制模块、运行模块录制和执行自动化测试。
4.一种权利要求1所述的系统,其特征在于,所述类自然语言管理器将生成好的类自然语言测试用例的每个测试动作语句进行解析,解析出动作名称、动作对象和动作参数语素, 送入相应的函数接口执行。
5.根据权利要求1所述的系统,其特征在于,所述的类自然语言管理器为中文和英文两种类自然语言。
6.根据权利要求5所述的系统,其特征在于,所述的英文类自然语言是以英文测试用例常用语句为样板提炼加工而成,符合英文测试用例常用的表达习惯。
7.根据权利要求5所述的系统,其特征在于,所述的中文类自然语言是以中文测试用例常用语句为样板提炼加工而成,符合中文测试用例常用的表达习惯。
全文摘要
本发明提出一种交互式自动化测试系统,包括界面录制模块、自动化用例编辑器、测试总控端和代理执行端,所述录制界面通过录制的控件库文件进行连接,所述测试总控端分别与自动化用例编辑器和代理执行端连接;所述自动化用例编辑器和测试总控端应用有类自然语言管理器。由于其实施方案原理与传统测试系统不同,使得软件自动化测试的构建速度大大提高,同时也降低了对自动化测试人员的能力要求,并且能执行传统测试工具无法解决的软件交互式测试的难题。
文档编号G06F11/36GK102508775SQ20111033709
公开日2012年6月20日 申请日期2011年10月31日 优先权日2011年10月31日
发明者彭勇 申请人:彭勇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1