selenium ThoughtWorks专门为Web应用开发的自动化测试工具,适合用于功能测试与验收测试.也是近年来较为流行的开源测试工具.selenium这一强大的Web测试工具主要由selenium IDE, selenium core, selenium Remote Control 及selenium Grid组成. 其中selenium RC 应用较为广泛亦算是功能最为强大的一个,通常它会与其它工具结合起来使用以更好地发挥其强大功能.现介绍构建工具Ant与selenium结合用于测试java应用项目.Ant+selenium可以构建测试build,然后部署到相应的测试环境中,再编译执行生成测试报告,最后通过邮件发送测试报告.
对selenium 和ant 有所了解的同行应该看得出这个应用主要是使用Ant来构建版本,然后部署到测试环境中去,再然后执行测试脚本到生成发送测试报告.即是使用Ant这个强大的构建部署工具帮我们做那些外围的工作,使测试跟开发完美结合,让selenium 自动化测试应用完全自动化.所以这个应用主要是Ant的应用.
介绍下我当时使用情况.当时一个项目中使用selenium RC来做自动化测试,主要是冒烟测试跟回归测试.我们测试所用的build是在香港开发部门每天使用Bamboo持续构建的,所以我们必须用Ant通过网络从上面拿相应的build下来,修改相应的配置文件,然后部署到相应的测试环境中去. 部署好测试系统后,我们就可以通过Ant编译运行我们的测试脚本(用java写的selenium RC 脚本).运行完成后用Ant自带的方法来生成测试报告,最后还是能过Ant以邮件发送报告.所以,我们只需要用鼠标点一下,甚至不用点而用其它工具每天自动执行.
当然这也并不是什么很高明的应用,但借助Ant强大功能,使用selenium自动化测试做得更为彻底,将测试各个步骤很好地连接起来,当然带来更高效率.这个应用主要就是Ant的使用,难点也在Ant的使用,因为其中涉及到不少的Ant tasks.不过它官网上都有详细的使用介绍:http://ant.apache.org/manual/index.html. 现贴出我之前使用的ant build 文件,有兴趣的同行可以参考下.
<?xml version="1.0"?>
<project name="camp-testuff" default="main">
<!-- properies -->
<property file="./resources/build.properties" />
<!-- 定义classpath -->
<path id="master-classpath">
<fileset file="${lib.dir}/*.jar"/>
<pathelement path="${classes.dir}" />
<pathelement path="${resources.dir}" />
<pathelement path="${src.dir}" />
</path>
<!-- 初始化任务 -->
<target name="init">
<java jar="${selenimhome}/selenium-server.jar" fork="true" spawn="true" />
</target>
<!--下载更新build-->
<target name="download" if="isdowload">
<get src="${targeturl}" dest="${filePath.dir}/${filename}" verbose="true" usetimestamp="true" />
</target>
<!--更新编绎war文件-->
<target name="war" depends="download">
<unwar src="${filePath.dir}/${filename}" dest="${filePath.dir}/project" />
<propertyfile file="${filePath.dir}/project/WEB-INF/classes/jdbc.properties" comment="My properties">
<entry key="jdbc.url" value="${jdbc.url}" />
<entry key="jdbc.username" value="${jdbc.username}" />
<entry key="jdbc.password" value="${jdbc.password}" />
</propertyfile>
<propertyfile file="${filePath.dir}/project/WEB-INF/classes/systemConfiguration.properties" comment="My properties">
<entry key="mail.host" value="${mail.host}" />
</propertyfile>
<war destfile="${filePath.dir}/${projectfile}" needxmlfile="false">
<fileset dir="${filePath.dir}/project" includes="**/*.*" />
</war>
</target>
<!-- 部署项目 -->
<target name="deploy">
<mkdir dir="${tomcatlog.dir}" />
<mkdir dir="${tomcatconfig.dir}" />
<taskdef resource="cargo.tasks">
<classpath>
<pathelement location="${cargo-uberjar}" />
<pathelement location="${cargo-antjar}" />
</classpath>
</taskdef>
<cargo containerId="tomcat5x" home="D:\tomcat" ōutput="${tomcatlog.dir}/output.log" log="${tomcatlog.dir}/cargo.log" action="start" failonerror="false" wait="false">
<configuration home="${tomcatconfig.dir}">
<property name="cargo.servlet.port" value="8080" />
<property name="cargo.logging" value="high" />
<property name="cargo.jvmargs" value="-Xmx500m"/>
<deployable type="war" file="${filePath.dir}/${projectfile}" />
</configuration>
</cargo>
</target>
<!-- 编译脚本-->
<target name="compile" descrīption="compile the source files">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" failonerror="false" destdir="${classes.dir}">
<include name="**/*.*" />
<exclude name="**/*ViewCustomerTest.*" />
<exclude name="**/*SubmittingMaintenanceApplicationTest.*" />
<exclude name="**/*SubmittingMaintenanceApplicationTest.*" />
<exclude name="**/*AddMaintenance.*" />
<exclude name="**/*EditMaintenance.*" />
<classpath refid="master-classpath" />
</javac>
</target>
<!-- 测试 Junit脚本-->
<target name="test" descrīption="run junit test">
<tstamp>
<format property="stratTime" pattern="MM/dd/yyyy HH:mm:ss" />
</tstamp>
<mkdir dir="${report.dir}" />
<junit printsummary="on" haltonfailure="false" failureproperty="tests.failed" showoutput="true">
<classpath refid="master-classpath" />
<formatter type="xml" />
<batchtest todir="${report.dir}">
<fileset dir="${src.dir}">
<include name="${testname}" />
<exclude name="**/*ViewCustomerTest.*"/>
<exclude name="**/*SubmittingMaintenanceApplicationTest.*"/>
<exclude name="**/*SubmittingMaintenanceApplicationTest.*"/>
<exclude name="**/*AddMaintenance.*"/>
<exclude name="**/*EditMaintenance.*"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- 生成报告 -->
<target name="junitreport" depends="test">
<mkdir dir="${report.dir}/html" />
<junitreport todir="${report.dir}">
<fileset dir="${report.dir}" includes="TEST-*.xml" />
<report format="frames" todir="${report.dir}/html" />
</junitreport>
</target>
<!-- 发送测试结果 -->
<target name="SendEmail" depends="junitreport">
<tstamp>
<format property="endTime" pattern="MM/dd/yyyy HH:mm:ss " />
<format property="endTime2" pattern="MM/dd/yyyy " />
<format property="endTime3" pattern="yyyyMMddHHmmss " />
</tstamp>
<zip destfile="${report.dir}/html/Report.zip">
<zipfileset dir="${report.dir}/html" includes="**/*.*" />
</zip>
<mail mailhost="${host}" messagemimetype="${messagetype}"
mailport="${mailport}" subject="Test Report_${endTime3}"
user="${user}" password="${password}" messagefile="${messagefile}"
tolist="${tolist}" cclist="${cclist}">
<from name="${fromname}" address="${fromaddress}" />
<attachments>
<fileset dir="${report.dir}/html">
<include name="*Report.zip" />
</fileset>
</attachments>
</mail>
</target>
<!-- 清除生成文件(报告) -->
<target name="clean">
<delete dir="${tomcatconfig.dir}" />
<delete dir="${report.dir}" />
<delete dir="${classes.dir}" />
<delete file="${filePath.dir}/project.war" />
<delete dir="${filePath.dir}/project" />
<sql driver="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://${jdbc.urlAndPort}"
userid="${jdbc.username}"
password="${jdbc.password}"
>
drop schema ${jdbc.schema};
<classpath location="${lib.dir}/mysql-connector-java-5.0.5.jar"/>
</sql>
</target>
<!-- 测试完成关闭计算机 -->
<target name="shutDown">
<sleep minutes="2" />
<exec executable="shutdown">
<arg value="-s" />
</exec>
</target>
<!-- Stop tomcat -->
<target name="stoptomcat">
<taskdef resource="cargo.tasks">
<classpath>
<pathelement location="${cargo-uberjar}" />
<pathelement location="${cargo-antjar}" />
</classpath>
</taskdef>
<cargo containerId="tomcat5x" home="D:\tomcat" action="stop">
<configuration home="${tomcatconfig.dir}"/>
</cargo>
</target>
<!-- 主要目标 -->
<target name="main">
<!-- 清理并初始化环境 -->
<antcall target="clean" />
<antcall target="init" />
<!-- 部署项目 -->
<antcall target="war" />
<antcall target="deploy" />
<!-- 编译脚本 -->
<antcall target="compile" />
<!-- 测试并发送报告 -->
<antcall target="SendEmail" />
<antcall target="stoptomcat" />
<antcall target="shutDown" />
</target>
</project>
分享到:
相关推荐
本文旨在探讨如何利用Selenium、JUnit和Hudson构建一个自动化测试框架。Selenium是一款强大的开源Web功能测试工具,支持多种编程语言,如Ruby、Python、Java、Perl和C#。它能直接在浏览器中运行测试,模拟真实用户的...
【标题】"selenium+testng页面测试"涉及的核心知识点主要围绕自动化测试工具Selenium以及测试框架TestNG展开,同时也提到了报告生成和错误处理机制。以下是对这些知识点的详细阐述: 1. **Selenium**: Selenium 是...
Selenium自动化测试培训旨在提供全面的知识和技能,帮助学员掌握Selenium工具的使用,自动化测试脚本的设计,以及自动化测试框架的构建。 ### 自动化测试基础 在开始学习Selenium之前,理解自动化测试的基本原理至...
通过学习和理解这个例子,你可以掌握自动化测试的基本流程,了解如何利用Ant管理构建过程,如何使用Selenium进行Web应用的自动化测试,以及如何利用TestNG进行更高效、更全面的测试。这将对你的软件测试工作带来显著...
Selenium是一款强大的Web自动化测试工具,它能够模拟用户行为,例如点击、输入等,但对文件上传的处理相对较弱。而AutoIt则是一个专门用来自动化桌面应用程序操作的脚本语言,它可以帮助我们处理Selenium无法直接...
在自动化测试中,ANT可以用来执行测试脚本、生成测试报告,甚至可以配置为在不同的环境之间部署应用。 结合这三个工具,我们可以创建一个自动化测试流程来执行多浏览器兼容性测试。首先,使用ANT编写构建文件,配置...
总之,"selenium ant 最新版本"代表了将Selenium的自动化测试能力与Ant的构建管理功能相结合的最新实践,为Web应用的持续集成和测试提供了强大的支持。通过这种方式,开发者可以更高效地进行自动化测试,确保代码的...
这些插件可能包括源代码管理工具(如Git或SVN)、构建触发器、构建工具(如Maven或Ant)以及自动化测试框架(如JUnit或Selenium)。 接下来,配置Jenkins的工作流: - **创建新Job**:在Jenkins中创建新的构建Job...
这些工具的组合可以有效地实现自动化测试和监控,从而提升软件开发的效率和质量。以下将详细介绍这些工具以及它们集成时所需的一些关键插件。 首先,Jenkins是一款开源的持续集成服务器,用于自动化各种任务,包括...
2. **接口自动化测试项目**:在高质量文化内容社区项目中,工程师利用 jmeter 的参数化功能、Mysql 数据库进行接口断言,通过 Jenkins、Ant 和 Jmeter 实现持续集成,并使用 Tapd 进行用例和缺陷管理。 3. **综合性...
本文档主要探讨了如何利用Apache Ant(简称ANT)脚本进行代码质量评价,并将其应用于自动化测试工具的开发和集成。 一、自动化测试技术与ANT 自动化测试是一种提高测试效率、减少人为错误的策略,它涵盖了软件生命...
Selenium 是一个强大的开源自动化测试框架,用于模拟真实用户在Web应用程序中的交互。它支持多种浏览器和编程语言,使得Web应用的功能测试变得简单而高效。本文主要围绕Selenium的使用展开,包括其版本介绍、安装...
Selenium是一个广泛用于Web应用程序自动化测试的开源框架,它的核心功能是通过模拟用户交互来验证网页的功能。Selenium框架包括三个主要组件:Selenium-IDE、Selenium-RC和Selenium-Core。 Selenium-IDE是一个Fire...
自动化测试工具如Selenium和Junit,以及持续集成工具如Jenkins,都是这个领域的关键组件。 接下来,我们看到“java项目.doc”,这表明可能有针对Java编程语言的特定自动化项目管理内容。Java是一个广泛使用的后端...
Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。这个压缩包 "selenium-java-2.47.1.zip" 包含了Selenium的Java版本,具体是2.47.1的更新,发布于2015年8月。这个版本在当时是一个稳定且广泛使用...
本文将介绍如何使用Ant进行JUnit测试,结合DbUnit执行组件测试,利用JUnitPerf分析性能瓶颈,以及运用Selenium进行Web功能测试,同时还将展示如何借助Cobertura计算代码覆盖率和CruiseControl实现持续集成。...