selenium 学习(3)- selenium RC服务

上一篇 / 下一篇  2014-07-25 15:38:25

最近在看TestNG,因为发现在学习selenium和junit的过程中,许多文章都指向了TestNG,并且在selenium的参数化时用TestNG更有用些,所以学习的进度慢了一些哦。

 今天要总结有关selenium RC的服务。我想原理就不学了,暂时应该还用不上吧。主要围绕ant如何启动RC服务展开的学习。(如果网友查询到我的博客,不能以我编写的顺序学习)

  • 命令行启动RC

 首先在下载的RC包里,解压后找到selenium-server.jar,然后在命令行窗口里启动它,具体启动格式如下(中括号内为可选参数):
  java -jar selenium-server.jar [-interactive] [options]
   -port <nnnn>: selenium服务器使用的端口号(默认 4444)
  -timeout <nnnn>: 我们放弃前(超时)所等待的秒数
  -interactive: 进入交互模式。参考教程获取更多信息
  -multiWindow: 进入被测试网站都在单独窗口打开的模式,并且selenium支持frame.
  -forcedBrowserMode <browser>: 设置浏览器模式(例如,所有的会话都使用"*iexplore",不管给getNewBrowserSession传递什么参数)
  -userExtensions <file>: 指定一个被载入到selenium的JavaScript文件
  -browserSessionReuse: 停止在测试间重新初始化和替换浏览器。
  -alwaysProxy: 默认情况下,我们尽量少的进行代理;设置这个标志将会强制所有的浏览器通讯都通过代理
  -firefoxProfileTemplate <dir>: 一般情况,我们在每次启动之前都生成一个干净的Firefox设置。您可以指定一个目录来让我们将您的设置拷贝过来,代替我们生成的。
  -debug: 进入debug模式,会有更多的跟踪调试信息
  -htmlSuite <browser> <startURL> <suiteFile> <resultFile>: 使用指定的浏览器(例如"*firefox")在指定的URL(例如"
http://www.google.com"),运行一个单独的HTML Selenese (Selenium Core)测试套件然后立即退出。您需要指定HTML测试套件的绝对路径还有我们将会生成的HTML测试结果文件的路径。
  -proxyInjectionMode: 进入代理注入模式,这个模式中selenium服务器作为进入测试程序的所有内容的代理服务器。在这个模式下,可以跨多个域访问,并且还支持如下附加参数:
  -dontInjectRegex <regex>: 附加的正则表达式,代理注入模式能够使用它决定是否进行注入
  -userJsInjection <file>: 指定一个JavaScript文件,将它注入到所有页面中
   -userContentTransformation <regex> <replacement>: 一个正则表达式,对所有被测HTML内容进行匹配;第二个string将会对替换所有匹配的内容。这个标志能够使用多次。一个简单的适合使用这个参数的例 子:如果你添加"-userContentTransformation https http"那么测试应用程序的HTML中的所有"https"字符串都会被替换为"http"。
  另外,还支持两种Java系统属 性:-Dhttp.proxyHost 和 -Dhttp.proxyPort。使用Selenium服务器作为代理服务器,Selenium RC一般重载你的代理服务器配置。使用这个参数适合在使用Selenium服务器代理的同时使用你自己的代理服务器。使用代理服务器时这样配置:
  java -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=1234 -jar selenium-server.jar
   如果你的HTTP代理服务器需要验证,你还可以在http.proxyHost和http.proxyPort后面设置-Dhttp.proxyUser 和 -Dhttp.proxyPassword。
   java -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=1234 -Dhttp.proxyUser=joe -Dhttp.proxyPassword=example -jar selenium-server.jar

目前在我看了,比较有用的参数可能就会使port,log(不过不知道为什么log不在以上的列表中),同时包括其后能在cmd窗口中查看log。

  • Ant方式启动/停止RC

其实就是在build.xml文件中利用ant的task运行启动RC的命令。

在build.xml中插入以下蓝色部分内容,得到一个完整的build.xml文件:

 加入了启动/停止RC的build.xml文件
 
-<projectname="DH"default="runtests"basedir=".">
 <propertyname="build.class"value="build/class"/>
<!<!-- START SERVER-->
<property name="ARGS" value="-Dibm.stream.nio=true -log selenium.log  -browserSideLog" />
        <property name="lib" value="C:\selenium\selenium-remote-control-1.0.3\selenium-server-1.0.3" />
<target name="start-server">
    <echo message="Starting server..." />
    <java jar="${lib}/selenium-server.jar" fork="true" spawn="true">
<arg line="-timeout 30" />
<arg line="${ARGS}" />
</java>
<echo message="Server is started." />
</target>

<!-- STOP SERVER-->
<target name="stop-server">
    <!-- selenium server url-->
    <get taskname="selenium-shutdown" src="http://localhost:4444/selenium-server/
            driver/?cmd=shutDownSeleniumServer" dest="result.txt" ignoreerrors="true" />
<echo taskname="selenium-shutdown" message="Errors during shutdown are expected" />
</target>

 
-<targetname="compiletests">
 <mkdirdir="build/class"/>
-<javacsrcdir="src"destdir="${build.class}">
-<classpath>
-<filesetdir="build/lib">
 <includename="**/*.jar"/>
 </fileset>
 </classpath>
 </javac>
-<copytodir="${build.class}">
-<filesetdir="resource">
 <includename="*.properties"/>
 </fileset>
 </copy>
 </target>
-<targetname="runtests"depends="compiletests">
-<junitfork="yes"printSummary="yes">
-<classpath>
 <pathelementlocation="build/lib/selenium-java-client-driver.jar"/>
 <pathelementlocation="build/lib/junit-4.0.jar"/>
 <pathelementlocation="${build.class}"/>
 </classpath>
 <formattertype="xml"/>
-<batchtesttodir="report">
-<filesetdir="src">
 <includename="**/*.java"/>
 </fileset>
 </batchtest>
 </junit>
-<junitreporttodir="report">
-<filesetdir="report">
 <includename="TEST-*.xml"/>
 </fileset>
 <reportformat="frames"todir="report"/>
 </junitreport>
 </target>
 </project>

创建好后,

A. 运行ant start-server 启动服务。注意在启动服务后,不会像我们用命令行直接启动一样看到log,但参数中有 -log selenium.log  ,就是说会将log重定向到selenium-server.jar文件所在的目录的selenium.log文件中。 

B. 运行ant stop-server 关闭服务。如果关闭失败,可以通过之间关闭进程来管理部分,RC的进程在系统中是以java进程的形式存在的,就找到相应的java进程关闭即可。还有有种方式,通过网页关闭,网页地址如下:http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer ,打开后显示“OKOK”,RC服务就被关闭掉了。


TAG:

 

评分:0

我来说两句

Open Toolbar