10款好用的自动化测试工具

[转载自“龙腾测试”公众号]

我们都希望为 Web 应用程序构建易维护的测试。作为这个目标的一部分,我们都希望能集中精力在测试本身,而尽量避免困在实施的具体细节中。从长远来看,测试应该是可维护的,对软件定期的变更并不会破坏测试本身或者让团队的开发节奏变慢。

迭代速度 / 现实环境:某些测试工具可以在做出更改和查看结果之间提供简短的反馈循环,但不能精确地模仿浏览器的行为。其他工具可能会使用实际的浏览器环境,但会降低迭代速度,并且在连续集成系统中可能会变得更加脆弱。
1、Selenium

图片

知名的浏览器 web 应用测试框架,可以用 Java、C#、Ruby、JavaScript、R 和 Python 等多种编程语言编写测试案例。

Selenium 为每种语言提供客户端 API。

Selenium WebDriver 尽可能使用原生操作系统级别的功能,而非基于浏览器 JavaScript 的命令来驱动浏览器。

这样就绕过了原生功能和 JavaScript 命令之间由于细微差别而产生的问题(包括安全限制)。它提供了很大的灵活性,甚至还支持 iframe 和多个浏览器标签。

卓越的跨浏览器功能令人印象深刻。可以在主流浏览器(Chrome、Firefox、Safari、Edge、Internet Explorer)上执行 Selenium 测试。

Selenium Grid 可以与 WebDriver 一起使用,以在远程系统上执行测试。

使用 Selenium 的唯一缺点是,它需要大量的技能,并且编写测试非常耗时。对没有编程经验的人来说,乍一看用 Selenium 编写测试似乎很容易;但是如果没有最佳实践,将导致项目内的测试自动化框架难以维护且不够稳定可靠。

2、Endtest

图片

Endtest 是智能自动化测试解决方案,它使用多个开源和闭源组件去简化创建和执行测试的流程。其中之一就是 Recorder 组件可以让用户不用编程技巧就能创建和执行测试。你可以用图形化界面编辑管理自己的测试案例,而不用编写任何代码。

它和 Selenium 一样拥有灵活性,允许你自动化测试场景,其中包含 iframe、多个浏览器标签、文件上传、ShadowDOM等等。它同 Selenium 一样拥有跨浏览器的特性,支持所有主流的浏览器(Chrome、Firefox、Safari、Edge、Internet Explorer)。同时,它也包括跨浏览器的云框架,支持 Windows、Mac 以及移动设备上的浏览器。

此外,它还有支持 JavaScripts 执行的组件,以及发送 API 请求和连接数据库执行 SQL 语句的组件。

这些组件可用于在测试中添加额外的验证步骤,并可准备或清理测试环境。

3、Watir

图片

Watir 是一个 Ruby 的浏览器自动化测试开源库。

Watir 与对浏览器的互动方式和人类是一样的:如点击一个网页元素,填输入字符。

它的底层使用了 Selenium 并且提供同样的灵活性,也支持跨浏览器。同时,它也支持 iframes 以及多个浏览器标签。

Watir 最大的优点是 API 很容易使用,它在繁复的 Selenium API 之上增加了一层简单性。

不过,它的主要缺点是,它不如 Selenium 受欢迎,在寻找答案和解决方案方面你会遇到一些困难。

4、Puppeteer

图片

一个 Node 库,它提供了高级的 API 并通过 DevTools 协议来控制 Chrome(或 Chromium)。

我认为未来它可以代替 Selenium。它也具有支持 iframe 和多个浏览器标签的灵活性。

值得一提的是,它有 2 种不同的软件包:puppeteer-core 和 puppeteer

唯一的区别是 puppeteer-core 在安装后不会自动下载 Chromium。

puppeteer 的主要缺点是缺乏跨浏览器功能,因为它仅适用于基于 Chromium 的浏览器。

即使 Opera 和 Edge 迁移到 Chromium,也无法保证 Firefox 和 Safari 将来也会这样做。

