基于UIA技术的软件自动化测试框架实践

基于UIA技术的软件自动化测试框架实践

2023年6月29日发(作者:)

计算机光盘软件与应用 2011年第l7期 Computer CD Software and Appl ications 工程技术 基于UIA技术的软件自动化测试框架实践 刘 伟 (苏州轨道交通有限公司信息中心,江苏苏州 215006) 摘要:介绍了微软的UIA技术,基于UIA开发的一套图形界面软件自动化测试框架,对其关键实现环节做了分析 和说明。 关键词:软件测试;测试框架;test automation;UI automation 中图分类号:TP311.52 文献标识码:A 文章鳊号:1007—9599(2011)17—0057—02 Software Automation Test Framework Implementation Based Oil UIA Technology LiuWej (Information Center of Suzhou Railway TranspoRation Company Ltd.,Suzhou 21 5006,China) Abstract:This article gives all introduction to UIA.and analyses the test automation framework developed based on UIA technology. Keywords:Soflware test;Test framework;Test automation;UI automation 一、自动化测试和UIA介绍 辑与,逻辑或等,也可以是属性条件如控件名称、控件类型等。 针对UIA在识别控件上所提供接口的特点,在这套框架里引 入了一个概念WPath(Windows Path),WPath用属性条件描述了 目标控件在桌面根元素的哪个程序节点下,在对应程序节点的哪 名称、类名等)是什么,类似于一个人的通信地址,首先是哪个 省份哪个市,接着哪个区哪条道路,最后哪个门牌号。当提供了 WPath之后,就调用框架的构造控件方法根据UIA的方式去树形 结构上查找,看WPath上指定的对象是否存在,如果存在就在内 对象。 所谓软件自动化测试,通俗的讲就是用一个程序或工具来测 试另一个程序,这个程序或工具可以是自行开发的也可以是买来 的商业产品,本文说明的是基于微软的UIA技术开发的一套软件 求的基于图形界面的软件自动化测试工具或程序。 微软于2005年发布了UIA(User Interface Automation) 技术,它的前身是MSAA(Microsoft Active Accessibility), 编程框架,使用这套框架可以相对高效快捷的开发出符合自身需 个子节点下(如果有的话),目标控件本身的属性(如控件类型、 其最初目的是帮助残障人士使用Windows应用程序,之后被发现 包括XP,Windows Server 2003、2008,Vista和Win7。UIA之所 可以将其应用到软件自动化测试领域中来。UIA支持的平台目前 存里实例化一个相应的控件对象,不存在则实例化一个null控件 以能应用于自动化测试,简单的说在于微软将通用的图形界面组 件的接口信息以UIA的格式发布出来,于是可以通过UIA技术识 举一个例子来说明,打开Windows任务管理器,用MojoSpy (基于这套框架的一个工具)得到的任务管理器上结束任务按钮 的WPath是“\window[@name=’Windows任务管理器 ’]\Button[@name=’结束任务(E)’]”。 别、操作相应的应用程序。 二、框架原理阐述 (一)标识定位待测程序 基于UIA技术原理,桌面被看作根元素(Root Element),所 有其他的应用程序都是这个根元素下面的节点(Node),每个应用 程序节点都有自己相应的控件如按钮、文本框等,这些控件被称 作子元素(Child Element),每个子元素下面可能还有子元素, 如树形控件下面还可以再挂接树形控件,桌面根元素和应用程序 节点以及节点的子元素共同构成一个树形结构(Tree)。 要测试应用程序,定位识别待测应用程序及其界面元素是第 一其中WPath的第一部分”\Window[Oname=’Windows任务管理 器’]”表明了当前在桌面有一个name属性是“Windows任务管理 器”的Window,后面的”\Button[@name=’结束任务(E)’]”指 明在这个窗口节点上有一个Button类型的控件,控件的name属 性是”结束任务(E)”,框架的控件构造函数按WPath提供的信 息到树形结构上查找,当识别到这个按钮控件时就在内存里实例 化出这个按钮,接下来对它进行单击、双击等操作都是可行的。 在WPath中,程序节点与控件之间或父子控件之间用“\”来 步也是关键,也就是要在树形结构中找到对应的待测程序,并 分隔,上面的例子中控件是用名字(name)属性来标识的,还可 以用控件类型(Control Type)、类名(Class Name)、自动化ID (Automation ID)来标识控件,这样就大大降低了控件同名造成 的混淆可能,并且微软已说明Automation ID在特定程序内是不 在待测程序上识别出相应的控件。UIA技术里存在Tree Walker 这个类,它提供了一些接口如Get First Child(),Get Next Sibling(),和Get Parent()等用于在树形结构上遍历目标对 象。 会重复的,使用Automation ID就可以唯一标识待测程序的各个 (二)封装控件行为 还可以用基于范围和过滤条件的方式来查找图形界面的对 控件。 象,相应的接口有Find First(Tree Scope,Condition)和Find A11(Tree Scope,Condition),其中的查找范围(Tree Scope) 在解决了程序控件的识别问题后,就需要模拟用户行为操作 (下转第59页) 可以是整棵树、节点或子节点等,过滤条件可以是逻辑条件如逻 一57一 计算机光盘软件与应用 2011年第l7期 Computer CD Software and Applications 工程技术 借:原材料200 应交增值税一进项税34 贷:应付账款:234 方式二:票到回冲 针对9月15号的收货单,系统产生会计凭证: 借:原材料100 贷:应付账款一暂估100 1O月19号的发票,除了产生自身的会计凭证: 借:原材料200 应交增值税一进项税34 贷:应付账款:234 同时系统自动将其对应的收货单的暂估进行回冲产生凭证: 借:应付账款一暂估100 贷:原材料i00 方式三:票到补差 针对9月15号的收货单,系统产生会计凭证: 借:原材料100 贷:应付账款一暂估100 1O月19号的发票,将暂估回冲和自身业务综合产生会计凭 证: 料、应付匹配日期、匹配类型(全部匹配、部分匹配、未匹配) 等。通过设置报表的查询条件和显示栏位,用户可轻松地利用该 报表查询出采购暂估的各区间的暂估明细信息。 采购暂估汇总表,主要是针对一定的时间区间内的暂估和匹配 信息进行汇总查询。该报表的主要显示栏位为:供应商、物料编号、 品名、规格、期初余额(包含数量和金额)、本期暂估(包含数量 和金额)、本期匹配数量、本期匹配金额、期末暂估余额(包含数 量和金额)等。查询条件有:供应商、物料、时间区间等。用户可 根据需要任意组织统计条件、显示栏位和统计条件生成报表。 (三)系统处理暂估的管理效益。ERP系统中暂估的系统处 理,不仅灵活地适应了企业财务核算暂估的三种处理方式,同时 将采购、仓库和财务三大部门的业务数据全面的集成在一个统一 的平台上,分工协作,信息共享。 ERP系统根据企业的设置自动处理暂估回冲,不仅减少了人 为处理引起的错误外,同时大大减少了手工报表的制作和月底账 务核对的工作,将人力从简单机械的手工处理作业中解放出来进 行业务数据和管理数据分析,间接地提高了企业的管理水平。 ERP系统中提供了暂估管理报表,不仅可以帮助财务业务部 门进行对账外,还可在审计过程中提供数据带来了便利。 四、结束语 借:原材料100 应付账款一暂估i00 应交增值税一进项税34 贷:应付账款:234 (二)ERP系统中的暂估相关报表。基与ERP系统中供应链 系统和财务系统集成的基础上,ERP系统在采购管理系统中提供 了相关的采购暂估报表,主要有采购暂估明细表和采购暂估统计 表。利用这些报表财务部门和业务部门可以有效地进行账务核对, 确保账账相符和账实相符。采购暂估明细表,主要显示内容是采 购单据与应付单匹配的明细信息,主要显示栏位有:供应商、收 货入库单号、入库日期、物料编号、品名、规格、入库数量、暂 估单价,暂估金额等。查询条件有:收货单据日期、供应商、物 (上接第57页) 相比会计电算化刚起步的时候,现有的ERP系统的管理横向 纵向范围都有了非常大的扩展,不仅包含了企业自身的采购、销 售、库存、技术、生产、计划、财务、成本等业务范围,同时还 拓展了与SCM\CRM\OA\PDM等系统的接口,使得信息化的内容越来 越丰富多彩。本文介绍的暂估管理在博大精深的ERP系统中只是 很小的一部分内容,ERP系统不仅仅是一个管理软件,更重要的 是蕴含了很多先进的管理思想,希望抛砖引玉能有更多的人参与 到信息化与实务管理结合的研究中来并分享给更多的人,让我国 的信息化发展水平越来越高。 参考文献: 『11任永平,张佳春.基础会计学 】.立信会计出版社,2010 『21杨建华.ERP原理与应用fM1.电力工业出版社,2011 发效率,也为后续的代码优化维护提供了便利,其必要性非常充 ndows 控件了。在UIA技术里控件的行为方法是和相应的模式(Pattern) 分!封装通用控件行为的思路很直观,首先看是否标准Wi对应的,例如按钮的点击动作就需要用到Invoke Pattern,单选 控件,如果不是则UIA技术无能为力,如果是就根据控件类型得 框的选中动作要用到Selection Item Pattern等,对于上层的测 到相应的模式(Pattern),再用这个模式调用相应的行为。常用 ndows控件有二十多种,本框架对其都进行了封装。 试程序(调用方)而言当它要模拟用户执行某个动作时,最好是 Wi(三)验证操作结果 能直接调用一个接口就能实现,但按目前的UIA实现方式是不可 在常规的软件测试中,验证环节需要检查比如数据是否写入 行的,这时直接调用这套框架的功能就可以实现。 以按钮单击动作为例,如果直接使用UIA技术,代码如下 数据库,服务器是否进入指定状态,对应文件是否被删除等,这 Automation Element uiaElement:UIAFOrm.FindUIElement 里只讨论和图形界面相关的结果验证。模拟用户行为对待测程序 (wpath); 进行了相关操作后,要验证待测程序的状态或操作的结果是否符 合预期,也就是判定待测程序是否有bug,这是测试的核心也是 if(uiaElement!=nul1) 目的!所以得到待测程序被操作过后控件的状态或结果就是这一 { 步的重点。在UIA技术中有两种方式可以得到控件的状态,一是 //获取点击模式 Invoke Pattern btn=(Invoke Pattern)uiaElement.Get 直接调用控件的属性方法取得,二是有些控件的状态需要依赖相 Current Pattern(Invoke Pattern.Pattern); 应的模式才能得到(类似于调用控件的方法),这里后一种取属性 //执行点击动作 btn.Invoke(): ) 如果调用框架接口,代码如下 Button btn=new Button(wpath); 的方法仍通过框架接口的方式实现,便于上层调用。 三、框架待改进部分 这套基于UIA技术的测试框架,在应对标准Windows图形界 面的应用程序时表现良好,但也有不足之处,需要改进:(1)如 btn.Click(): 两相对比,调用框架接口实现单击操作代码量明显减少逻辑 也更清晰,而框架接口所做的就是封装按钮对象的模式获取过程 并执行点击操作。 由此可见,封装控件的行为方法既能方便上层调用、提高开 果程序中包含非标准控件如自绘控件,此控件无法被识别;(2) 如果存在耗时间的操作,等待界面稳定的延迟时间选择需要反复 调试;(3)目前还不支持多台PC交互。 四、结束语 本文对UIA技术做了简要介绍,论述了基于UIA技术的自动 化测试框架实现方法,也说明了此框架需要继续改进的环节。 一59一 

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688018807a67231.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信