当前位置:首页 > 通信技术 > 通信技术
[导读]目前,在GUI自动化测试中,很多软件体系都采用录制回放技术。这种技术要求测试者通过鼠标和键盘的点击进行工作,脚本记录事件,然后以自动化测试的方式进行回放。记录下来的测试脚本必须经过编辑和调试之后插入验证和

目前,在GUI自动化测试中,很多软件体系都采用录制回放技术。这种技术要求测试者通过鼠标和键盘的点击进行工作,脚本记录事件,然后以自动化测试的方式进行回放。记录下来的测试脚本必须经过编辑和调试之后插入验证和检查点。产生的脚本通常是硬编码,需要测试人员对脚本进行编辑以及参数化操作。同时,界面元素属性的任何变化都会影响脚本的运行,有时甚至需要重新录制脚本。

  1 .NET中的反射机制

  通常,应用程序(包括桌面程序和Web应用)都由一些基本的界面控件组成,所有的软件指令都是通过控件以事件或消息的形式传递给后台处理。GUI自动化测试的本质是对GUI中的控件元素提供编程手段[2]。在基于GUI对象识别和控制的自动化测试工具中,过去一直依赖于Windows API函数的调用。而随着新的编程语言和平台的出现,涌现了很多新的语言特性,这些语言特性可用于自动化测试工具的设计,例如反射机制就是其中一项技术。

  反射(Reflection)是.NET中的重要机制,通过反射可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件及构造函数等,还可以获得每个成员的名称、限定符和参数等。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模块和类型的对象。可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从现有对象中获取类型,然后调用类型的方法或访问其字段和属性[3]。

  2 框架的整体设计

  自动化测试框架的搭建基本上占了整个自动化测试工作量的40%,是自动化测试实施的一个重要组成部分。软件自动化框架从本质看是一系列的策略思想、规范文件和代码的集合。本文提出一种改进的轻量级的GUI自动化测试框架,该框架可以帮助用户避免当前测试工具出现的缺陷。此框架将具备以下五个特性:GUI控件自动搜索、自动生成和执行测试脚本、基于数据驱动的原则、测试的自动验证、使用编程语言开发。框架的整体设计如图1所示。从图1可以看出,该框架让测试人员从繁重的录制工作中解放出来,将更多的时间和精力集中在测试用例的设计中。
 

  

 

  3 框架具体开发

  3.1 加载被测试程序

  为了测试GUI应用程序,必须在测试工具中运行被测程序使两个程序交互。使用Assembly定义和加载程序集,加载在程序集清单中列出模块,并从此程序集中查找类型,创建该类型的实例。为了使这两个应用程序实现交互,必须通过多线程机制实现。下面是通过反射加载被测程序的核心代码[4]:

  Assembly asm=Assembly.LoadFrom(path);

  Type t1=asm.GetType(formName);

  testForm=(Form)asmCreateInstance(t1.FullName);

  ParameterizedThreadStart pt=new ParameterizedThreadStart(AppRun);

  Thread thread=new Thread(pt);

  thread.Start(testForm);

  private void AppRun(Form theForm)

  {

  Application.Run(theForm);

  }

   3.2 GUI控件搜索

 

  大部分自动化功能测试工具,尤其是商业的测试工具,都是基于GUI对象识别技术设计的。基本思想是每个基于窗体的控件都是一个窗体,每个控件或窗体都有一个句柄来进行访问、操作和检查。

  实现GUI测试自动化的困难之一是测试工具并不知道被测程序中存在哪些GUI部件。录制回放工具使用手工录制过程暂时解决了这一问题。Win32 API中封装了很多可用于自动化测试编程的函数,这些函数可在编程语言进行调用,实现自动化测试编程。本文的自动化GUI测试工具将采用Win32 API对被测程序进行自动、系统、全面的控件搜索。实现该搜索将用到Win32 API中封装的可用于自动化测试编程的函数,包括:GetWindowRect、mouse_event、GetCursorPos和WindowFromPoint函数等。GetWindowRect函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。通过使用这个函数可以计算出窗口的宽度和高度。mouse_event函数能模拟鼠标击键和鼠标动作。GetCursorPos函

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