介绍
Selenium 是 ThoughtWorks 专门为 Web 应用而开发的自动化测试工具,适合进行功能测试、验收测试,其最大的优势有几点:
<!--[if !supportLists]-->1) <!--[endif]-->可直接运行在浏览器之上,所见即所得,就像真实用户所做的一样。Selenium 的核心,也称 browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令
<!--[if !supportLists]-->2) <!--[endif]-->支持多操作系统(Windows, Mac OS和Linux)和各种浏览器Internet Explorer、Mozilla 和 Firefox,更容易发现浏览器的不兼容性
<!--[if !supportLists]-->3) <!--[endif]-->支持两种开发脚本的模式test runner (HTML文件)和 driven(脚本语言编写),其语言包括Java, .NET, Perl, Python 和 Ruby. 使用 driven 脚本,测试有一部分在浏览器之外运行,而如果使用 test runner 脚本的话,测试是完全在浏览器中运行的。
但是Selenium是轻量的测试框架, 脚本所处理的测试用例构成简单,其实质就是通过HTTP协议,发送请求(request)来完成测试用例,所以很困难处理业务逻辑关系强的测试用例。
更多的讨论: http://forums.openqa.org/index.jspa
Selenium 命令
Selenium 命令分成两类 —— 操作(action) 和断言(assertion):
* 操作模拟用户与 Web 应用程序的交互。例如,单击一个按钮和填写一个表单,这些都是常见的用户操作,可以用 Selenium 命令来自动化这些操作。
* 断言验证一个命令的预期结果。常见的断言包括验证页面内容或当前位置是否正确。
在 Selenium 网站上可以找到可用命令的完整列表。通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作
组成
* Selenium IDE:一个firefox的plug-in,可以录制和回放并保存一些test cases, 可以生成一些简单的基于rc 模式的简单code. (相当于Jmeter的gui模式和jmeter脚本的生成-badboy)
* Selenium Core. 整个测试机制的核心部分,即有assertion(断言) 机制的test suite runner。它由一些纯js代码组成, 可以运行在windows/linux的不同browser上 (相当于Jmeter 的runner 跟 Assertion)
* Selenium Remote Control:一个代理与控制端, 可代替Selenium core/ Selenium IDE的client端(相当于通过编程来实现一切),是支持多语言的. (相当于Jmeter的client/server模式,但Selenium Remote Control更强一些)
支持的平台
Windows:
o Internet Explorer 6.0
o Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
o Seamonkey 1.0, Opera 8
Mac OS X:
o Safari 1.3+
o Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
o Seamonkey 1.0, Camino 1.0a1
Linux:
o Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
o Konqueror
部署Selenium
下载地方:http://www.openqa.org/selenium/
selenium目录下的内容:
<!--[if !supportLists]-->l <!--[endif]-->devtests:试验性功能 dom-images: 查看DOM用图片
<!--[if !supportLists]-->l <!--[endif]-->dom-styles: 查看DOM用样式表
<!--[if !supportLists]-->l <!--[endif]-->html-xpath: Xpath库
<!--[if !supportLists]-->l <!--[endif]-->jsmock: javascript mock library
<!--[if !supportLists]-->l <!--[endif]-->jsunit: javascript unit test library
<!--[if !supportLists]-->l <!--[endif]-->tests: samples(以这个为基础开发测试用例)
<!--[if !supportLists]-->l <!--[endif]-->核心js文件和html文件
<!--[if !supportLists]-->l <!--[endif]-->如果想要测试自己开发的发布在服务器端的页面,需要把selenium配置在同一个服务器下: Apache :直接将selenium目录拷贝至htdocs(Apache的确省根目录)目录下,然后启动Apache,用地址http://server:8080/selenium/TestRunner.html访问例子。
<!--[if !supportLists]-->l <!--[endif]-->Tomcat :直接将selenium目录拷贝至webapps目录下,启动Tomcat,用地址http://server:8080/selenium /TestRunner.html访问例子。:
<!--[if !supportLists]-->l <!--[endif]-->IIS:建立一个虚拟目录selenium,将该虚拟目录直接指向实际的selenium目录,用地址 http://server/selenium/TestRunner.html访问例子
Test runner 脚本开发模式
Selenium test runner 脚本,就是测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的,即使对于非技术人员来说,test runner 脚本也易于阅读和编写。如 清单 1 所示。
原文转自:http://www.uml.org.cn/Test/200607285.htm