使用 Selenium RC 测试 web 应用程序(4)
 
- UID
- 1066743
|

使用 Selenium RC 测试 web 应用程序(4)
自动化测试借助一个 Apache Ant 脚本和几个目标的帮助,您已经在 Eclipse IDE 中运行了一些测试,您还可以完全自动化这些测试。拥有这个 Ant 脚本后,您可以使用 Hudson 或 CruiseControl(参见 )等工具来持续运行这些测试。
要自动化测试,可以使用一个采用 JUnit 目标的 Ant 脚本来执行一些 Selenium RC 测试。这个脚本如清单 5 所示。
清单 5. 运行 Selenium 测试的 Ant 脚本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| <project name="tested-webapp-tests" default="run-tests" basedir=".">
<property name="selenium.server.jar" value="path/to/selenium-server.jar" />
<property name="src" value="${basedir}/src" />
<property name="build" value="${basedir}/bin" />
<property name="lib" value="${basedir}/lib" />
<path id="classpath">
<fileset dir="${lib}" includes="**/*.jar" />
</path>
<target name="start-selenium-server">
<java jar="${selenium.server.jar}" fork="true" spawn="true">
<arg line="-timeout 30" />
</java>
</target>
<target name="compile-tests">
<javac srcdir="${src}" destdir="${build}" fork="true" />
</target>
<target name="run-tests" depends="compile-tests">
<junit printsummary="yes">
<classpath>
<path refid="classpath" />
</classpath>
<batchtest fork="yes">
<fileset dir="${src}">
<include name="**/*Tests.java" />
</fileset>
</batchtest>
</junit>
<echo message="Finished running tests." />
</target>
<target name="stop-selenium-server">
<get taskname="selenium-shutdown"
src="//localhost:4444/selenium-server/driver/?cmd=shutDown"
dest="result.txt"
ignoreerrors="true" />
</target>
<target name="run-all">
<parallel>
<antcall target="start-selenium-server">
</antcall>
<sequential>
<echo taskname="waitfor" message="Wait for proxy server launch" />
<waitfor maxwait="1" maxwaitunit="minute" checkevery="100">
<http url="http://localhost:4444/selenium-server/
driver/?cmd=testComplete" />
</waitfor>
<antcall target="run-tests">
</antcall>
<antcall target="stop-selenium-server">
</antcall>
</sequential>
</parallel>
</target>
</project>
|
这个 Ant 脚本有 3 个目标。第一个目标 start-selenium-server 以分叉(forked)和派生(spawned)模式运行 Selenium 服务器,以便它在后台运行。run-tests 目标实际执行 JUnit 测试,stop-selenium-server 目标通过调用一个向服务器发送一条 shutdown 命令的 URL 来停止服务器。
使用这样一个 Ant 脚本,可以以一种自动化方式运行一些 Selenium 测试,方法是计划这些测试,或者在一个持续集成工具中使用这个 Ant 脚本。参见 中的链接了解关于持续集成构建的更多信息。
在其他浏览器中运行测试目前为止,这些测试被编写为在 Firefox 中运行。但是,有时候需要在其他浏览器中测试这个 web 应用程序,以确保它能跨浏览器正常工作。
您可能已经注意到,当 Selenium 测试在 JUnit 测试的 setUp() 方法中得到设置时,*chrome 作为父节点的 setUp() 方法的第二个参数传递。这个参数启动一个 Firefox 浏览器实例。
要运行针对一个不同浏览器的测试,只需将浏览器的名称作为第二个参数提供。例如,*iexplore 使用 Internet Explorer 代替 Firefox。对 Opera 浏览器使用 *opera,或对 Apple Safari 使用 *safari。
注意,这些浏览器必须受到运行测试的操作系统的支持。因此,如果您企图对您的操作系统上不存在的浏览器(比如运行 Linux® 的系统上的 *safari 或 *iexplore)执行测试,您将得到一些异常,测试也会失败。 |
|
|
|
|
|