草庐IT

UI自动化测试(PC端)

weixin_43092631 2024-02-02 原文

随着智能化信息基础设施的推进,软件开发的进程也不断加快。软件测试工作也逐渐由传统的手工测试向软件自动化测试跨越。

对于很多企业来说,做好软件自动化测试工作已经不仅仅是通过测试工具进行“点点点”,要想找出软件测试过程中的缺陷并对软件产品有个清晰的评估,最后生成测试报告,还是要通过一套清晰的自动化测试方案实现。

目前对于APP,web做自动化测试的框架和工具有很多,也有很多介绍的文章,但PC端的自动化测试工具的介绍还比较少,这里从自动化测试角度来做一些介绍

目录

一、软件自动化测试什么意思?

二、软件自动化测试工具有哪些?

三、如何分辨自动化测试工具是否有用?

1、自动化测试工具是否需要测试人员具有编写代码的能力?

2、自动化测试工具是否能够识别界面软件的控件?

3、自动化测试工具是否能应对软件版本变更?

4、自动化测试工具是否支持重复命令的封装以及参数化?

5、自动化测试工具是否支持自动判读测试执行结果,是否有测试记录留存?


一、软件自动化测试什么意思?

软件自动化测试就是通过测试工具代替人工自动执行测试用例,并自动评估运行结果的过程。相比以往完全通过手工测试进行软件测试,自动化测试能够节省人力、物力资源,降低人为因素引发的错误率。不过,目前软件测试过程通常是手工测试与自动化测试相结合进行。

二、软件自动化测试工具有哪些?

市场上自动化测试工具有非常多,为了提高我们在软件测试过程中的工作效率,选用好用的自动化测试工具十分有必要。

1、国外的软件自动化测试工具,比如QTP,UFT等,但很多都不可避免的是费用高,而且界面(英文居多)对一般的测试工程师不友好。

2、国产的自动化测试工具,比如我之前用过的UTP界面自动化测试工具(utpGui,或UTP-GuiRecorder),专门针对于PC端的Windows软件,可以通过特征属性定位控件,不依赖于位置,而且不需要编程,支持参数化。

三、如何分辨自动化测试工具是否有用?

自动化测试工具有很多,如何确定某一款工具是否能够满足实际的测试需要呢?

可以从以下几方面进行甄别:

1、自动化测试工具是否需要测试人员具有编写代码的能力?

大部分测试工程师编程能力和其他程序员存在差距,如果测试工具需要编码能力,对于使用者的要求会比较高。(众所周知,有编程能力的一般去做开发了。而有编程能力的测试工程师一般会往开发自动化测试脚本发展)

所以,自动化测试工具无需编码,是最容易让测试人员上手使用的。

UTP-GuiRecorder 可以通过录制的方式直接产生自动化测试脚本,整个测试过程无需编码。

2、自动化测试工具是否能够识别界面软件的控件?

自动化测试,是代替人工自动对界面软件进行操作检查,如果不能识别软件上的控件,就更不用谈自动化测试了。

UTP-GuiRecorder 支持通过特征属性识别被测对象,同时提供文字识别,图片识别,位置识别和辅助识别等功能,完成对被测对象的识别与录制。专业识别标准控件以及非标控件。

3、自动化测试工具是否能应对软件版本变更?

软件测试做自动化,最大的原因是为了解决大量繁杂的回归测试,但当自动化测试用例编辑完成后,下一轮回归软件控件发生了改变,是否之前的用例就不能使用了?

UTP-GuiRecorder 对于软件版本变更后导致的控件变化问题,能够有很好的支持,基本一次版本变更,只需要重新录制替换几个控件就可以完全支持新版本的测试。

4、自动化测试工具是否支持重复命令的封装以及参数化?

软件测试过程中,对每个功能的测试往往会有一些重复的地方,这些重复操作是否可以封装成脚本进行使用?对一些功能需要不同数据进行测试(比如不同账号的登录),是否能够支持参数化,做数据驱动测试?

UTP-GuiRecorder 支持重复命令的封装以及参数化。

5、自动化测试工具是否支持自动判读测试执行结果,是否有测试记录留存?

测试执行结果能够表明测试执行成功或失败,而具体是哪一个测试步骤执行失败,失败的原因是测试人员更关注的,自动化测试工具是否能够自动判读测试执行结果也是衡量一个工具好坏的重要标准。

UTP-GuiRecorder 支持支持自动判读测试执行结果,显示每一条测试步骤的执行结果,并检查关键输入和输出是否正确,并可以自动留存测试执行记录和执行结果。

有关UI自动化测试(PC端)的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  3. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  6. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  7. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  8. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  9. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  10. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

随机推荐