在很久很久以前(大概在2004年这样吧),芝加哥ThoughtWorks公司有个叫Jason Huggins的人,他构建一个名称为“JavaScriptTestRunner”程序用来测试的Web应用程序的行为,完成这种浪费“时间和金钱”的应用程序测试工作。 他以一种使用HTML文件中的关键字驱动方式编写测试的方式构建它。
慢慢地,他开始向大众演示这种工具。 很快,有人开始讨论开源这款工具,将其作为一个可重用的框架,以便自动化来测试基于Web的应用程序,这就是Selenium核心的故事。
核心有一些限制,如“同源起义政策”。先来了解一个起源是什么。
同源只不过是一个URL的方案,主机和端口。 因此,根据此政策,尝试访问 http://abc.org/sample.html 检索到文档的DOM,因为主机不同,不允许从 http://abc.com/doc.html 检索到文档。 另一个例子,已经从 http://example.com/(端口:80) 启动了一个JavaScript程序,但是 http://example.com(port:443) 由于端口不同也会变得无法访问。
现在,一个叫Paul Hammant的人同样也是来自ThoughtWorks,他提出Selenium 1或Selenium RC(远程控制)来规避这一限制。 这有一个Selenium客户端和一个Selenium服务器。 客户端将向服务器发送命令,此服务器将使用JavaScript来驱动浏览器。它不直接挂接到任何浏览器API。 此外,它还支持多种编程语言,稍后将详细介绍。
Selenium IDE不仅是最简单的工具,也是唯一需要最少编程知识来提供自动化测试脚本的工具。顺便说一下,这是“日本制造”产品。开发这个工具的作者是:Shinya Kasatani。他意识到Selenium Core代码可以被包装到IDE(集成开发环境)模块中并可以插入Firefox浏览器。 它具有比预期更好用的记录和使用功能。
在2007年左右,ThoughtWorks还有一个叫作:Simon Stewart的人正在开发一种名为WebDriver的Web测试工具,该工具不依赖于JavaScript。 与Selenium RC相比,它不仅具有每个浏览器的客户端,而且还具有“更高级别”的API。 这两个项目合并后变成最新的Selenium或Selenium2。
现在,可以得到结论:
- Selenium RC = Selenium 1
- Selenium与WebDriver = Selenium 2合并