第一百一十四期:盘点十大最新Web UI测试工具

本文为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择。

作者:陈峻

在过去的几年中,业界至少出现了十二种全新的UI测试自动化工具。虽然每一种工具都有各自的侧重点,但是它们普遍将出色的可用性和良好的用户体验放在了首位。在此,我将为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择。

1. Parasoft Selenic

目标用户:针对那些在现有的Selenium上花费了大量时间维护测试脚本的用户。

Parasoft Selenic通过添加由AI驱动的定位器(locators)和自我修复功能(self-healing),来增强现有的Selenium测试实践。通过直接集成到用户现有的CI/CD管道中,Selenic可以在运行时(runtime)分析Selenium的各项测试。如果检测到诸如:由定位器或等待条件导致的故障,它将自动修复测试,并提供针对下一次运行此类测试的有关修复方法建议。在实际应用中,Selenic利用Chrome记录器,来生成Selenium测试。该测试通过页面对象模型(page object model),来实现极好的可维护性。

定价:提供项目和/或团队的年度订阅方式。

优点:

  • 智能记录器(Smart recorder)能够使用那些页面对象模型,来轻松地创建Selenium测试。
  • 建议在现有的Selenium测试中使用到智能定位器,并能够在现有的Selenium测试中执行自我修复。
  • 通过利用现有或创建新的Selenium脚本,直接集成到CI/CD管道中。
  • 提供测试影响分析(test impact analysis)技术,以自动判断需要在CI/CD管道中执行哪些Selenium测试,并且验证代码新的更改。
  • 提供各个级别的客户支持,而不仅限于企业用户。

缺点:

  • 没有免费的正式版,只有免费的试用版。
  • 由于相对较新,其当前的版本仅支持Java、JUnit 4和Eclipse。而对于Cucumber、JUnit 5、TestNG和IntelliJ的支持,已在其2020年的路线图上。

关键要点:正如Gartner Peer Insights所言,通过拥有世界级的客户和30多年软件测试经验的Parasoft对其进行加持,Selenic能够轻松地对现有的Selenium测试提供各种AI支持。

2. Katalon

目标用户:针对同时会用到代码和无代码测试工具的用户。

作为一种免费工具,各种系统集成商可以频繁使用Katalon,来进行UI测试。作为Chrome浏览器的插件,其记录器既能够生成各种测试用例,又能够在页面对象模型中构建其Katalon IDE,因此该工具比较容易维护。用户可以直接在其IDE中随时开展测试,或者将其导出到许多不同类型的测试脚本之中。

定价: Katalon Studio的基本版是免费的。其付费插件可通过市场进行订购。如果需要提供企业级的技术支持,用户则需支付更多的费用。

优点:

  • 提供智能定位器的推荐。
  • 提供仅用于在IDE中生成和管理测试的页面对象模型。
  • 通过付费插件提供自我修复功能。
  • 能够导出到许多不同类型的测试脚本中。

缺点:

  • 尽管可以将测试导出为Selenium和其他类型的测试脚本,但是用户无法导出页面对象模型。而且一旦完成导出,Katalon则会变得不可用。这就意味着:测试会变得难以重用和维护。
  • 对于客户的支持仅停留在企业级别,并且非常昂贵。
  • 必须使用专有的框架、以及CI集成插件,否则无法直接集成到现有的执行框架中。

关键要点:无需任何技术知识,用户可以直接使用Katalon。借助程序中的关键字,用户可以快速创建各种测试用例。Katalon Studio虽然是免费可用的,但是用户若要获得更多创新性的技术优势,则必须升级或购买付费版的插件。

3. Selenium IDE

目标用户:正在寻找以UI驱动的记录和回放工具的用户。

Selenium IDE是一个开源的项目。通过将Selenium的功能整合到Chrome的插件中,用户可以开展各类测试。

定价:免费。

