大家都知道,针对UI的自动化技术一般要支持下列的东西:

1. 识别窗口
   能够识别尽量多的窗口种类,支持尽量多的UI技术。比如Win32、WinForm、WPF以及WebPage(这个比较特殊,确切的说不能叫控件)的控件类型
2. 操作窗口
对标准类型的控件方法的支持,比如按下按钮,在Listview中选择Item等
3. 验证结果
实质就是能够拿到控件的状态以及控件相关的信息
4. 错误恢复
这个其实属于自动化测试框架的问题,能从错误的状态恢复,并继续执行。当然写Testcaes的时候,也要保证Testcase的独立性
5. 同步
同步在UI的自动化测试中最复杂的部分了,这个地方的工作决定了自动化脚本能否稳定的运行在在各种不同平台,不同配置的测试机上

虽然测试工具有很多,比如WinRunner、QuickTest等,我比较熟悉的只是Silktest,所以我说的很多东西都会跟Silktest来比较

我们抛开各种各样的工具本身,来看UI自动化的本质,它所用到的技术无非是下面三种:
1. Windows API
相关的API,FindWindow, EnumWindow,GetWindowRect, GetWindowText, SendMessage等

2. MSAA
MSAA是微软针对视力有障碍的人所提供的一个基于COM的API接口,开发人员可以利用这个技术来开发类似屏幕放大,屏幕阅读,以及语音控制等。现在很多自动化的工具除了利用window api以外,大部分也支持MSAA技术
相关Link:
http://msdn2.microsoft.com/en-us/library/ms971350.aspx
http://en.wikipedia.org/wiki/Microsoft_Active_Accessibility

3. UIAutomation
测试在各个软件公司中的地位日趋上升,而且微软自己在对测试的重视程度以及利用自动化测试方面也一直走在各个公司前面。随着WPF技术的发布,以往的Window API以及MSAA技术,对WPF控件的操作能力急剧下降,甚至无法操作WPF控件,而微软也为了增加对自动化测试的支持,发布了MSAA的升级版,并针对自动化测试进行了重新的设计,集成在.Net Framework3.0中发布,这个升级版就是UIAutomation的类库。
相关链接:
http://en.wikipedia.org/wiki/Microsoft_UI_Automation
http://msdn2.microsoft.com/en-us/library/ms747327.aspx

跟UI自动化测试有关的技术的更多相关文章

  1. 【python+selenium自动化】图像识别技术在UI自动化测试中的实际运用

    引言: 目前在图像识别方面的自动化测试框架有很多,其中比较有名的是airtest,主要做手机端的游戏自动化测试(http://airtest.netease.com/) 因为没有实际把airtest运 ...

  2. 腾讯优测优分享 | 游戏的UI自动化测试可以这样开展

    腾讯优测是专业的自动化测试平台,提供自动化测试-全面兼容性测试,云真机-远程真机租用,漏洞分析等多维度的测试服务,让测试更简单! 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化 ...

  3. django+appium实现UI自动化测试平台---构思版

             背景 UI自动化,在进行的过程中,难免会遇到平台化, 在实际的工作中,有的领导也会想要实现自动化测试的平台化.自动化平台化后,有了更为实际的成果, 在做UI自动化,很想吧现在的自动化 ...

  4. 浅谈UI自动化测试

    最近一直在学习python,正好部门技术结构调整,就开始了点工向UI自动化测试的转变,我要说瞌睡来了就掉枕头么? 不过还好,可以将python的学习成果在自动化测试中实践... 1.about自动化测 ...

  5. 【转】 UI自动化测试的关注点

    我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试, ...

  6. 网易与Google合作发布开源UI自动化测试方案 牛逼:Google 方面评价,这可能是目前世界上最好的 Android 游戏自动化测试方案。

    美西时间 3 月 19 日,在 GDC 开幕第一天的 Google 开发者专场,Google 发布了一款由网易研发的 UI 自动化测试方案:Airtest Project.Google 方面评价,这可 ...

  7. UI自动化测试元素定位思想

    2014年的最后一天,以一篇短文纪念一下. 经常看到有同学说UI自动化测试定位难,找不到北.这话是不错的,定位是难,灵活且复杂,需要经验加技术,但是有写东西是可以提炼出来作为思想去推而广之的. 简单来 ...

  8. Selenium UI自动化测试 Selenium Automatic Testing

    https://www.cnblogs.com/sunada2005/archive/2013/12/22/3486314.html UI Automatic Testing 1. 什么样的项目适合自 ...

  9. Selenide 阶段性总结介绍(UI自动化测试工具)

    今天给大家介绍一个比较新的UI自动化测试工具-- Selenide.确实是比较新的,国内应该还没有多少人用它.在百度和google上你只能搜到一个中文帖子简单介绍了一下.如果你想用这个工具,不可避免的 ...

随机推荐

  1. Linux内核中的IS_ERR()实现

    1.前言 对于任何一个指针来说,必然有三种情况:一种是有效指针,一种是NULL,也就是空指针,一种是错误指针,也就是无效指针,在Linux内核中,所谓的错误指针就是指其已经到达了内核空间的最后一个pa ...

  2. Zookeeper connection loss leads to Flink job restart

    Flink可以使用zookeeper来进行ha,而一般我们都会使用zookeeper的高级api架构curator来对zk进行通讯.在curator中引入了状态的概念,包括connected,reco ...

  3. HTTP漫谈

    一.说明 1.1 当前背景说明 很多web的书包括web安全的书都会有一章介绍http协议,我就总恶意揣测作者是在凑字数,一般都直接跳过去. 相比TCP/IP这种各字段基于数值代号的协议,http这种 ...

  4. 第二节:EF Core的常规“增删改”及状态的变化

    一. 整体说明 1. 本节用到的表 2. 状态说明补充 ①.Detached: 游离的状态,与数据库没有什么交涉,比如新new一个实体,状态就是Detached. ②.Added: 增加的状态. ③. ...

  5. ubuntu中编写shell脚本开机自动启动

    编写脚本是为了不用手动去开启各种服务(也是为了偷懒哈哈) 1.进入终端输入 创建一个后缀为.sh的脚本文件 touch test.sh 编辑脚本 vim test.sh test.sh编写脚本内容   ...

  6. SQL系列(十一)—— 函数(function)

    SQL中的函数也非常多,而且不同的DBMS提供了相应的特殊函数.但是常用的共性函数大致可以分为以下几种: 函数类型 函数 数值函数 1.算术计算:+.-.*./ 2.数值处理:ABS()绝对值处理.P ...

  7. ajax 执行成功以后返回的数据走的是error方法而不是success方法的问题

    今天在一个功能的时候发现写的ajax的方法执行后台代码成功后返回前台时执行的是error方法而不是success方法,代码如下 jQuery('#form').ajaxSubmit({ type: & ...

  8. 一.B/S架构和C/S架构

    1.B/S架构 Browser-Server,  浏览器和服务器架构.包含客户端浏览器.web应用服务器.数据库服务器的软件系统.用户只需要一个浏览器就可以访问服务.系统更新的时候,只需要更新服务端, ...

  9. 如何显示IntelliJ IDEA工具的Run Dashboard功能(转)

    从 JetBrains released IntelliJ IDEA 2017.2.1 版本之后,新出的功能‘Run Dashboard,它能非常方便的提供开发人员查看本地springboot服务运行 ...

  10. Spring中获取外部配置文件中的属性值

    很多时候需要将配置信息从程序中剥离粗来,Spring现在提供的方法是通过@Value注解和<context:placeholder>来获取配置文件中的配置信息.这里给出一个简单的例子. 首 ...