专栏首页自学测试之道UI自动化工具,你知道有几个?

UI自动化工具,你知道有几个?

前言

最近在研究针对windows桌面应用程序的自动化工具,查找了网上相关资料,UI自动化工具很多,但是想同时支持windows桌面应用程序、web端以及APP段的工具少的可怜,以下是一些工具的总结:

pyautogui

Pyautogui对鼠标的移动、点击、拖拽,键盘按键输入、按住操作,以及鼠标+键盘的热键同时按住等操作都能准确模拟,可以说手能动的都可以,并且简单方便。但由于控件的定位依赖于图像匹配,所以得事先保存好控件的截图,然后在操作时自动截取屏幕,利用图像匹配找到控件在屏幕的像素位置,再将鼠标自动移至控件处点击。

Pyautogui自带的图像匹配函数精度不是很高,可以加入opencv中的匹配函数来代替,更加准确方便。

https://pyautogui.readthedocs.io/en/latest/keyboard.html#the-press-keydown-and-keyup-functions

TestWriter

TestWriter是一款0编码自动化测试工具,用户可以通过统一图形化界面轻松创建测试计划,并驱动执行引擎完成自动化测试任务,有效降低了测试人员能力要求及脚本维护工作量,让自动化测试更简单,更专注于业务。可测web、andriod、ios平台应用。通过图形化界面,对测试对象、测试步骤、用例等层层封装映射,清晰理清业务关系。业务变动、界面调整时仅需修改相应业务库内容。支持分布式测试,通过拟定计划,自动匹配测试环境并分配执行机器,无需测试人员干预,轻松实现自动定期回归。引入了中间语言,让自动化测试的开发工作脱离具体引擎的限制,降低Selenium和QTP等自动化工具的使用难度。实时查看执行情况,自动记录测试结果,并对错误步骤进行问题分析及错误时UI截图。

QTP

全名HP QuickTest Professional software ,2012年12月6日发布11.5版本,并更名为Unified Functional TestingQTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是利用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。

因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等

QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,

并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。

pywinauto

Pywinauto是实现Windows窗口程序自动化的一把利器,它主要操作于Windows标准图形界面。Pywinauto基于Pywin32,其最主要功能为对Windows标准控件的一系列动作可编程处理,包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。相比起Pywin32,Pywinauto使用起来更方便稳定,对中文的支持度也更好。

https://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html#

pywinauto与pyautogui比较

Pyautogui是另一个常用的基于Python的GUI自动化工具,能够支持多个平台。Pyautogui主要是利用程序自动控制鼠标和键盘操作。虽然Pyautogui和Pywinauto都是实现GUI 的自动操作,但两者的侧重点不同。Pyautogui侧重于鼠标、键盘、截图等功能,且是基于图像匹配进行定位的,而Pywinauto侧重于对C/S系统的操作,虽然也有键盘和鼠标的模拟操作,但核心上还是软件上的操作更多。

Airtest

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作.

http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/5_airtest_framework/airtest_api_info.html

codeui

CodeUI Test是微软自动化测试的一个比较好的项目,它的原理是获取到Windows窗口上的控件,然后针对控件的部分属性进行获取和对比,模拟对控件进行点击、双击、右键点击等事件。这样可以录制用户测试用例的动作,一次录制完动作,以后只需要运行测试用例程序,即可自动化测试。

注意:Code UI Test只能针对Window 程序。如果是C#编写的将会更加有效。

renorex

Ranorex Studio为测试人员提供了完整的解决方案,可在一个许可证中对台式机,Web和移动应用程序进行端到端测试。在Windows桌面上自动化测试,然后在真实的iOS或Android移动设备或模拟器/模拟器上本地或远程执行它们。并行运行测试以获得快速结果。内置的Selenium WebDriver可以加速针对Chrome,Firefox,Safari,Microsoft Edge等的跨浏览器测试。让Ranorex Studio花费更少的时间来解决不稳定测试中的问题,

而将更多的时间用于评估应用程序的质量。

官网:https://www.ranorex.com/

pyautoit

PyAutoIt是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作,它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

https://pypi.org/project/PyAutoIt/0.3/

TestComple

TestComplete是AutomatedQA公司开发的一套支持自动测试软件的工具。在当今的软件开发中,自动测试非常重要,大型软件开发公司很久以来就已经将其作为软件开发的一项重要环节。然而,自动测试软件一般成本较高而且不易使用,很难在小型公司内推广。TestComplete为Windows、.NET、Java和Web应用程序提供了一个特性全面的自动测试环境。将开发人员和QA部门人员从繁琐耗时的人工测试中解脱出来。TestComplete测试具有系统化、自动化和结构化特性,支持.NET,Java,Visual C++, Visual Basic, Delphi, C++Builder和web应用程序。