另一个缺点是,唯一受支持的语言是 Node.js。即使到 2020 年一切似乎都围绕 JS 展开,但是仍然有一些用户可能想使用其他语言进行自动化测试的开发。

5、Playwright

图片

一个 Node 库,可通过单个 API 在 Chromium、Firefox 和 WebKit 浏览器上执行自动化测试。

Playwright 旨在不断增长的 Web 浏览器集上实现自动化操作。Playwright 类似于 Puppeteer。

它支持多页面、多域名和 iframes 测试,还可以模拟移动端设备,地理指向和权限控制也是可以测试的。

即使它具有更广泛的跨浏览器支持,但它也不支持 Internet Explorer。

因为它是一个相对较新的库,所以你可能现在在线上找不到很多资源。

如果你在编写 Node.js 代码方面有扎实的经验,那么 Playwright 可以一试。

6、Sikuli

图片

在运行 Windows、Mac 或 Linux 的台式计算机屏幕上看到的任何内容,都可以使用 Sikuli 执行自动化测试。

它使用由 OpenCV 支持的图像识别来识别视觉组件。如果无法轻松访问 GUI 内部或要操作的应用程序或网页的源代码,这个工具会非常方便。实际上,这是大多数现代 RPA 解决方案背后的技术。

Sikuli 的优点是,元素具有唯一属性或属性是否更改都无关紧要,因为 Sikuli 仅依赖于视觉识别。

它的主要缺点是视觉容忍度让用户很难在不同的浏览器和屏幕尺寸之间实现自动化。

并且,使用 Sikuli 库需要编程技巧,并且你可以在 Python、Ruby 和 Java 之间选择。

如果你有涉及 Web 应用程序和桌面应用程序的混合自动化测试,则较好的做法是将 Selenium 用于 Web 组件,将 Sikuli 用于桌面组件。

7、Micro Focus UFT (QTP)

图片

专有解决方案,以前称为 QuickTest Professional(QTP)。它提供了使 Web 应用程序和桌面应用程序自动化的功能。

它使用 Visual Basic 脚本语言来定位应用程序中的元素并与之交互。同时,它还提供了一个 IDE,你只需在 GUI 中创建一个流程即可在不编写任何代码的情况下构建测试。

该工具已经存在很长时间,并且确实使 Selenium 失去了很多市场份额。

8、IBM Rational Functional Tester

图片

一个提供功能、回归、GUI 和数据驱动测试的自动化测试的专业工具。它确实包括有限的跨浏览器功能,因为它仅适用于 Chrome、Firefox 和 Internet Explorer。主要优点是它还可用于自动化桌面应用程序。

优势之一是它具有 Eclipse Java Developer Toolkit 编辑器,这让你的团队可以轻松地使用 Eclipse 在 Java 中编写测试脚本。自带的 IDE 工具箱编辑器包含以下功能,如代码自动完成和高级调试选项。

将 IBM Rational Functional Tester 与 CI/CD 系统集成可能会很困难,因为它被设计用在你自己的工作站上

9、Jest

图片

Jest 是一个 JavaScript 框架,允许你通过 jsdom 访问 DOM。

值得一提的是,jsdom 只是浏览器工作方式的一个近似值,用于 React 应用程序的测试框架,但不是跨浏览器测试的可靠选择。

Jest 确实提供了良好的迭代速度,并且具有强大的功能,例如模拟模块和计时器。

理想情况下,开发人员应使用它来测试某些组件,但结果不能保证该应用程序在实际的浏览器中可以正常工作。

10、Cucumber

图片

Cucumber 是一个开源的行为驱动测试工具,支持多种编程语言,包括 Ruby,Java,Scala 和 Groovy。

创建测试案例需要编程技术。实际功能可以通过使用 Gherkin 来调用。

使用 Cucumber 的明显优势是,非技术用户可以轻松理解这些方案。

可以说 Cucumber 并不是 Selenium 的替代品,而仅仅是对 Selenium 进行了一层包装。

Selenium 和 Cucumber 的组合可提高代码的可读性,并使其更易于重用组件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容