1Selenium
知名的浏览器web应用测试框架,可以用Java、C#、Ruby、Javascript、R和Python等多种编程语言编写测试案例。
Selenium为每种语言提供客户端API。
SeleniumWebDriver尽可能使用原生操作系统级别的功能,而非基于浏览器Javascript的命令来驱动浏览器。
这样就绕过了原生功能和Javascript命令之间由于细微差别而产生的问题(包括安全限制)。它提供了很大的灵活性,甚至还支持iframe和多个浏览器标签。
卓越的跨浏览器功能令人印象深刻。可以在主流浏览器(Chrome、Firefox、Safari、Edge、InternetExplorer)上执行Selenium测试。
SeleniumGrid可以与WebDriver一起使用,以在远程系统上执行测试。
使用Selenium的唯一缺点是,它需要大量的技能,并且编写测试非常耗时。对没有编程经验的人来说,乍一看用Selenium编写测试似乎很容易;但是如果没有最佳实践,将导致项目内的测试自动化框架难以维护且不够稳定可靠。
2Endtest
Endtest是智能自动化测试解决方案,它使用多个开源和闭源组件去简化创建和执行测试的流程。其中之一就是Recorder组件可以让用户不用编程技巧就能创建和执行测试。你可以用图形化界面编辑管理自己的测试案例,而不用编写任何代码。
它和Selenium一样拥有灵活性,允许你自动化测试场景,其中包含iframe、多个浏览器标签、文件上传、ShadowDOM,等等。它同Selenium一样拥有跨浏览器的特性,支持所有主流的浏览器(Chrome、Firefox、Safari、Edge、InternetExplorer)。同时,它也包括跨浏览器的云框架,支持Windows、Mac以及移动设备上的浏览器。
此外,它还有支持Javascripts执行的组件,以及发送API请求和连接数据库执行SQL语句的组件。
这些组件可用于在测试中添加额外的验证步骤,并可准备或清理测试环境。
3Watir
Watir是一个Ruby的浏览器自动化测试开源库。
Watir与对浏览器的互动方式和人类是一样的:如点击一个网页元素,填输入字符。
它的底层使用了Selenium并且提供同样的灵活性,也支持跨浏览器。同时,它也支持iframes以及多个浏览器标签。
Watir最大的优点是API很容易使用,它在繁复的SeleniumAPI之上增加了一层简单性。
不过,它的主要缺点是,它不如Selenium受欢迎,在寻找答案和解决方案方面你会遇到一些困难。
4Puppeteer
一个Node库,它提供了高级的API并通过DevTools协议来控制Chrome(或Chromium)。
我认为未来它可以代替Selenium。它也具有支持iframe和多个浏览器标签的灵活性。
值得一提的是,它有2种不同的软件包:puppeteer-core和puppeteer
唯一的区别是puppeteer-core在安装后不会自动下载Chromium。
puppeteer的主要缺点是缺乏跨浏览器功能,因为它仅适用于基于Chromium的浏览器。
即使Opera和Edge迁移到Chromium,也无法保证Firefox和Safari将来也会这样做。
另一个缺点是,唯一受支持的语言是Node.js。即使到年一切似乎都围绕JS展开,但是仍然有一些用户可能想使用其他语言进行自动化测试的开发。
5Playwright
一个Node库,可通过单个API在Chromium、Firefox和WebKit浏览器上执行自动化测试。
Playwright旨在不断增长的Web浏览器集上实现自动化操作。Playwright类似于Puppeteer。
它支持多页面、多域名和iframes测试,还可以模拟移动端设备,地理指向和权限控制也是可以测试的。
即使它具有更广泛的跨浏览器支持,但它也不支持InternetExplorer。
因为它是一个相对较新的库,所以你可能现在在线上找不到很多资源。
如果你在编写Node.js代码方面有扎实的经验,那么Playwright可以一试。