TestComplete就是一款自动化测试工具,可以测试传统的windows桌面程序,web应用,webservice,wince程序(这个就算了吧),http负载测试等功能。

比较类别

winrunner

QTP

Robot

AutoRunner

脚本录制

支持

支持

支持

支持

脚本语言

tsl语言

vb

vb

java

资源修改

GUI Map文件资源,但是不可编辑,只能够通过录制来修改

point and click

没有单独的资源定义文件,资源包含在脚本内,修改过程复杂,难度大

1)重新录制整个窗口上的资源;2)重新录制某个组件的资源;3)录制增加组件资源;4)通过“对象属性编辑器”进行修改;

数据驱动

支持

数据表整合管理

支持

支持

数据驱动脚本自动转换

通过Data Driver Wizard支持

通过Data Driver Wizard支持

通过手工编码支持

支持自动转换

组件自动同步

支持

支持

支持

支持

模糊识别

不支持

不支持

不支持

1)允许给组件的属性设置识别权重;2)通过执行的时刻计算权重实现模糊识别;

组件识别扩展

Virtual Object Wizard支持

支持

不支持

支持

Active Screen

不支持

支持

不支持

不支持

脚本扩展

通过dll

通过dll

通过dll

标准java扩展

检查点

文本检查点;链接检查点;对象属性检查点;扩展检查点;

识别组件对位置的依赖

高度依赖位置来识别组件和进行操作;

依赖对象的属性来识别

依赖对象的属性来识别

依赖对象的属性来识别

调试功能

支持

支持

支持

支持

关键字驱动

不支持

支持

部分支持,采用标准的语句

部分支持,采用标准的方法

本文分享自微信公众号 - 自学测试之道(zxceshi),作者:自学测试之道

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python下基于图片的文字识别与获取

    上篇文章了解了基于pyautoGUI库的元素识别,这次又遇到一个问题:桌面应用程序做自动化测试时,无法识别到页面元素,且页面的元素,每运行一次都会变动(累计增加...

    用户6367961
  • Postman接口测试之管理用例Collections

    Collections集合:也就是将多个接口请求可以放在一起,并管理起来。那么,什么样的接口请求可以放在同一个collection里?在这里告诉大家可以这样:一...

    用户6367961
  • 关于面试,你是如何面对的呢?

    面试,对于职场的人来说每个人都必须经历的。那作为职场人,看到很多案例,总结的不太笼统,那么该如何面对经常问的话呢?该如何回答比较好呢?以下是通过多个事例进行汇总...

    用户6367961
  • 数据中心布线:12芯光缆和8芯光缆的选择

    说到光缆连接,人们会根据光缆使用的连接器类型和光纤芯数运用各种术语加以描述。2 芯光 缆比较容易理解和辨识。使用 2 芯连接时,光缆以两根光纤为增量,例如常见的...

    晟科通信
  • CV学习笔记(二十八):活体检测总结②

    和传统的方法结构类似,只是使用了VGG进行特征提取,通过CNN网络端到端学习anti-spoofing的表示空间

    云时之间
  • 模拟人脑项目彻底宣告失败:耗资10亿欧,10年前轰动全球,如今死得悄无声息

    10年砸入10亿欧元,为了用计算机模拟人脑。这个十年前曾轰动全球的项目,如今彻底“死”了,死得悄无声息。要不是有位西方记者提起,人们几乎已经完全遗忘。

    量子位
  • CV学习笔记(二十八):活体检测总结②

    An original face anti-spoofing approach using partial convolutional neural netwo...

    云时之间
  • Nginx从入门到学会(4.事件处理)

    有人可能要问了,nginx采用多worker的方式来处理请求,每个worker里面只有一个主线程,那能够处理的并发数很有限啊,多少个worker就能处理多少个并...

    后端技术探索
  • 谷歌公布亚毫秒级人脸检测算法 BlazeFace,人脸检测又一突破!

    AI 开发者按:谷歌近日发布了一款专为移动 GPU 推理量身定制的轻量级人脸检测器——亚毫秒级的人脸检测算法 Blaze Face。它能够在旗舰设备上以 200...

    AI研习社
  • 谷歌公布亚毫秒级人脸检测算法 BlazeFace,人脸检测又一突破!

    谷歌近日发布了一款专为移动 GPU 推理量身定制的轻量级人脸检测器——亚毫秒级的人脸检测算法 Blaze Face。它能够在旗舰设备上以 200~1000+ F...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券