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

自动化测试工具(10款好用的自动化测试工具)
我们都希望为 Web 应用程序构建易维护的测试 。作为这个目标的一部分 , 我们都希望能集中精力在测试本身 , 而尽量避免困在实施的具体细节中 。从长远来看 , 测试应该是可维护的 , 对软件定期的变更并不会破坏测试本身或者让团队的开发节奏变慢 。
迭代速度 / 现实环境
某些测试工具可以在做出更改和查看结果之间提供简短的反馈循环 , 但不能精确地模仿浏览器的行为 。其他工具可能会使用实际的浏览器环境 , 但会降低迭代速度 , 并且在连续集成系统中可能会变得更加脆弱 。
Selenium

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



知名的浏览器 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 编写测试似乎很容易;但是如果没有最佳实践 , 将导致项目内的测试自动化框架难以维护且不够稳定可靠 。
https://www.selenium.dev/
Endtest

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



Endtest 是智能自动化测试解决方案 , 它使用多个开源和闭源组件去简化创建和执行测试的流程 。其中之一就是 Recorder 组件可以让用户不用编程技巧就能创建和执行测试 。你可以用图形化界面编辑管理自己的测试案例 , 而不用编写任何代码 。
它和 Selenium 一样拥有灵活性 , 允许你自动化测试场景 , 其中包含 iframe、多个浏览器标签、文件上传、ShadowDOM ,  等等 。它同 Selenium 一样拥有跨浏览器的特性 ,  支持所有主流的浏览器(Chrome、Firefox、Safari、Edge、Internet Explorer) 。同时 , 它也包括跨浏览器的云框架 , 支持 Windows、Mac 以及移动设备上的浏览器 。
此外 , 它还有支持 JavaScripts 执行的组件 , 以及发送 API 请求和连接数据库执行 SQL 语句的组件 。
这些组件可用于在测试中添加额外的验证步骤 , 并可准备或清理测试环境 。
https://endtest.io
Watir

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



Watir 是一个 Ruby 的浏览器自动化测试开源库 。
Watir 与对浏览器的互动方式和人类是一样的:如点击一个网页元素 , 填输入字符 。
它的底层使用了 Selenium 并且提供同样的灵活性 , 也支持跨浏览器 。同时 , 它也支持 iframes 以及多个浏览器标签 。
Watir 最大的优点是 API 很容易使用 , 它在繁复的 Selenium API 之上增加了一层简单性 。
不过 , 它的主要缺点是 , 它不如 Selenium 受欢迎 , 在寻找答案和解决方案方面你会遇到一些困难 。
http://watir.com/
Puppeteer

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



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

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

我认为未来它可以代替 Selenium 。它也具有支持 iframe 和多个浏览器标签的灵活性 。
值得一提的是 , 它有 2 种不同的软件包:puppeteer-core 和 puppeteer
唯一的区别是 puppeteer-core 在安装后不会自动下载 Chromium 。
puppeteer 的主要缺点是缺乏跨浏览器功能 , 因为它仅适用于基于 Chromium 的浏览器 。
即使 Opera 和 Edge 迁移到 Chromium , 也无法保证 Firefox 和 Safari 将来也会这样做 。
另一个缺点是 , 唯一受支持的语言是 Node.js 。即使到 2020 年一切似乎都围绕 JS 展开 , 但是仍然有一些用户可能想使用其他语言进行自动化测试的开发 。