Selenium 介绍
2017-03-19 tech selenium test webdriver 3 mins 1342 字
之前写了一篇很初级的《selenium入门》,仅仅算是 Selenium 2 的 hello world。现在的这篇,主要是记录我对 Selenium 2(又名 WebDriver) 的一些认识。
前言
Selenium 是 ThroughtWorks 公司开发的针对Web应用的开源测试框架,支持多种浏览器和多种编程语言。Selenium 2 集成了 WebDriver(曾经是 Selenium 1的竞争对手)。
Selenium 和 WebDriver 开发人员都认为两个工具各有优势,二者合并将创造更强大的web测试框架。于是它们就合并了。真是一阵祥和。
更多 Selenium 和 WebDriver 的历史,可以查看官方blog:Selenium项目简史。
Selenium 1 和 Selenium 2 的区别
习惯上 Selenium1.x 时通常指的是 Selenium RC, WebDirver 指的是 Selenium 2,反过来也是。
Selenium RC在浏览器中运行JavaScript应用,而WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。
Selenium 2包括Selenium Server,通过Selenium Grid支持分布式测试。
Selenium 3
与2的发布相隔了5年,2016-10-13,Selenium 的官方博客宣布了 Selenium 3 正式发布。
新版本中 Selenium Core 的实现改由 WebDriver 的一个模块实现,这将影响所有 Selenium 1代 Selenium RC 的 API接口。对于 Selenium 2 用户基本没影响。 Selenium 1 被 WebDriver 替代的趋势较之 Selenium 2 更为强烈。
对于 Selenium 2/WebDriver 的用户,这个升级对 Api 接口没什么影响,只是解决了一些 bug。
Selenium 名字的来源
Selenium 的中文名为“硒”,是一种化学元素的名字,它对汞 (Mercury)有天然的解毒作用。
而 Mercury 公司开发了一系列的测试工具(QTP,QC,LR,WR…),他们功能强大,但是却很贵。
故 thoughtworks 特意把他们的 Web 开源测试工具命名为 Selenium,以此帮助大家脱离汞毒。
不由想到了 IBM 开发的 eclipse 意图对抗 Sun,嘿嘿。当然最后 Sun 确实被收购了。
Selenium 组件
刚接触时候我被各种 Selenium 绕晕了。一方面原因是 Selenium 混乱的组件,Selenium 2 的内容和 1 混淆起来就找不着北了。
从官网上可以看到,Selenium项目包含4个组件:
- Selenium WebDriver 可本地运行或远程运行
- Selenium Grid 分布式Selenium
- Selenium IDE Firefox插件,有录制脚本的功能。支持自动录制动作和自动生成其他语言的自动化脚本。
- Selenium RC(Selenium 1) 服务器客户端组件,可远程控制子节点