优点:

  • 用户可以将任何已创建的测试导出到脚本中,通过其强大的功能,来创建相应的UI测试。
  • 能够针对其记录的每个元素,提供多种定位策略。
  • 具有仅限于Selenium脚本的自我修复功能,不过可靠性不高。

缺点:

  • 不能完全适合用户的CI/CD流程。
  • 在查找bug或进行黑盒测试时,无法提供全面的信息,因此用户需要通过导出代码来进行深入分析。
  • 在构建测试时,无法使用页面对象模型。
  • 虽然用户可以用多种不同的语言来导出测试,但是却无法导入。
  • 虽然提供CI集成,但它无法被直接集成到用户现有的框架中。

关键要点:用户能够轻松地通过Selenium IDE,来快速针对其Web UI创建测试。那些熟悉Selenium框架的用户很容易上手并开展测试。

4. mabl

目标用户:针对那些不愿意编写测试或构建UI测试环境的用户。

在UI测试方面,mabl有着独到的办法:它并不针对测试本身,而是采用了遍历流程。用户只需登录到他们的网站上,定义一个遍历目标应用的流程即可。可见,它虽然并未给用户提供任何测试用例、以及真正需要解决的问题,但是,它允许用户定期运行该流程,并产生相应的执行结果。

定价:根据执行遍历流程的次数进行分层定价。

优点:

  • 提供智能定位器的推荐,不过用户对此不甚了解。
  • 具有良好的自我修复功能。
  • 提供易于获取和上手的SaaS解决方案。
  • 具有灵活的定价模型。

缺点:

  • 在记录遍历流程时,并未使用到页面对象模型。
  • 由于使用独特的框架,因此无法导入和导出测试脚本。
  • 对于现有的CI集成,用户无法直接将解决方案集成到现有的框架中。
  • 如果无法按照预期工作,则很难通过访问“代码”来进行配置或操作。
  • 过于关注遍历流程,而忽略了对于功能的验证。
  • 由于是一种SaaS解决方案,因此无法在本地进行部署,也无法访问到并未联网的应用。

关键要点:mabl可以通过复杂的自动修复功能,来帮助用户提高发布流程的速度和质量。无论应用程序的UI被执行了何种更改,该工具都能开展稳定的自动化测试。虽说mabl是人们在后台的指挥下去自动执行测试,但是有些用户会认为这是将自己的控制权交了出去。

5. TestIM

目标用户:由于偏重于复杂工作流的执行路径,因此它更适合那些需要针对UI测试的开箱即用型方案的用户。

TestIM是也一款SaaS应用程序。作为一个简单易用的UI自动化测试方案,它可以帮助开发者弄清针对于某个简单bug的修复,以及对应用其他部分所造成的何种影响。

定价:提供基于已测试数量的年度订阅计划。

优点:

  • 提供直观的用户界面,易于创建各种测试。
  • 提供智能定位器的推荐,以及能够维护它们的各种策略。
  • 具有强大的自我修复能力。

缺点:

  • 在测试中无法使用页面对象模型。
  • 缺乏导入/导出测试脚本的能力。
  • 用户无法访问代码、或将测试移出TestIM。
  • 其测试脚本只能在TestIM框架中被使用。

关键要点:用户能够轻松地获取TestIM技术,并快速创建可以正常使用的测试用例。当然,在提供良好的用户体验的同时,TestIM也具有强大的自我修复能力。TestIM的主要挑战在于它无法访问测试的核心。而且,由于所有的测试都必须在TestIM框架之中,因此有可能会“绑架”用户当前以及未来的业务模型。

6. Functionize

目标用户:针对需要通过UI测试,而进入行为驱动开发(BDD,Behavior Driven Development)的手动测试人员、或非技术测试人员。

通过在定位器策略等方面的改进,Functionize提供了全面的Web UI测试工具,以方便用户轻松地针对应用程序创建自动化测试平台。当然,这些都必须在其专有框架中完成。

定价:尚无公开定价。

优点:

  • 提供出色的可视化显示与测试流程。
  • 提供多元素定位器的推荐。
  • 具有自我修复能力。

