一种windows环境下的复杂控件测试系统技术方案

技术编号:4014110 阅读:257 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种windows环境下的复杂控件测试系统,包括录制模块和回放模块,所述录制模块包括对非托管应用程序的录制模块和对托管应用程序的录制模块,录制模块生成供回放模块自动运行的测试脚本,所述回放模块包括脚本及操作控件的类库和测试运行模块,所述脚本及操作控件的类库提供测试脚本中的操作控件的函数,所述测试运行模块将测试脚本组装成能够通过编译的代码,并自动运行生成的测试脚本。

【技术实现步骤摘要】

本专利技术属于windows环境下的复杂控件测试领域。
技术介绍
近年来,随着计算机的普及,软件系统已经深入到生活的各个方面,从普通的计算 机软件,到银行或超市的终端系统,甚至到手机的软件系统。对软件质量的要求也在不断提 高,但现实中软件系统的质量和稳定性却不尽人意,采用有效的软件测试是保证软件质量、 提高软件可靠性的重要手段。现代化的软件大都是图形界面的,即处于windows环境下,图 形界面使计算机系统变得容易使用,但这也给测试带来了极大的挑战。录制/回放是大多 数现代GUI自动化测试工具采用的模式,但现有一些产品和测试工具局限性很强,只能使 用于某种程序语言或者某种开发平台,目前流行的测试驱动工具局限平台框架,某些只能 用于老的非托管程序,某些用于托管程序,且对复杂控件无法自动化识别,只能手工修改脚 本进行测试。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种能自动获取面向Web的应用系 统大并发环境下用户提交请求页面响应时间,可以自动化,智能的开展应用系统性能自动 化评估工作,帮助用户快速发现,定位应用系统响应瓶颈为了实现上述专利技术目的,采用的技术方案如下一种windows环境下的复杂控件测试系统,包括录制模块和回放模块,所述录制 模块包括对非托管应用程序的录制模块和对托管应用程序的录制模块,录制模块生成供回 放模块自动运行的测试脚本,所述回放模块包括脚本及操作控件的类库和测试运行模块, 所述脚本及操作控件的类库提供测试脚本中的操作控件的函数,所述测试运行模块将测试 脚本组装成能够通过编译的代码,并自动运行生成的测试脚本。上述技术方案中,所述对非托管应用程序的录制模块包括程序状态捕获模块和动 作分析模块,所述程序状态捕获模块能够截获非托管应用程序发出的事件,以及监控鼠标 键盘的状态,并产生鼠标键盘消息序列和事件序列的输出,所述动作分析模块能够接收程 序状态捕获模块的输出,并生成测试脚本。所述动作分析模块对标准控件由时间序列分析用户的操作,而对于非标准控件则 根据鼠标键盘消息序列分析用户的操作。所述对托管应用程序的录制模块包括初始化模块和动作捕获模块,所述初始化模 块将被测的程序集在应用程序域中运行,所述动作捕获模块抓取程序运行时用户的操作并 记录脚本。本专利技术研究的是各种桌面软件开发环境下复杂控件测试方法设计,实现对托管的 和非托管的应用程序进行自动化测试。在实现录制回放模块的时候,使用内嵌于操作系统 中的技术,使得工具具有相当的适应性。使用通用的计算机语言C#作为脚本语言,借助c#语言的功能,开发出功能强大的脚本。本专利技术使用具有不变性的属性来标识控件,哪怕控件 的位置移动后,不用改动脚本仍然能定位到控件。这不但使得标识控件变得简单,并且能高 效地查找定位控件。本专利技术能对传统的Windows应用程序及.NET应用程序进行功能测试。在对传统 的Windows应用程序进行录制/回放时,主要用到了 Active Accessibility,Windows的消 息机制和Windows钩子等技术,通过Active Accessibility中的WinEvens来记录用户的 动作,对于非标准控件,则直接记录用户在非标准控件上进行的鼠标键盘操作。对于.NET 应用程序,主要通过.NET的反射技术来实现录制&回放。本专利设计的测试方法能以简洁 高效的方式来标识查找控件,以C#作为脚本语言,可以实现出功能强大的脚本。该方法还 提供数据驱动的测试方式,即可以将测试数据和脚本分离,这样,同一个用例,可以用不同 条件下的数据对应用程序进行测试。本专利技术能广泛应用于证券,交通,电力,电信,教育等行业开发的基于客户/服务 器环境的应用系统,对这些系统工作流程进行录制,回放和功能测试与验证,测试这些应用 系统功能,发现应用系统存在的功能问题。本专利技术的有益效果如下本专利技术通过反射角度实现脚本录制与回放,能对复杂控件以简洁高效地方式来标 识进行描述和识别,避免以前自动化功能测试工具手工修改测试脚本,极大加重了测试工 程师工作复杂性和工作量;其次使用了统一的脚本语言,避免不同环境,不同平台脚本语言 生成不一致问题,最后本测试方法还能兼顾托管和非托管开发平台,提高测试工作效率。附图说明图1是本专利技术的架构示意图;图2是本专利技术在录制非托管应用时的录制模块结构图;图3是动作分析模块的流程图;图4是本专利技术在录制托管应用时的录制模块结构图。具体实施例方式下面结合附图对本专利技术做进一步的说明。本专利技术的架构如附图1所示,包括三大部分,这三大部分的功能组成如下1、录制模块。录制模块的任务是记录用户操作应用程序时的有效动作,并生成测 试脚本。为此,录制模块要能识别应用程序的状态并捕获用户的行为。2、脚本及操作控件的类库。脚本是录制模块产生的输出。脚本中的操作控件的函 数的具体实现则来自实现操作控件的类库,这些类库是以DLL的形式存在的。3、测试运行模块。回放模块的作用的能够自动运行生成的脚本,执行功能测试。因 此,回放模块要能够将脚本组装成能够通过编译的代码,并具有屏幕状态捕捉的功能,以对 比测试运行的结果与预期的结果。其中,脚本及操作控件的类库和测试运行模块合起来就 是回放模块。本专利技术针对整个录制在非托管GUI程序上的操作的过程如附图2所示,用来录制 用户动作的依据有被测的GUI程序发出的WinEvents和监控到的鼠标键盘操作。整个录制4模块可分程序状态捕获模块和动作分析模块。其中,程序状态捕获模块负责截获GUI程序 发出的事件和监控鼠标键盘的状态,它所产生的输出是鼠标键盘消息序列和事件序列。而 动作分析模块则接收程序状态捕获模块的输入,分析鼠标键盘消息序列和事件序列,确定 用户做了何种操作并生成脚本。对于非标准控件,动作分析模块依据鼠标键盘消息序列来分析用户的操作。它的 工作流程如图3所示,在每一个WinEvent发生的时候,事件回调函数中的参数hWnd表示本 次事件是在哪个⑶I窗口上发生的,根据这个句柄,调用Win32函数GetClassName可得到 GUI窗口的类,依据类名便可判断出这个GUI窗口是否是标准控件。然后,分别调用不同的 模块来分析用户的操作。录制托管应用程序上的操作的模块结构如图4所示,整个录制模块可分为两个子 模块。初始化模块和动作捕获模块。初始化模块负责做录制前的准备工作将被测的程序 集在录制模块所在的应用程序域中运行起来。动作捕获模块主要负责发现用户的操作并记 录脚本。权利要求一种windows环境下的复杂控件测试系统,包括录制模块和回放模块,其特征在于所述录制模块包括对非托管应用程序的录制模块和对托管应用程序的录制模块,录制模块生成供回放模块自动运行的测试脚本,所述回放模块包括脚本及操作控件的类库和测试运行模块,所述脚本及操作控件的类库提供测试脚本中的操作控件的函数,所述测试运行模块将测试脚本组装成能够通过编译的代码,并自动运行生成的测试脚本。2.根据权利要求1所述的windows环境下的复杂控件测试系统,其特征在于所述对非 托管应用程序的录制模块包括程序状态捕获模块和动作分析模块,所述程序状态捕获模块 能够截获非托管应用程序发出的事件,以及监控鼠标键盘的状态,并产生鼠标键盘消息序 列和事件序列本文档来自技高网...

【技术保护点】
一种windows环境下的复杂控件测试系统,包括录制模块和回放模块,其特征在于:所述录制模块包括对非托管应用程序的录制模块和对托管应用程序的录制模块,录制模块生成供回放模块自动运行的测试脚本,所述回放模块包括脚本及操作控件的类库和测试运行模块,所述脚本及操作控件的类库提供测试脚本中的操作控件的函数,所述测试运行模块将测试脚本组装成能够通过编译的代码,并自动运行生成的测试脚本。

【技术特征摘要】

【专利技术属性】
技术研发人员:陆璐
申请(专利权)人:华南理工大学
类型:发明
国别省市:81[中国|广州]

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

1