Board logo

标题: 使用 Selenium RC 测试 web 应用程序(4) [打印本页]

作者: look_w    时间: 2018-9-23 12:31     标题: 使用 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)执行测试,您将得到一些异常,测试也会失败。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0