缺点:

  • 无法使用页面对象模型。
  • 框架较为封闭。
  • 无法导入/导出测试脚本。

关键要点:Functionize的AI能够帮助用户消除测试中碰到的各种混乱状况,进而提高测试人员的准确性和效率。在考虑如何将其引入现有流程时,用户需要顾及其框架封闭性。

7. Perfecto

目标用户:针对那些寻求一站式界面与移动测试的用户。而且,由于不涉及到脚本,因此它最适合那些不想写代码的人。

一直专注于移动测试的Perfecto,有着不错的UI测试生态系统。它可以被用来创建、维护、执行云相关的应用,并产生报告。

价格:年费在99美元至3588美元之间。

优点:

  • 只能在其生成的测试中使用到页面对象模型。
  • 提供多个定位器,来记录Web元素。
  • 最近推出了自我修复功能,但其功能或性能尚不明确。

缺点:

  • 其测试脚本采用了专有的基于TCL的语言。
  • 用户无法导入自己的Selenium脚本。
  • 虽然提供与CI的集成,但它无法被直接集成到用户现有的框架中。

关键要点:Perfecto提供了有关维护和编写测试脚本,管理和验证测试,以及调试各种缺陷的解决方案。其UI测试解决方案,为用户提供了创建脚本和无脚本两种选项。另外,Perfecto最近在维护和自我修复方面也有所提升。

8. TestCraft

目标用户:针对那些不想编写代码、却又想通过高级分析来验证其测试效果的用户。

TestCraft是一个无代码的Selenium自动化测试平台。它拥有相关的AI技术和独特的可视化建模功能。在消除测试维护开销的同时,它能够快速地创建和执行测试。

定价:尚无公开的定价信息。

优点:

  • 只能在其生成的测试中使用页面对象模型。
  • 提供“智能绑定”式定位器的推荐和自我修复。
  • 其内置的调度程序,可以让用户在设定的时候执行测试流程。

缺点:

  • 只能使用专有的框架。
  • 无法导入/导出测试脚本。
  • 虽然可以作为插件与CI相集成,但是无法集成到用户现有的框架中。

关键要点:TestCraft是一款功能强大的SaaS应用程序。它能够方便测试人员无需编写代码,即可创建全自动的测试场景。用户在UI上记录他们的测试用例,TestCraft将为每个测试流创建一个模型,并直观地指示出测试所执行的不同路径。用户在使用复杂的用例模型时,往往会使用到该工具。

9. Ranorex Webtestit

目标用户:适合于那些熟悉代码,却又不想花费时间自行构建结构化Selenium脚本的人员。

作为一家以桌面自动化工具闻名的公司,Ranorex于2019年7月发布了全新产品--Webtestit。Ranorex采用了“设计优先”的方法,而并非进行代码级的记录和回放。用户可以通过界面的交互,以及在专有的IDE中进行辅助操作,来构建各种脚本。业界推测Webtestit将来很可能会取代Ranorex Studio。

定价:每月40美元。

优点:

  • 用户可使用页面对象模型,来创建测试。
  • 其免费的Selocity Chrome插件,可用来实现定位器的推荐。用户可以导入Selenium脚本。
  • 可在IDE中创建不同的测试,以及各项辅助性操作。

缺点:

  • 虽然记录和回放功能不尽完善,但它是入门级测试​​的关键组件。可惜该工具并无此功能。
  • 提供专有的IDE,当然对于大多数开发人员来说,他们可能要放弃熟悉的Eclipse或IntelliJ等IDE。
  • 由于用到了专有的执行框架,因此用户需要使用其插件,才能作为CI的一部分执行下去。
  • 作为测试创建类型的解决方案,它在运行时不具备分析或自我修复功能。

