zoukankan      html  css  js  c++  java
  • TestNG+Ant自动运行测试

    如何在Ant的build.xml里面正确配置TestNG呢?

    1. 在build.xml里面定义testng任务,在classpath里面指定testng.jar

    <taskdef resource="testngtasks" classpath="${3rd.lib.dir}/testng.jar"/>

    2. 在build.xml里面新建一个 叫regression的target

    <project basedir="." default="regression" name="automation test">     <property name="base.dir" value="/home/maguschen/workspaces/automation"/>     <property name="testng.output.dir" value="${base.dir}/test-output"/>     <property name="3rd.lib.dir" value="${base.dir}/libs"/>     <property name="testng.file" value="testng.xml"/>       <taskdef resource="testngtasks" classpath="${3rd.lib.dir}/testng.jar"/>       <target name="clean">         <delete dir="${base.dir}/bin"/>     </target>     <target name="compile" depends="clean">         <mkdir dir="${base.dir}/bin"/>         <javac srcdir="${base.dir}/src" destdir="${base.dir}/bin" classpathref="classes" includeantruntime="off" debug="on" debuglevel="lines,vars,source"/>     </target>       <path id="classes">         <fileset dir="${3rd.lib.dir}" includes="*jar"/>         <fileset dir="${3rd.lib.dir}" includes="*zip"/>         <pathelement location="${base.dir}/bin"/>     </path>       <target name="regression" depends="compile">         <testng outputdir="${testng.output.dir}" classpathref="classes" delegateCommandSystemProperties="true">             <xmlfileset dir="${base.dir}" includes="${testng.file}"/>         </testng>     </target> </project>

    在target里面新建一个testng标签,里面需要设置的属性有:outputdir – 测试结果输出目录;classpathref – 那些自动化测试代码的目标路径,通常就是编译完成以后的那个目标路径,例如 xxx/bin;delegateCommandSystemProperties – 接受传递命令行参数作为系统变量,这个设置为true可以在调用Ant的时候通过 -Dfoo=value 把参数传递给TestNG;里面还有一个xmlfileset节点,这个节点就是指定testng.xml文件的目录以及具体文件。

    regression 的 target 有一个depends属性,意思就是跑regression之前需要做compile,而跑compile之前需要clean,应该很容易理解。直接在命令行里面运行:

    ant -Durl=http://www.google.com -f build.xml regression

    这里出现了 -Durl=http://www.google.com ,回到之前的配置,delegateCommandSystemProperties=”true”。如果这个参数为true,那么通过命令行的 -D 参数可以把一些变量传递给TestNG。譬如说TestNG的测试方法里面是有@Parameters({“url”})标签的话,就能通过ant -Durl=xxx 来传递url的值给到TestNG。例如

    @Parameters({"url"}) @Test public void search(String url){     WebDriver driver = new FirefoxDriver();     driver.get(url);     WebElement query = driver.findElement(By.name("q"));     query.sendKeys("Cheese");     query.submit(); }

    如果这样调用:ant -Durl=http://www.google.com -f build regression 。那么就会进入google的首页搜索,如果是: ant -Durl=http://magustest.com -f build regression ,那么就会找不到叫“q”的元素,呵呵。

    接下来只要把cron job配好就完成了

    15 * * * * ant -f /home/maguschen/workspaces/automation/build.xml regression

  • 相关阅读:
    Leetcode 121. Best Time to Buy and Sell Stock
    Leetcode 120. Triangle
    Leetcode 26. Remove Duplicates from Sorted Array
    Leetcode 767. Reorganize String
    Leetcode 6. ZigZag Conversion
    KMP HDU 1686 Oulipo
    多重背包 HDU 2844 Coins
    Line belt 三分嵌套
    三分板子 zoj 3203
    二分板子 poj 3122 pie
  • 原文地址:https://www.cnblogs.com/shihao/p/2324888.html
Copyright © 2011-2022 走看看