Selenium 是一种 Web 应用的自动测试工具,通过模拟用户对 Web 页面的各种操作,可以精确重现软件测试人员编写的 Test Cases 步骤。Selenium 包含三个工具:Selenium-IDE,Selenium-RC 以及 Selenium-Core。其中,Selenium-Core 是驱动 Selenium 工作的核心部分,作为一个用 JavaScript 编写的测试引擎,它可以操作 Web 页面上的各种元素,诸如:点击按钮、输入文本框,以及断言 Web 页面上存在某些文本与 Web 元素等。
Selenium-IDE 是一个 Firefox 插件,能够录制回放用户在 Firefox 中的行为,并把所记录的 Selenese (Selenium Commands) 转化为 Java/C#/Python/Ruby 等语言,在 Selenium-RC 中修改复用。对于较为复杂的 Test Cases,Selenium-IDE 的功能有限,往往用它录制大致的步骤,再转化为测试人员熟悉的编程语言,在此基础上完善,形成更为强大且灵活的 Selenium-RC Test Cases。
Selenium-RC(Selenium Remote Control)在 Web 浏览器与需要测试的 Web 应用间架设代理服务器(Selenium Server),使得 JavaScript 引擎与被测 Web 应用同源,绕开同源策略的限制(Same Origin Policy),进而取得对 Web 页面进行各种操作的权限。
Selenium IDE
Selenium-IDE 是一个 Firefox 插件,由"Command(命令/动作)" "Target(目标/对象)"及其"Value(值)"构成三段式脚本语言(Selenese)......
Selenium Core
Selenium Core是一款可以一次组织大量的测试用例来进行Web软件的功能或系统测试的强大工具......
Selenium RC
Selenium RC支持Java C# php python Ruby Pear等多种编程语言。其中任务一种语言都可以由Selenium IDE的三段测试脚本转换过来。
能把Selenium RC脚本和JUnit单元测试结合起来,既能涵盖功能测试,又能涵盖数据或后台Java类测试,从而构成一个完整的Web应该测试解决方案。
1.安装与入门
首先要安装JRE,从http://seleniumhq.org/download/下载Selenium RC安装包,解压后在E:\selenium\selenium-remote-control-1.0.3\selenium-server-1.0.3目录下存放了相关的jar包。
2.启动Selenium RC Server
启动Selenium RC服务,启动cmd模式,输入: java -jar selenium-server.jar -interactive。
3.Selenium RC Server的操作
Selenium RC Server的操作,在cmd模式下输入:c:\>cmd=getNewBrowserSession&1=*firefox& 2=http://www.google.com,此时会打开firefox进入google.com主页......
4.机理......
Selenium RC Server的操作,在cmd模式下输入:c:\>cmd=getNewBrowserSession&1=*firefox& 2=http://www.google.com,此时会打开firefox进入google.com主页。
5.HTTPS的配置
如要能够运行HTTPS,须对IE进行配置。FireFox已将证书打包入了配置文件中。为IE导入SSL证书,在E:\selenium \selenium-remote-control-1.0.3\selenium-server-1.0.3\sslSupport中将证书 cybervillainsCA.cer导入即可。最后在启动Selenium RC Server服务时可输入:java -jar selenium-server.jar -log c:\selenium.log -trustAllSSLCertificates来启动服务。
6.编写测试脚本
这里以PHP为例,可将Selenium-IDE录制的脚本转为php脚本。 通过java -jar selenium-server.jar -log c:\selenium.log -trustAllSSLCertificates启动服务。在cmd模式中输入c:\>phpunit e:\selenium\selenium-remote-control-1.0.3\selenium-php-client-driver-1.0.1/GoogleTest.php运行php测试脚本。
7.如何与Junit集成......
Selenium Grid
Selenium Grid是Selenium的一个扩展,提供了一个类似于网络集线器(hub)的远程测试控制器,能够测试请求发送到若干个远程机器的Selenium-RC上......