关键要点:虽然没有记录和回放功能,但是它可以鼓励用户从下至上,而非自上而下地进行构建。因此,该方案对于那些希望拥有辅助代码创建工具的组织来说比较实用。通过与Selocity的Chrome插件组合,用户可以使用页面对象模型,来绘制出各种页面对象,并将它们导入到Webtestit工具里。

10. AutonomIQ

目标用户:针对那些同时会用到代码和无代码测试方案的用户。

AutonomIQ具有AI、机器学习、以及自然语言处理(NLP)的能力。它针对UI测试自动化提出了三步走。首先,通过其AI来发现目标应用;然后,在发现过程中构建测试用例;最后,使用分析引擎来监视和维护各种测试用例。

定价:尚无公开的定价信息。

优点:

  • 具有强大的NLP、AI和机器学习能力。
  • 仅能在其生成的测试中使用到页面对象模型。
  • 通过其Chrome插件来实现智能定位器的推荐。
  • 在执行过程中具有自我修复能力。

缺点:

  • 仅能使用专有的框架。
  • 无法导入测试脚本。
  • 虽然可以作为插件与CI相集成,但是无法集成到用户现有的框架中。

关键要点:该工具看似全面且完美,但是笔者至今无法通过任何实际案例的研究或用例,来找到其对应的客户。当然,从工具本身来看,它具有一定的颠覆性实用价值。

原文标题:The Top 10 New Web UI Testing Tools Everyone's Talking About,作者:Chris Colosimo

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新起点

还记得以前找资料时经常看到博客园的文章,今天很高兴我也参与其中了。我只希望通过这么一个平台来不断的激励自己,属于我的大学时间已经不多了,不再懊悔过去,只要坚持从今天开始,一万小时定律我相信你。加油~ just now…

通过Web Services上传和下载图片文件

通过Web Services上传和下载图片文件 随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。下面,我就分别介绍如何通过Web Servi…

300. Longest Increasing Subsequence

文章目录1 题目理解2 动态规划3 二分贪心1 题目理解 Given an integer array nums, return the length of the longest strictly increasing subsequence. A subsequence is a sequence that can be derived from an array by deleting some or no elements without changing…

第一百一十五期:Web开发必须掌握的三个技术:Token、Cookie、Session

在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。 作者:一颗小梪梪 在Web应用中&am…

这个博客复活了

原来因为页面配置的问题出了一堆的bug,久而久之就不想管了。 但是经过了漫长的寻找博客的过程中,我还是回到了这里。 洛谷博客实在是有点太简陋了,\(hexo github\)上传太麻烦,要clean然后g,然后d。 之后我就重新弄了下界面, 现在…

第一百一十六期:不能错过!你必须知道的3种重要Python技能

学习Pandas是很棒的体验,学习Numpy也很有趣。但是,你是否过早地开始使用程序库了呢?这也许是因为你还没有意识到pure python的魅力。 作者:读芯术 学习Pandas是很棒的体验,学习Numpy也很有趣。但是,你是否…

Erlang消息传递-tut15.erl

作 w3cschool erlang 的练习 --------- 1 -module(tut15).2 3 -export([start/0, ping/2, pong/0]).4 5 %% Erlang 消息传递6 %% Erlang 进程之间的消息可以是任何简单的 Erlang 项. 比如说, 可以是列表、元组、整数、原子、进程标识等等7 %% recevie 关键字的语法: 请注意, 在…

673. Number of Longest Increasing Subsequence

文章目录1 题目理解2 动态规划1 题目理解 Given an integer array nums, return the number of longest increasing subsequences. Notice that the sequence has to be strictly increasing. 输入:整数数组int[] nums 输出:最长递增子序列的个数 规则&…

第一百一十七期:爱上 Go 语言的10个理由

这个月 Go 语言就将迎来它的10岁生日了,于是我们特地列出了10条让你可以开心使用 Go 语言的理由。 作者:4bytes 这个月 Go 语言就将迎来它的10岁生日了,于是我们特地列出了10条让你可以开心使用 Go 语言的理由。 Map 集合/映射默认使用0值 …

