当前位置:首页 > 通信技术 > 通信技术
[导读]目前,在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函

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

【2024年3月7日,德国慕尼黑讯】在竞争激烈的全球半导体市场,制造商一直在努力缩短产品上市时间。同时,他们对流畅、高分辨率图形显示器的需求也在日益增长。为了满足这些市场需求,英飞凌科技股份公司(FSE代码:IFX /...

关键字: MCU GUI 图形显示器

新项目为e络盟社区成员敞开了自动化测试大门

关键字: 自动化测试 图形化编程

罗德与施瓦茨公司(以下简称"R&S公司")开发了全新的R&SZNrun自动化测试。对于完全自动化验证PCIex8线缆,软件可以控制一个由R&SZNB矢量网络分析仪和可扩展的R&SOSP开关矩阵组成的测试配置,创建一个具有...

关键字: 自动化测试 PCIe系统

中国上海,2023年7月10日 – 安富利旗下全球电子元器件产品与解决方案分销商e络盟将携手全球自动化测试和测量系统领先制造商NI亮相2023慕尼黑上海电子展。届时,二者将共同展示NI一系列精选测试与测量产品,以满足工程...

关键字: 自动化测试 测量系统

本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,并利用内置于Matlab的串口通信API实现串口数据发送与接收功能。

关键字: matlab GUI 串口通信

行业调研数据显示,芯片行业的产值和营收一直在不断提高,同时其地位受到大众的关注。光刻机在芯片领域当然独占鳌头,但一颗芯片的成功不只取决于光刻部分,测试对芯片的质量更有不容忽视的意义。

关键字: 光刻机 自动化测试 芯片制造

在最近举行的i14y Lab O-RAN服务和平台互操作性测试会议(这是O-RAN 联盟2022年秋季全球互操作性测试会议的一部分)上,罗德与施瓦茨(以下简称"R&S"公司)和VIAVI So...

关键字: 罗德与施瓦茨 ORAN射频单元 自动化测试

一星期中最糟糕的一天,这居然也成功拿下了吉尼斯记录。10月17日,吉尼斯世界纪录官微发文称,正式认证星期一为一个周里最糟糕的一天,周五是最伟大的一天。看起来有点官微小编搞怪的意思,毕竟尚未见到正式的证书。当然,一些打工人...

关键字: MIDDOT MDASH GUI WORLD

84% 的受访者表示大多数测试涉及复杂的系统,但鲜有受访者采用自动化测试或人工智能

关键字: 是德科技 自动化测试 人工智能

(全球TMT2022年5月26日讯)disguise  -- 视觉叙事平台和扩展现实(xR)解决方案市场领导者 -- 宣布推出元宇宙解决方案部门,帮助元宇宙实现下一代非凡的现场、虚拟制作和基于位置的视听体验。...

关键字: GUI SE AN BSP
关闭
关闭