在过去的几年中,业界至少出现了十二种全新的UI测试自动化工具。虽然每一种工具都有各自的侧重点,但是它们普遍将出色的可用性和良好的用户体验放在了首位。在此,我将为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择。
1. Parasoft Selenic
目标用户:针对那些在现有的Selenium上花费了大量时间维护测试脚本的用户。
Parasoft Selenic通过添加由AI驱动的定位器(locators)和自我修复功能(self-healing,https://dzone.com/articles/how-to-create-a-self-healing-it-infrastructure),来增强现有的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(https://dzone.com/articles/easy-testing-katalon-studio-at-a-glance),来进行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