自动化测试工具知多少之——Selenium, Selenide和Katalon

引子

以前就有个想法,整理一下自动化测试的相关工具,开始的时候觉得不复杂,可是只是简单的列表彷佛又单调了些,没什么意义。若是加上介绍和相关说明,放在一篇文章里,又会太过杂乱。 干脆仍是先从细节开始,写个系列文章来介绍工具,后面再作整理,可能会清楚一点。 从哪儿开始呢,要不咱先唠唠Selenium?java

Selenium

这是鼎鼎大名家喻户晓的工具了,你们应该都知道,它是作Web UI自动化的。 可是初次接触的朋友可能仍是会有点懵逼,什么Selenium1.0, 2.0, 3.0, 什么seleniumRC、Selenium IDE,Selenium Grid,还有WebDriver又是什么鬼?因此咱也来先简单介绍两句。git

1.0

Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操做的录制与回放功能。 Selenium Grid是一种自动化的测试辅助工具,Grid经过利用现有的计算机基础设施,能加快Web-App的功能测试。利用Grid能够很方便地实如今多台机器上和异构环境中运行测试用例。 Selenium RC(Remote Control)是Selenium1.0的核心部分。Selenium RC 支持多种不一样语言编写的自动化测试脚本,经过Selenium RC的服务器做为代理服务器去访问应用,从而达到测试的目的。 Selenium RC分为Client Libraries和Selenium Server。Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库。Selenium Server负责控制浏览器行为。github

关于1.0的介绍,简单看看就行了,由于在2.0中,核心已经从RC变成了WebDriver。web

WebDriver

在2006年的时候,Google的工程师Simon Stewart发起了WebDriver的项目。 Selenium RC 是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese命令(selenese是Selenium命令集合)。ajax

WebDriver是经过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript,与浏览器紧密集成,所以支持建立更高级的测试,避免了JavaScript安全模型致使的限制。除了来自浏览器厂商的支持以外,WebDriver还利用操做系统级的调用,模拟用户输入。编程

Selenium与WebDriver原是属于两个不一样的项目,WebDriver的建立者Simon Stewart早在2009年8月的一份邮件中解释了项目合并的缘由。浏览器

Selenium与WebDriver合并缘由:为什么把两个项目合并?部分缘由是WebDriver解决了Selenium存在的缺点(例如可以绕过JavaScript沙箱,咱们有出色的API),部分缘由是Selenium解决了WebDriver存在的问题(例如支持普遍的浏览器),部分缘由是由于Selenium的主要贡献者和我都以为合并项目是为用户提供最优秀框架的最佳途径。安全

2.0

Selenium和Webdriver合并以后,就有了Selenium 2.0。 Selenium 2.0 = Selenium 1.0 + WebDriver 在Selenium 2.0中主推的是WebDriver,能够将其看做Selenium RC的替代品。由于Selenium为了保持向下的兼容性,因此在Selenium 2.0中并无完全地抛弃Selenium RC。服务器

如今网上关于Selenium的教程,大多也是关于Selenium 2.0的WebDriver的。app

3.0

2016年7月,Selenium3.0悄悄发布第一个beta版。2016年10月13日,官方宣布发布Selenium3.0版本。 在Selenium 3.0中,完全移除了旧的RC APIs,替换成了WebDriver APIs。 Selenium3.0只支持Java8版本以上。 Selenium3.0中的Firefox浏览器驱动独立了,之前装完selenium2就能够驱动Firefox浏览器了,如今和Chrome同样,必须下载和设置浏览器驱动。 MAC OS 集成Safari的浏览器驱动。默认在/usr/bin/safaridriver 目录下。 只支持IE 9.0版本以上。

Selenide

初看到这个词的时候,是否是觉得把Selenium拼错了?我一开始也这样认为,可是一搜才发现,并非!

selenide is just a wrapper.

Selenide是webdriver的一个封装,理论上一切WebDriver能作的Selenide都能作,而且如今只有java版本。 使用Selenide,你能够把注意力集中在实现业务逻辑上,而不用过多的考虑浏览器/ajax/超时等问题。 想要了解的更具体一点? 请参考官方文章:http://selenide.org/2013/04/23/what-is-selenide/

Katalon

这是在Selemium相同的内核上构建起来的一个自动化测试工具。它是一个彻底免费且易用的图形化工具,用户不须要任何编程基础便可使用。 至于它和Selenium的具体区别?我懒得翻译了,你们去看官方文章来具体了解吧。 官方文章:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/

本文也同时发在个人我的博客上,地址:https://mmcatt.github.io/2018/06/19/selenium-selenide-katalon/

相关文章
相关标签/搜索