初识Selenium还是在2010年的4月份,那时刚刚入职满一年。由于项目的需要,需要我们开发一套拨测系统,能够探测网络上的业务。于是在网上找各种工具进行试用,包括商业软件RFT(IBM),QTP (HP), SilkTest等商业软件,当然也有WATIR,但是都不满意。一次偶然的机会,碰到了Selenium,自此就深深的喜欢上了它。
其实,早都想写一些关于Selenium的一些技术文章,但是苦于工作压力,迟迟未能如愿。今天,工作之余整理文件,发现角落里的Selenium,于是拿出分享给大家。由于本人文笔欠佳,加上技术更新日新月异,如有讲述不当或错误之处,还望指正。
这个系列的教程将分为四个部分讲解:
(1) 开卷有益 : 了解Selenium 的前世今生
(2) 手中有剑 : Selenium的IDE
(3) 拨云见日 : 使用Selenium做自动化测试
(4) 羽化成蝶 : 使用Selenium搭建自己的自动化测试框架
第一部分: 开卷有益
1 Selenium的发展历史
在2004年,ThoughtWorks公司有个叫做Jason Huggins(詹森哈金斯)的 家伙,他负责测试一个Web应用程序。这个聪明的家伙,厌倦了一遍遍的手工来测
试这些Web应用程序。于是乎,他写了一些Javascript代 码,这些代码模拟手工操作Web页面的。——这些代码(称之为Javascript 库)后来就是Selenium
Core,是Selenium RC和Selenium IDE的基础代码。
Selenium一问世后,就得到了广泛的使用。其中Google就是Selenium的重度用户了。但是Selenium有它的缺陷的:它是将 Javascript代码注入到浏览器中
的,浏览器对Javascript的执行是有些安全限制的,导致有些应用是难以通过Selenium来验证功能 的。Google可是人才济济啊,难不倒他们的。在2006年,
Google的一位工程师Simon Stewart,他开始了一个项目WebDriver,它采用了一种直接的原生的(native)的方式来驱动浏览器,以此避免Javascript的限制。
此时,Selenium和WebDriver是各自发展的。到了2008年底,两者计划合并了。经过了两年多的合并开发(我也不晓得为啥会花那么长时间才合并好),Selenium
2.0终于在2011.6月份发布了。对上述内容总结绘制了如下的表格:
2 Selenium软件概览
Selenium软件包含很多的功能模块和组件(官网),每个组件又有着不同的用途,包括:
(1)Selenium IDE
Selenium IDE是一个录制和回放工具,目前只支持Firefox浏览器,截至目前,最新的版本为1.10.0,可以在官网下载。
(2)Selenium Server
Selenium1 和 Selenium2的运行支撑环境,使用Selenium进行测试必须要使用该文件。
(3)Selenium Client
客户端的开发包,就是你需要引用该包中的API进行selenium进行测试开发和控制。
(4)Driver
包括IEDriverServer.exe,ChromeDriverServer.exe等(Firefox不需要哦),在使用Selenium2(WebDriver)时,必须下载相应的浏览器驱动程序才能完成测试的执行。
(5)Selenium Grid
如果要做分布式的测试和测试端的管理,就需要使用Selenium Grid组件了。更多内容可以点击这里查看
3 Selenium特点
Selenium是一款强大的WEB自动化测试工具,表现在:
(1) 测试直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度测试应用程序。
(2) 使浏览器兼容性测试自动化成为可能。兼容Firefox,Chrome,IE ,Opera等浏览器,这是其他商业软件也望尘莫及的。
(3) 使用简单,可生成多种语言的用例脚本。通过IDE可以将测试用例导出为Ruby,C# , JAVA和Python等语言格式的代码。
(4) Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例。这些测试用例在浏览器里回放,同时可将用例转换为其他语言的自动化脚本。
(5) 可以支持多种平台(Window, Linux, Mac, Android)。据我了解,目前还没有那种工具能支撑这么多种平台。
(6) 轻便,小于50M且不用安装(所有的包加在一起)。
(7) 提供多种语言的开发包,包括C#, JAVA, Ruby和Python。 总有一种是你熟悉的。
4 Selenium架构
这里我给出一个从其他地方得到的一张图(具体忘记从什么地方得到的了,如果有人知道请告诉我,我增加上),大家看着理解吧,很简单。
5 Selenium相关资料网址
官网:http://seleniumhq.org/
源码:http://code.google.com/p/selenium/
中文网:http://seleniumcn.cn/
FAQ: http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions
WiKi: http://code.google.com/p/selenium/w/list
教程:http://marakana.com/bookshelf/selenium_tutorial/selenium2.html
分享,让我们更快乐。