Selenium 参考资料
工具特色
- 开发人员,测试人员均可使用的一款测试工具
- 支持IE、FireFox等浏览器;测试环境可以和程序代码一同部署于应用服务器下,也可单独搭建。
- 用于测试驱动开发TDD、Smoke Test、Regression、Acceptance testing等
- 免费、脚本简单(HTML files)、不需要额外的环境
从Selenium IDE 开始
安装
- 安装Firefox
- 下载Selenium插件:http://selenium-ide.openqa.org/
- 将插件拷贝至Firefox/extensions目录下(通常为C:\Program Files\Mozilla Firefox\extensions\)
- 重启Firefox,会执行自动安装。
- 在“Tools”下能够看到“Selenium IDE”插件安装完毕。
录制
录制好的脚本
Selenium html脚本,又称为Selenese,结构清晰简单:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Becky02</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">Test02</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>http://www.google.com/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>q</td>
<td>ddddddd</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>btnG</td>
<td></td>
</tr>
<tr>
<td>assertText</td>
<td>sd</td>
<td>Web</td>
</tr>
</tbody></table>
</body>
</html>
是一个HTML Table:
Test02 |
open |
http://www.google.com/ |
|
type |
q |
ddddddd |
clickAndWait |
btnG |
|
assertText |
sd |
Web |
HTML Table 由三列构成:
First Column: Selenium command,命令或断言。
Second Column: Target of command,命令或断言的目标(target)。这里可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但 XPath 和 DOM 定位符也是受支持的;
Third Column: Optional parameter,用于为命令或断言指定参数的值。例如,当使用 type 命令时,这一列可能就是一个文本域所期望的值。
在selenium core的发布包里,也有此reference,下文中即将提到。
对于自动化测试来说,任何录制/回放工具得到的脚本,都是要进行修改的,这样能够增加脚本的健壮性。将脚本存为html文件。最终的脚本也要至少回放一遍通过才能算完成,在Selenium IDE中,点播放按钮观看放映。
Selenium Core使工作更有条理
下载安装
Selenium Core位于:
http://selenium-core.openqa.org/
它是一个zip包,需要应用服务器的支持,此处对于应用服务器的部署等省略,将zip包放入待测试的Web程序下,启动应用服务器,打开
URL:http://localhost:8080/selenium/ ,进入 “Selenium
TestSuite”。TestSuite用于将具有类似功能的一些测试用例编成一组,以便它们按顺序运行。TestSuite和Test
Cases一样,都是用简单的 HTML 表编写的。Selenium 执行的缺省TestSuite的名称是
TestSuite.html,位于tests文件夹下。
<body onload="filterTestsForBrowser()">
<table id="suiteTable" cellpadding="1"
cellspacing="1"
border="1"
class="selenium">
<tbody>
<tr><td><b>Test Suite</b></td></tr>
<tr unless="browserVersion.isSafari" ><td><a href="./events/TestMouseEvents.html">TestMouseEvents</a></td></tr>
<tr><td><a href="./TestBrowserVersion.html">TestBrowserVersion</a></td></tr>
<tr><td><a href="./TestJavaScriptAttributes.html">TestJavaScriptAttributes</a></td></tr>
<tr unless="browserVersion.isKonqueror || browserVersion.isSafari"><td><a href="./events/TestKeyEvents.html">
TestKeyEvents</a></td></tr>
<tr unless="browserVersion.isKonqueror || browserVersion.isSafari"><td><a href="./TestVisibility.html">TestVisibility</a></td></tr>
<tr><td><a href="./TestFramesOpen.html">TestFramesOpen</a></td></tr>
<tr><td><a href="./TestFramesNested.html">TestFramesNested</a></td></tr>
<!--更多省略,请自行阅读文档-->
以上是一个官方版TestSuite的摘录,参照例子,组织自己的Test
Cases,写成TestSuite,放入tests文件夹,便可在浏览器中执行(适用于各种浏览器),例
如:http://localhost:8080/selenium/core/TestRunner.html?test=../tests
/myTestSuite.html
值得注意的是:Selenium Core的tests里包含了很多Selenium Command的例子,值得好好研习。
Selenium Core的不足之处
-
它需要和应用同时部署于应用服务器之下,在有些项目中并不方便操作。
-
它不能将任何测试结果写到磁盘上(因为它是用javascript写的,它不允许向磁盘写数据),当然你可以将测试结果发送到另外一台服务器保存,这就是下文即将介绍的Selenium Core HTA 和 Selenium RC。
Selenium Core HTA
Core HTA 也在Selenium发布包内,仅适用于IE浏览器,不需要远程安装,也不需要Java支持。在命令行里执行命令即可:
C:\selenium\core>TestRunner.hta
"test=..%2Ftests%2FTestSuite.html&auto=true&close=true&resultsUrl=results.html&save=true"
根据实际情况修改几个参数,便可执行自己的TestSuite了。