专利名称:一种交互式自动化测试系统及其方法
技术领域:
本发明涉及软件自动化测试领域工具的设计和开发领域,特别涉及一种交互式自动化测试构建工具。
背景技术:
当前的主流测试工具,无论是开源自动化测试工具,还是商业自动化测试工具,都是直接使用某种编程语言,进行测试脚本编写和调试,然后脚本在单机执行自动化测试。这些自动化测试,由于其对缺陷的捕获能力、健壮性和对变更的适应性,都依赖于脚本的编写结果。但是,单个测试脚本的复杂度限制和测试成本效益的限制,不能把脚本写的过于复杂。所以,当前的自动化测试工具,只能用于软件成熟稳定时的回归测试。对于测试过程中,脚本未考虑到的“意外”错误,在原理上,无法做到有效捕获和自动处理。由于当前测试工具基本都是针对单机执行设计的,所以,很难建立多台机器之间交互过程的业务流用例测试。而这方面的业务流测试,却往往是一个软件的功能需求的核心功能测试。由于自动化测试脚本,是以某种语言,以编程的方式构建成的。所以,自动化测试的构建过程,从设计测试框架和构建调试测试脚本,到准备测试数据的过程,耗费了大量时间和资源,使得自动化测试很难显示出显著的成本效益。
发明内容
为了解决上述技术问题,本发明提供一种交互式自动化测试系统及其方法。为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:一种交互式自动化测试系统,包括一测试总控制端(主控端),所述测试总控制端分别连接有一自动化用例编辑器和若干个代理执行端,所述自动化用例编辑器通过录制的控件库文件连接一界面录制模块,所述自动化用例编辑器和所述测试总控端应用可以由高级自动化语言编辑器,对动作命令进行编码和解析;所述高级自动化语言编辑器不需要使用条件跳转、循环等有编程特征的语句,完成对测试结果的验证和测试错误的捕获或循环计算、循环等待等操作;对测试结果的判断、意外错误的捕获、测试结果的计算、循环等待等逻辑处理,由测试系统专有的模块,自动完成;高级自动化语言关注在简洁、易懂、规范,接近自然语言的方式描述测试用例的每一个手动测试需要具体实施的操作动作和验证动作;所述界面录制模块录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用;其中,包含了被测对象变化识别的重定向技术和自动测试细节时间统计;所述对象识别重定向技术,是指在对象录制到对象库后,开始设计各种自动化测试用例。如果被测对象版本发生变化时,不需要重新录制对象库,也不需要将依赖此对象库的相关测试用例作废重写。而是将对象库的变更对象的相关识别属性权重适当调整,使执行模块能够重新识别该控件,相关的测试用例依旧继续使用。在一般情况下(由于默认的属性识别权重设置,是优化设置,一般的被测对象简单的属性变更,根本不需要进行属性识别权重的调整,即可直接识别出变更的控件)。这种被测对象重定向技术,使得自动化测试工具,具备了一定的智能识别能力,能够以最小的代价(,快速适应被测对象的变更,从而使软件测试工具,真正能够应用在软件还未完全成熟的阶段,扩大了自动化测试工具的应用领域(传统自动化测试,只能应用于对成熟不变模块的递归测试)。所述自动测试时间统计,是自动化测试工具,自动在测试动作执行前记录下时间,在测试动作完全执行后,再记录下时间,其时间差即是测试动作执行最精确的时间,同理,可以根据设置,可以记录下动作命令传输的网络时间,数据响应时间等被测软件运行过程各种细节时间。这些时间可以用来做精准的被测软件各种性能分析。该时间的详细记录,会在测试后,作为测试日志报告,一同提交给日志系统。所述自动化用例编辑器加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查;所述测试总控端把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给代理执行端执行,同时,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;总控端还可以设置成并发状态,将并发测试用例同时发送给指定的各代理执行端,代理执行端同时执行指定的测试动作,并将各自运行的日志和对应的截图,发送给总控端,由总控端分类存储。所述代理执行端连接测试总控端,并接收执行测试总控端发送过来的控件操作动作,同时将操作后的结果和截屏,并将图片自动进行标注,发送给测试总控端。所述的自动化用例编辑器用于直接调出录制模块、运行模块录制和执行自动化测试。所述类自然语言管理器将生成好的类自然语言(或其它特定语言)测试用例的每个测试动作语句进行解析,解析出动作名称、动作对象和动作参数语素,送入相应的函数接口执行。所述的类自然语言管理器为中文和英文两种类自然语言。所述的英文类自然语言是以英文测试用例常用语句为样板提炼加工而成,符合英文测试用例常用的表达习惯。所述的中文类自然语言是以中文测试用例常用语句为样板提炼加工而成,符合中文测试用例常用的表达习惯。一种交互式自动化测试方法,包括自动定义变量,存储并传输数据的方法;自定义变量在交互式测试中的实现方法;测试步骤事件记录在测试系统的管理方法;自动截图标注的方法;自动日志链接图片;测试报告、测试总结的自动生成和提交;测试具体步骤动作粒度的交互式测试;测试步骤时间的精确统计;自动分配测试动作给网络交互各执行端的实现方法;自动处理程序错误,恢复测试现场的实现方法;其中:所述自动定义变量,存储并传输数据的方法中,所述自定义变量的应用范围囊括单机测试和多机交互性测试,在多机交互性测试中,可以多机共享同一个变量的使用,所述自定义变量在测试运行有效期内,对相关代理执行端透明;所述自定义变量在测试运行时,由测试系统进行自动管理;所述自定义变量根据作用和应用范围,可以(但不限于)分为三个级别,即:系统级、业务流级和测试用例级;系统级是指在整个测试的运行时,均有效;业务流级,即在所在的业务流测试运行时,均有效;测试用例级,即在所处的测试用例运行时均有效;所述自定义变量在交互式测试中的实现方法,参见图2所示,是在自动化测试用例编写过程中,某个测试动作需要抓取、存储、计算或比对界面的数据信息,该信息需要一个缓存为载体暂存下来,然后根据用例的验证需要进行运算;与编程脚本中的变量声明不同的是,动态变量是在自动化测试用例步骤中由用例编辑器自动创建,并可根据需要,更改有效期设置;在自动化测试用例运行期,这些所述的动态变量,由测试运行总控端统一管理,在其有效期开始时创建,并在超过其有效期时,自动清除,在多机环境下,动态变量在某一网络测试终端创建,该有效期内相关网络测试终端,通过测试运行总控端(主控端)直接共享该动态变量,进行任何复杂的运算操作,产生的新数据,同样也会由其他相关测试终端共享;所述测试步骤事件记录在测试系统的管理方法,是指当测试步骤动作命令发生时,测试系统会留存该步骤的相关信息,待该步骤再执行端顺利完成后,返回该步骤执行的所有结果信息;主控端将该返回信息关联实现保存的步骤信息,并生成图片超链接、详细说明、执行时间、执行机器、用例名、业务流名相关需要的信息,并根据保存样式的设计,格式化保存到网页文件、XML文件、数据库中或其他测试结果管理系统中;所述自动截图标注的方法,参见图3所示,是测试终端在测试的过程中,根据设定的截图触发条件,对当前屏幕进行截图,同时,在图片上将发生问题的对象进行画框或高亮处理,再根据发生问题的具体情况,在图片上的适当位置,加入对问题的注释说明;所述自动日志链接图片,是将测试过程中产生的截图文件名和该测试步骤信息相关联,并生成关联信息,然后将该信息发送给日志管理模块,由该模块生成,在该步骤运行结果说明里,含有此图片链接的测试结果文档;所述测试报告、测试总结的自动生成和提交,是指测试报告由测试管理模块汇总并分析,分别生成测试结果文档和测试总结文档,随后根据接口设置,将测试结果自动提交到指定的bug管理系统中,并将生成的测试总结报告,提交到指定的文档系统中;所述测试具体步骤动作粒度的交互式测试,主要是为实现交互式测试最大的灵活性,使被测系统中网络多端点的每一个具体的测试动作,都可以紧密配合,从而最真实的反映被测系统在某个具体的网络环境下,真实的运行数据和运行逻辑;所述测试步骤时间的精确统计,是在被测系统的系统时间,正确矫正的情况下,将测试过程每个动作的执行时间,进行毫秒级的精确统计,并记录在测试报告的每个步骤的执行信息里,以便测试后期进行软件性能、软硬件环境等因素的综合评估;所述自动分配测试动作给网络交互各执行端的实现方法,是在自动化测试用例中,每个测试动作都指明运行该动作的代理执行端的别称,在运行时,系统将这些别称统一进行系统真实IP的关联,此后,系统根据选定的网络协议,将测试动作信息指令分别发送给指定的代理执行端,网络测试终端的代理端,根据命令,执行测试动作,并将测试动作执行后的结果发送给测试主控端,主控端在收到测试结果后反馈后,继续进行下一个测试命令的发送,最后,主控端根据测试结果,将反馈信息整理、分析并记录成测试日志文档、测试分析文档和测试总结文档;所述自动处理程序错误,恢复测试现场的实现方法中,自动处理程序错误的实现方法是根据被测软件和系统出现异常的规律,将错误关闭的逻辑判断和操作步骤,封装成专门的自动处理模块,该模块同时也是自动记录操作日志和操作截图,并配合测试步骤的执行逻辑,统一将结果发送给总控端;自动恢复测试现场的实现方法是将软件关闭并自动初始化的操作规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动恢复测试现场的目的;自动恢复测试现场处理,同样自动记录操作过程日志和进行必要的操作截图。进一步的,所述的交互式测试的粒度是基本的测试动作语句;所述粒度,是自动化测试工具动作的最小粒度,所述粒度能使得多台代理执行端,能够最紧密的相互配合,完成一个测试用例的动作和结果判断的测试要求,组成一个基本的测试用例。进一步的,所述的测试系统基本架构无论使用云技术或其他网络技术,均需要一个主控端,协调多个测试相关网络设备,通过执行基本的测试动作,组成一个完整的测试用例所需的所有测试动作和结果判断,从而完成一个基本的测试用例。进一步的,所述的测试场景的执行,也需要一个主控端,主控端根据测试场景的用例顺序设置,协调测试用例的运行,并生成该场景的运行日志。进一步的,所述的自动截图标注是测试系统在运行过程中,对发现的问题或测试的关键步骤运行结果,进行自动截图,并自动在图片上标注出问题出现的位置,同时在图片上打印出对该问题的说明和注释。截图的图片名称和测试步骤说明,会被测试系统自动关联,并保存成测试结果日志的文档中。进一步的,所述的测试步骤时间的精确统计是在测试步骤执行前由测试代理端记录下时间,在该测试步骤执行后再记录下测试步骤成功执行后的时间,两个时间的时间差,即是测试步骤执行的准确耗时,同时测试执行前时间、执行后时间、网络测试指令发送时间等,均可根据实际需要获得。进一步的,所述的主控端,自动根据网络节点的设备IP关联配置,将测试步骤发送给指定的网络设备上的代理执行端,由代理执行端完成执行测试动作后,返回主控端该步骤的测试结果,主控端再根据测试用例的步骤顺序,将下一个测试动作命令发送给下一个指定的代理执行端;主控端综合管理整个交互式测试的节奏和测试结果,并保存成测试结果文档。进一步的,所述的自动错误处理功能,针对系统出错情况,是安装在代理执行端运行的,根据所运行的系统的出错对话框的的关闭规律定制的。遇到系统错误时,即自动调用该功能,从而达到自动错误处理的目的。错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。进一步的,所述的自动错误处理功能,针对软件预设的错误对话框情况,是将软件的出错对话框关闭规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动错误处理的目的。错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。本发明的有益效果在于,由于其实施方案原理与传统测试系统不同,使得软件自动化测试的构建速度大大提高,构建难度同时又大大降低,同时也降低了对自动化测试人员的能力要求,并且解决了传统测试工具无法解决的网络软件系统交互式测试的难题。具体如下:1、该系统采用直接录制控件库,并配合被测界面的截图,能完全展示被测程序的⑶I (Graphical User Interface,图形用户界面)界面的外形,使测试人员在该界面上操作时更直观,和在被测软件上直接操作感觉相似,新技术减少了在页面刷新过慢时被测系统刷新的等待时间。2、测试人员在测试工具展示的被测软件的虚拟界面想要操作的控件上点击右键,可以选择该控件可以执行的任何一种动作或者数据检查,由工具自动生成该测试语句,使得自动化测试操作语句的生成和传统的录制动作的模式速度是等效的。但是在数据检查语句的生成速度上,由于免去了手写脚本和调试脚本的工作,效率提升可为传统方式的2 10倍以上。3、生成的测试语句采用类似自然语言的语法习惯,读起来像人工写成的测试用例语句,使得自动化测试和手动测试可以采用同一个测试用例,让手动测试和自动化测试结合的更加紧密,语句结构简单,减少了用例调试的复杂度。这种用例生成后,几乎不需要调试即可很好的执行。同时,也使不懂编程的纯手工测试人员无需培训即可熟练设计自动化测试用例。既提高了脚本生成的速度和质量,又大大降低了人力资源的成本。4、异常的自动捕获和处理功能。传统测试工具需要自己预设哪里的测试操作会遇到哪些意外错误,并写出完整的处理脚本并调试通过才能完成,并且,脚本编写者由于经验和时间的原因,无法把一个测试脚本中的所有意外错误情况都设计进脚本,使得脚本天生就具备很多缺陷,遇到脚本没有涉及到的情况就无法处理,需要人工干预才可以继续运行,使自动化执行的效果大打折扣。该系统具有意外错误自动检查功能,使得测试人员省去了设计用例每个动作执行后会出现哪些意外错误,以及如何处理错误的代码设计时间。5、该系统采用Console (测试总控端)-Agent (代理执行端)架构执行测试用例,Console控制每个Agent端的每个测试动作,使得自动化测试能直接执行B/S或C/S(或云技术等其他网络技术构建的网络软件)系统多终端之间的交互式业务流测试用例。这些测试用例往往就是该软件业务流测试的核心用例,传统自动化测试工具无法支持此功能。6、该系统采用自动日志和截图功能,使得测试过程中的任何细节,都能够如实准确的记录下来。用户也不需要在测试步骤中加入日志记录、截屏、判断嵌套等语句,最大限度的减少了自动化测试用例构建的复杂度和工作量。7、该系统采用动态数据存储技术(动态变量技术),使得测试用例内部和测试用例之间的数据传递和数据验证,变得简单便捷,使得测试用例的构建更加高效。8、自动异常捕获和记录:执行端在遇到任何执行过程中出现的被测软件的异常或错误,执行端都会自动捕获下来,并记入测试执行日志。这个过程是自动的,自动化测试人员在生成测试用例时无需做这方面的考虑,这些节省了大量的工作时间,提高自动化用例的生成效率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例详细说明。本发明的具体实施方式
由以下实施例给出。
图1是本发明的系统结构框架图;图2是本发明的动态变量实现的工作流程图;图3是本发明的自动截图标注功能流程图。图中标号说明:1、测试总控制端,2、自动化用例编辑器,3、代理执行端,4、界面录制模块。
具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明。参见图1所示,一种交互式自动化测试系统,包括一测试总控制端1,所述测试总控制端I分别连接有一自动化用例编辑器2和若干个代理执行端3,所述自动化用例编辑器
2通过录制的控件库文件连接一界面录制模块4,所述自动化用例编辑器2和所述测试总控端I应用有高级自动化语言编辑器,对动作命令进行编码和解析;所述高级自动化语言编辑器不需要使用条件跳转、循环等有编程特征的语句,完成对测试结果的验证和测试错误的捕获或循环计算、循环等待等操作;对测试结果的判断、意外错误的捕获、测试结果的计算、循环等待等逻辑处理,由测试系统专有的模块,自动完成;高级自动化语言关注在简洁、易懂、规范,接近自然语言的方式描述测试用例的每一个手动测试需要具体实施的操作动作和验证动作;所述界面录制模块4录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用;其中,包含了被测对象变化识别的重定向技术和自动测试细节时间统计;所述对象识别重定向技术,是指在对象录制到对象库后,开始设计各种自动化测试用例。如果被测对象版本发生变化时,不需要重新录制对象库,也不需要将依赖此对象库的相关测试用例作废重写。而是将对象库的变更对象的相关识别属性权重适当调整,使执行模块能够重新识别该控件,相关的测试用例依旧继续使用。在一般情况下(由于默认的属性识别权重设置,是优化设置,一般的被测对象简单的属性变更,根本不需要进行属性识别权重的调整,即可直接识别出变更的控件)。这种被测对象重定向技术,使得自动化测试工具,具备了一定的智能识别能力,能够以最小的代价(,快速适应被测对象的变更,从而使软件测试工具,真正能够应用在软件还未完全成熟的阶段,扩大了自动化测试工具的应用领域(传统自动化测试,只能应用于对成熟不变模块的递归测试)。所述自动测试时间统计,是自动化测试工具,自动在测试动作执行前记录下时间,在测试动作完全执行后,再记录下时间,其时间差即是测试动作执行最精确的时间,同理,可以根据设置,可以记录下动作命令传输的网络时间,数据响应时间等被测软件运行过程各种细节时间。这些时间可以用来做精准的被测软件各种性能分析。该时间的详细记录,会在测试后,作为测试日志报告,一同提交给日志系统。所述自动化用例编辑器2加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查;所述测试总控端I把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,进行被测对象识别,分派自动化测试用例中的执行任务给代理执行端执行,同时,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;总控端还可以设置成并发状态,将并发测试用例同时发送给指定的各代理执行端,代理执行端同时执行指定的测试动作,并将各自运行的日志和对应的截图,发送给总控端,由总控端分类存储。所述代理执行端3连接测试总控端,并接收执行测试总控端发送过来的控件操作动作,同时将操作后的结果和截屏发送给测试总控端。所述的自动化用例编辑器2用于直接调出录制模块、运行模块录制和执行自动化测试。所述类自然语言管理器将生成好的类自然语言测试用例的每个测试动作语句进行解析,解析出动作名称、动作对象和动作参数语素,送入相应的函数接口执行。所述的类自然语言管理器为中文和英文两种类自然语言。所述的英文类自然语言是以英文测试用例常用语句为样板提炼加工而成,符合英文测试用例常用的表达习惯。所述的中文类自然语言是以中文测试用例常用语句为样板提炼加工而成,符合中文测试用例常用的表达习惯。一种交互式自动化测试方法,包括自动定义变量,存储并传输数据的方法;自定义变量在交互式测试中的实现方法;测试步骤事件记录在测试系统的管理方法;自动截图标注的方法;自动日志链接图片;测试报告、测试总结的自动生成和提交;测试具体步骤动作粒度的交互式测试;测试步骤时间的精确统计;自动分配测试动作给网络交互各执行端的实现方法;自动处理程序错误,恢复测试现场的实现方法;其中:所述自动定义变量,存储并传输数据的方法中,所述自定义变量的应用范围囊括单机测试和多机交互性测试,在多机交互性测试中,可以多机共享同一个变量的使用,所述自定义变量在测试运行有效期内,对相关代理执行端透明;所述自定义变量在测试运行时,由测试系统进行自动管理;所述自定义变量根据作用和应用范围,可以分为三个级别,即:系统级、业务流级和测试用例级;系统级是指在整个测试的运行时,均有效;业务流级,即在所在的业务流测试运行时,均有效;测试用例级,即在所处的测试用例运行时均有效;所述自定义变量在交互式测试中的实现方法,是在自动化测试用例编写过程中,某个测试动作需要抓取、存储、计算或比对界面的数据信息,该信息需要一个缓存为载体暂存下来,然后根据用例的验证需要进行运算;与编程脚本中的变量声明不同的是,动态变量是在自动化测试用例步骤中由用例编辑器自动创建,并可根据需要,更改有效期设置;在自动化测试用例运行期,这些所述的动态变量,由测试运行总控端统一管理,在其有效期开始时创建,并在超过其有效期时,自动清除,在多机环境下,动态变量在某一网络测试终端创建,该有效期内相关网络测试终端,通过测试运行总控端直接共享该动态变量,进行任何复杂的运算操作,产生的新数据,同样也会由其他相关测试终端共享;所述测试步骤事件记录在测试系统的管理方法,是指当测试步骤动作命令发生时,测试系统会留存该步骤的相关信息,待该步骤再执行端顺利完成后,返回该步骤执行的所有结果信息;主控端将该返回信息关联实现保存的步骤信息,并生成图片超链接、详细说明、执行时间、执行机器、用例名、业务流名相关需要的信息,并根据保存样式的设计,格式化保存到网页文件、XML文件、数据库中或其他测试结果管理系统中;所述自动截图标注的方法,是测试终端在测试的过程中,根据设定的截图触发条件,对当前屏幕进行截图,同时,在图片上将发生问题的对象进行画框或高亮处理,再根据发生问题的具体情况,在图片上的适当位置,加入对问题的注释说明;所述自动日志链接图片,是将测试过程中产生的截图文件名和该测试步骤信息相关联,并生成关联信息,然后将该信息发送给日志管理模块,由该模块生成,在该步骤运行结果说明里,含有此图片链接的测试结果文档;所述测试报告、测试总结的自动生成和提交,是指测试报告由测试管理模块汇总并分析,分别生成测试结果文档和测试总结文档,随后根据接口设置,将测试结果自动提交到指定的bug管理系统中,并将生成的测试总结报告,提交到指定的文档系统中;所述测试具体步骤动作粒度的交互式测试,主要是为实现交互式测试最大的灵活性,使被测系统中网络多端点的每一个具体的测试动作,都可以紧密配合,从而最真实的反应被测系统在某个具体的网络环境下,真实的运行数据和运行逻辑;所述测试步骤时间的精确统计,是在被测系统的系统时间,正确矫正的情况下,将测试过程每个动作的执行时间,进行毫秒级的精确统计,并记录在测试报告的每个步骤的执行信息里,以便测试后期进行软件性能、软硬件环境等因素的综合评估;所述自动分配测试动作给网络交互各执行端的实现方法,是在自动化测试用例中,每个测试动作都指明运行该动作的代理执行端的别称,在运行时,系统将这些别称统一进行系统真实IP的关联,此后,系统根据选定的网络协议,将测试动作信息指令分别发送给指定的代理执行端,网络测试终端的代理端,根据命令,执行测试动作,并将测试动作执行后的结果发送给测试主控端,主控端在收到测试结果后反馈后,继续进行下一个测试命令的发送,最后,主控端根据测试结果,将反馈信息整理、分析并记录成测试日志文档、测试分析文档和测试总结文档;所述自动处理程序错误,恢复测试现场的实现方法中,自动处理程序错误的实现方法是根据被测软件和系统出现异常的规律,将错误关闭的逻辑判断和操作步骤,封装成专门的自动处理模块,该模块同时也是自动记录操作日志和操作截图,并配合测试步骤的执行逻辑,统一将结果发送给总控端;自动恢复测试现场的实现方法是将软件关闭并自动初始化的操作规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动恢复测试现场的目的;自动恢复测试现场处理,同样自动记录操作过程日志和进行必要的操作截图。进一步的,所述的交互式测试的粒度是基本的测试动作语句;所述粒度,是自动化测试工具动作的最小粒度,所述粒度能使得多台代理执行端,能够最紧密的相互配合,完成一个测试用例的动作和结果判断的测试要求,组成一个基本的测试用例。进一步的,所述的测试系统基本架构无论使用云技术或其他网络技术,均需要一个主控端,协调多个测试相关网络设备,通过执行基本的测试动作,组成一个完整的测试用例所需的所有测试动作和结果判断,从而完成一个基本的测试用例。
进一步的,所述的测试场景的执行,也需要一个主控端,主控端根据测试场景的用例顺序设置,协调测试用例的运行,并生成成该场景的运行日志。进一步的,所述的自动截图标注是测试系统在运行过程中,对发现的问题或测试的关键步骤运行结果,进行自动截图,并自动在图片上标注出问题出现的位置,同时在图片上打印出对该问题的说明和注释。截图的图片名称和测试步骤说明,会被测试系统自动关联,并保存成测试结果日志的文档中。进一步的,所述的测试步骤时间的精确统计是在测试步骤执行前由测试代理端记录下时间,在该测试步骤执行后再记录下测试步骤成功执行后的时间,两个时间的时间差,即是测试步骤执行的准确耗时,同时测试执行前时间、执行后时间、网络测试指令发送时间等,均可根据实际需要获得。进一步的,所述的主控端,自动根据网络节点的设备IP关联配置,将测试步骤发送给指定的网络设备上的代理执行端,由代理执行端完成执行测试动作后,返回主控端该步骤的测试结果,主控端再根据测试用例的步骤顺序,将下一个测试动作命令发送给下一个指定的代理执行端;主控端综合管理整个交互式测试的节奏和测试结果,并保存成测试结果文档。进一步的,所述的自动错误处理功能,针对系统出错情况,是安装在代理执行端运行的,根据所运行的系统的出错对话框的的关闭规律定制的。遇到系统错误时,即自动调用该功能,从而达到自动错误处理的目的。错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。进一步的,所述的自动错误处理功能,针对软件预设的错误对话框情况,是将软件的出错对话框关闭规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动错误处理的目的。错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。以上所述仅为本发明的优选实施案例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种交互式自动化测试系统,其特征在于:包括一测试总控制端(I),所述测试总控制端(I)分别连接有一自动化用例编辑器(2)和若干个代理执行端(3),所述自动化用例编辑器(2)通过录制的控件库文件连接一界面录制模块(4),所述自动化用例编辑器(2)和所述测试总控端(I)应用有高级自动化语言编辑器; 所述高级自动化语言编辑器不需要使用条件跳转、循环等有编程特征的语句,完成对测试结果的验证和测试错误的捕获或循环计算、循环等待等操作;对测试结果的判断、意外错误的捕获、测试结果的计算、循环等待等逻辑处理,由测试系统专有的模块,自动完成;高级自动化语言关注在简洁、易懂、规范,接近自然语言的方式描述测试用例的每一个手动测试需要具体实施的操作动作和验证动作; 所述界面录制模块(4)录制被测对象的所有控件和界面截图,打包封装到控件库中,供自动化用例编辑器用例生成使用和测试总控端及代理执行端执行使用; 所述自动化用例编辑器(2)加载界面录制模块录制的控件库,生成自动化测试用例,并在界面上模拟展示出被测系统的全貌,以方便测试用例设计人员直接选取被测控件,生成该控件执行的动作或检查; 所述测试总控端(I)把界面录制模块录制的控件库和自动化用例编辑器生成的自动化测试用例加载入系统,执行根据控件库和配置文件的设置,分派自动化测试用例中的执行任务给代理执行端,代理执行端进行被测对象识别或指定的其他操作,总控端,接受代理执行端执行动作后的结果日志和对应的截图,保存成日志文件;总控端还可以设置成并发状态,将并发测试用例同时发送给指定的各代理执行端,代理执行端同时执行指定的测试动作,并将各自运行的日志和对应的截图,发送给总控端,由总控端分类存储。
所述代理执行端(3)连接测试总控端,并接收执行测试总控端发送过来的控件操作动作,同时将操作后的结果和截屏发送给测试总控端。
2.一种交互式自动化测试工具技术方法,其特征在于,包括自动定义变量,存储并传输数据的方法;自定义变 量在交互式测试中的实现方法;测试步骤事件记录在测试系统的管理方法;自动截图标注的方法;自动日志链接图片;测试报告、测试总结的自动生成和提交;测试具体步骤动作粒度的交互式测试;测试步骤时间的精确统计;自动分配测试动作给网络各执行端的实现方法;自动处理程序错误,恢复测试现场的实现方法;其中: 所述自动定义变量,存储并传输数据的方法中,所述自定义变量的应用范围囊括单机测试和多机交互性测试,在多机交互性测试中,可以多机共享同一个变量的使用,所述自定义变量在变量生命周期有效期内(变量生命周期可以是整个测试运行期内,也可以是某个业务流或某个测试用例的运行生命周期内),对相关代理执行端透明;所述自定义变量在测试运行时,由测试系统进行自动管理;所述自定义变量根据作用和应用范围,可以(但不限于)分为三个级别,即:系统级、业务流级和测试用例级;系统级是指在整个测试的运行时,均有效;业务流级,即在所在的业务流测试运行时,均有效;测试用例级,即在所处的测试用例运行时均有效; 所述自定义变量在交互式测试中的实现方法,是在自动化测试用例编写过程中,某个测试动作需要抓取、存储、计算或比对界面的数据信息,该信息需要一个缓存为载体暂存下来,然后根据用例的验证需要进行运算;与编程脚本中的变量声明不同的是,动态变量是在自动化测试用例步骤中由用例编辑器自动创建,并可根据需要,更改生命有效期设置,在生命周期内,也可以多个相关代理执行端透明共享;在自动化测试用例运行期,这些所述的动态变量,由测试运行总控端统一管理,在其有效期开始时创建,并在超过其有效期时,自动清除,在多机环境下,动态变量在某一网络测试终端创建,该有效期内相关网络测试终端,通过测试运行总控端直接共享该动态变量,进行任何复杂的运算操作,产生的新数据,同样也会由其他相关测试终端共享; 所述测试步骤事件记录在测试系统的管理方法,是指当测试步骤动作命令发出时,测试系统会留存该步骤的相关信息,待该步骤再执行端顺利完成后,执行端返回该步骤执行的所有结果信息给主控端;主控端将该返回信息关联该动作相关信息,实现步骤信息的关联,然后根据测试日志记录的要求,保存成关系文档,并生成图片超链接、详细说明、执行时间、执行机器、用例名、业务流名称等相关需要的信息;然后,根据保存样式的设置要求,格式化保存到网页文件、XML文件、数据库中或其他测试结果管理系统中; 所述自动截图标注的方法,是测试终端在测试的过程中,根据设定的截图触发条件,对当前屏幕进行截图,同时,在图片上将发生问题的对象进行画框或高亮处理,再根据发生问题的具体情况,在图片上的适当位置,加入对问题的注释说明; 所述自动日志链接图片,是将测试过程中产生的截图文件名和该测试步骤信息相关联,并生成关联信息,然后将该信息发送给日志管理模块,由该模块生成,在该步骤运行结果说明里,含有此图片链接的测试结果文档; 所述测试报告、测试总结的自动生成和提交,是指测试报告由测试管理模块汇总并分析,分别生成测试结果文档和测试总结文档,随后根据接口设置,将测试结果自动提交到指定的bug管理系统中,并将生成的测试总结报告,提交到指定的文档系统中; 所述交互式测试的粒度达到步骤的基本动作,这种最小粒度,主要是为实现交互式测试最大的灵活性,使被测系统中网络多端点的每一个具体的测试动作,都可以紧密配合,从而最真实地反应被测系统在某个具体的网络环境下,真实的运行数据和运行状况; 所述测试步骤时间的精确统计,是在被测系统的系统时间,正确矫正的情况下,将测试过程每个动作的执行时间,进行毫秒级的精确统计,并记录在测试报告的每个步骤的执行信息里,以便测试后期进行软件性能、软硬件环境等因素的综合评估; 所述自动分配测试动作给网络交互各执行端的实现方法,是在自动化测试用例中,每个测试动作都指明执行端的别称,在运行时,系统将这些别称统一进行系统真实IP的关联,此后,系统根据选定的网络协议,将测试动作信息指令分别发送给指定的执行端(代理执行端),执行端根据命令,执行测试动作,并将测试动作执行后的结果发送给测试主控端,主控端在收到测试结果的反馈后,继续进行下一个测试命令的发送,最后,主控端根据测试结果,将反馈信息整理、分析并记录成测试日志文档、测试分析文档和测试总结文档; 所述自动处理程序错误,恢复测试现场的实现方法中,自动处理程序错误的实现方法是根据被测软件和系统出现异常的规律,将错误关闭的逻辑判断和操作步骤,封装成专门的错误处理模块,该模块同时包涵自动记录操作日志和操作截图;自动恢复测试现场的实现方法是将软件关闭并自动初始化的操作规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动恢复测试现场的目的;自动恢复测试现场处理,同样自动记录操作过程日志和进行必要的操作截图。
3.根据权利要求2所述的交互式自动化测试系统,其特征在于:所述的交互式测试的粒度是最基本的测试动作;所述粒度,是自动化测试工具动作的最小粒度,所述粒度使得多台代理执行端,能够最紧密的相互配合,完成一个测试用例的动作和结果判断的测试要求,组成一个基本的测试用例。
4.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的测试系统基本架构无论使用云技术或其他网络技术,均需要一个主控端,协调多个测试相关代理执行端,通过执行基本的测试动作,代理执行端反馈执行结果给主控端,组成一个完整的测试用例所需的所有测试动作和结果判断,从而完成一个基本的测试用例。
5.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的测试场景的执行,也需要一个主控端,主控端根据测试场景的用例顺序设置,协调测试用例的运行,并生成成该场景的运行日志。
6.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的自动截图标注是测试系统在运行过程中,对发现的问题或测试的关键步骤运行结果,进行自动截图,并自动在图片上标注出问题出现的位置,同时在图片上打印出对该问题的说明和注释;截图的图片名称和测试步骤说明,会被测试系统自动关联,并保存成测试结果日志的文档中。
7.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的测试步骤时间的精确统计,是在测试步骤执行前由测试代理端记录下动作执行前的时间,在该测试步骤执行后再记录下测试步骤成功执行后的时间,两个时间的时间差,即是测试步骤执行的准确耗时,根据此方法,测试执行前时间、执行后时间、网络测试指令发送时间等,均可根据实际需要获得。
8.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的主控端,自动根据网络节点的设备IP关联配置,将测试步骤发送给指定的网络设备上的代理执行端,由代理执行端完成执行测试动作后,返回主控端该步骤的测试结果,主控端再根据测试用例的步骤顺序,将下一个测试动作命令发送给下一个指定的代理执行端;主控端综合管理整个交互式测试的顺序、节奏和测试结果,并保存成测试结果文档。
9.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的自动错误处理功能,针对系统出错情况,是安装在代理执行端运行的,根据所运行的系统的出错对话框的的关闭规律定制的;遇到系统错误时,即自动调用该功能,从而达到自动错误处理的目的;错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。
10.根据权利要求2所述的交互式自动化测试系统,其特征在于,所述的自动错误处理功能,针对软件预设的错误对话框情况,是将软件的出错对话框关闭规律写成一个独立的操作脚本,遇到软件错误时,即自动调用该脚本,从而达到自动错误处理的目的;错误处理过程,同样自动记录操作过程日志和进行必要的操作截图。
全文摘要
本发明公开了一种交互式自动化测试系统及其方法,包括一测试总控制端,所述测试总控制端分别连接有一自动化用例编辑器和若干个代理执行端,所述自动化用例编辑器通过录制的控件库文件连接一界面录制模块,所述自动化用例编辑器和所述测试总控端应用有类自然语言管理器。本发明一是解决了在抛弃传统的编程脚本驱动自动自动化测试,以达到高速生成自动化测试用例的时候,如何实现暂存数据变量的生成和使用以及系统如何统一管理变量的生命周期的问题;二是解决了关于自动化测试自动截图后,如何自动准确的在图片上标注发生问题的位置,以及如何准确详细的描述出问题出现的问题,同时将问题描述打印一份在该图片上,作为图片上的问题备注。
文档编号G06F11/36GK103092756SQ20131000557
公开日2013年5月8日 申请日期2013年1月8日 优先权日2013年1月8日
发明者彭勇 申请人:彭勇