Nhibernate.hbm2ddl.auto配置详解

hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下&#xff1a; <properties><property name"hibernate.show_sql" value"true" /> <property name"hibernate.hbm2ddl.auto" value"create" /></prop…

1048. Longest String Chain

文章目录1题目理解2 动态规划1题目理解 输入&#xff1a;字符串数组words&#xff0c;字符串只包含小写字母 规则&#xff1a;对于word1和word2&#xff0c;如果在word1中任何一个位置添加一个字符能够得到word2&#xff0c;那么可以称word1为word2的前身。词链是单词 [word_1…

第一百一十八期:运行 JavaScript 代码片段的 20 种工具

运行 JavaScript 代码片段的 20 种工具 前端日常开发中&#xff0c;我们使用喜爱的 IDE 调试 JavaScript 代码&#xff0c;比如我喜欢的代码编辑器有两个&#xff0c;Sublime Text 3 和 VS Code&#xff0c;前几年还使用过 Atom&#xff0c;偶尔我们会遇到临时需要快速分享给同…

如何建立好的索引.--针对Distinct

SQL语句SELECT DISTINCT EDOWN,EDOPT FROM EMFLIB.EQEDIPF WHERE EDCHK1 AND EDCHK2M AND EDCHK3 AND EDCHK4 AND EDTAG2数据库记录总数 1518741条符合查询的记录数 657225条最早的索引 EDCHK1 EDCHK2 EDCHK3 EDCHK4 EDTAG2 EDERRCODE消耗的时间:1分钟左右为什么呢?主要的原因…

一年总结

从九月份开学到现在为止&#xff0c;将近一年的学习结束&#xff0c;做一下简要总结&#xff0c;记录一下这一年的收获。这将近一年的生活&#xff08;除去上课时间&#xff09;可以用几个单词概括。吃饭->实验室->例会&#xff08;每周一次&#xff09;->看代码->…

140. Word Break II

文章目录1 题目理解2 回溯记忆化1 题目理解 140与130的区别是&#xff0c;当字符串可分的时候&#xff0c;要求返回具体的分割字符串。 2 回溯记忆化 对于字符串s&#xff0c;如果前面一部分是单词列表中的词&#xff0c;则拆分出这个单词&#xff0c;右边的继续分割。 分割…

spring mvc学习(25):Eclipse设置代码自动提示

Eclipse只需几步简单的设置就可以像idea那样代码自动提示了&#xff0c;喜欢的小伙伴可以赶紧动手设置&#xff0c;提升效率。 第一步&#xff1a;打开Eclipse --> Window --> Preferences 第二步&#xff1a;点击Java --> 打开Editor --> 点击Content Assist 第…

打破牢笼,展望更高层次的世界

打破牢笼&#xff0c;展望更高层次的世界--------------------------------------------------------------笔者袁永福是一个十多年的老程序猿&#xff0c;一穷二白的出来创业多年&#xff0c;期间经历许多曲折和磨难&#xff0c;成功的在炮火连天的商业战场上活了下来&#xf…

spring mvc学习(26):处理数据模型--从表单到controller传输数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

第一课 回归问题与应用

本系列是七月算法机器学习课程笔记 文章目录1 不同类型的学习2 基本术语与概念3 线性回归模型3.1 什么是线性回归3.2 损失函数3.3 最小化损失函数-梯度下降3.4 学习率有什么影响3.5 过拟合与欠拟合4 逻辑回归4.1 为什么要有逻辑回归4.2 什么是逻辑回归4.3决策边界线性边界判定非…

[推荐] TechNet 广播 SQL Server 2000完结篇

TechNet中文网络广播在之前已经推出了SQL Server 2000的基础系列和管理专家系列&#xff0c;使广大听众认识并掌握了SQL Server 2000的管理技巧。本次系列作为前两次系列课程的完结篇&#xff0c;将会从性能调优及维护的角度为广大听众提供了一道实用而精致的大餐&#xff0c;本…