selenium+testng+ant+jenkins 手記

會不會搭建測試平臺是通常測試工程師和高級測試工程師分水嶺 ----tobecrazyhtml

咱們項目有現成的測試平臺,使用的是selenium grid+testng+ant+jenkins+VMjava

 

可是我平時用的是selenium+testng並未體驗過使用ant 和jenkins,今天心血來潮嘗試使用一下jenkins.web

Jenkins簡介:apache

  •  Jenkins是一個開源框架
  •  Jenkins可執行重複的jobs,主要使用在兩方面 

            1.可持續build或test projectwindows

            2.監控外部執行的jobscookie

  •   自動build發郵件。。。。。

    瞭解更多看https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins框架

    首先安裝Jenkins,下載windows平臺的版本eclipse

    因爲安裝比較簡單,這裏就再也不介紹jvm

安裝ant,下載ant zip文件,解壓到C:\Program Files\apache-ant-1.9.4測試

在系統變量添加ANT_HOME

以後再CMD運行ant -version

若顯式:Apache Ant(TM) version 1.9.4 compiled on April 29 2014 

說明ant 配置成功

  1. 使用ant 編譯工程,必須有一個xml文件,默認build.xml
  2. 每一個build文件配置一個default target,執行ant命令會執行這個target

首先了解一下簡單使用ant

使用note pad 寫一個class,保存爲Test java

public class Test {
    /**
     * @author tobecrazy
     * 
     */
    public static void main(String[] args) {
    System.out.println("This ANT HOME ");
    System.out.println(System.getenv("ANT_HOME"));

    }

}

在cmd嘗試編譯:javac Test.java

如官方沒有報錯,恭喜你,能夠進行下一步

使用ant所作的操做和命令行輸入是同樣的,只不過全部的命令轉換爲xml標籤:

此次配置以下:

每一個target是一個操做,clean是刪除build目錄,compile是編譯,run是執行java class

<?xml version="1.0"?>
<project name="AntTest" default="run" basedir="." >
<!-- 默認target是run,運行ant命令直接執行run -->
    <echo message="The base dir is: ${basedir}" />
    <target name="clean">
       <delete dir="build"/>
    </target>
    <target name="compile" depends="clean">
    <!-- 編譯java文件依賴clean -->
       <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>
    
    <target name="run" depends="compile">
    <!-- 運行class文件,依賴compile -->
     <echo message="Compile dir is:  ${basedir}\build\classes" />
      <java classname="Test">            
      <classpath>               
      <pathelement path="build/classes"/>            
      </classpath>        
      </java>
    </target>
</project>

以後在命令行輸入ant(cmd切換到該目錄)

結果以下:

        

D:\AntTest>ant
Buildfile: D:\AntTest\build.xml
[echo] The base dir is: D:\AntTest

clean:
[delete] Deleting directory D:\AntTest\build

compile:
[mkdir] Created dir: D:\AntTest\build\classes
[javac] D:\AntTest\build.xml:11: warning: 'includeantruntime' was not set, d
efaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to D:\AntTest\build\classes

run:
[echo] Compile dir is: D:\AntTest\build\classes
[java] This ANT HOME
[java] C:\Program Files\apache-ant-1.9.4

BUILD SUCCESSFUL
Total time: 1 second

爲了配合使用selenium webdriver打開eclipse建立名爲Demo的項目

接下來就是使用Jenkins,若是你的Jenkins安裝成功,打開http://localhost:8080/會顯示Jenkins主頁

點擊新建->輸入項目名->選擇「構建一個自由風格的軟件項目」->構建->增長構建步驟->選擇invoke ANT
接下來配置以下:

 

此時準備ant build.xml放到工程的根目錄

build.xml內容以下,testng 和selenium的jar包須要加載,因此設置

<path id="run.classpath">
因爲項目使用的UTF-8編碼,在編譯時報錯因此添加
  <javac srcdir="src" destdir="build/classes" debug="on" encoding="UTF-8">


<?xml version="1.0"?>
<project name="Demo" default="run" basedir=".">
    <echo  message="import libs" />
    <path id="run.classpath">
        <fileset dir="${basedir}">
            <include name="lib/testng.jar" />
            <include name="lib/sikuli-script.jar" />
        </fileset>
        <fileset dir="${basedir}/lib/selenium">
            <include name="selenium-java-2.45.0.jar" />
            <include name="libs/*.jar" />
        </fileset>
    </path>
    <taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="run.classpath" />
    <target name="clean">
        <delete dir="build"/>
    </target>
    <target name="compile" depends="clean">
        <echo message="mkdir"/>
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes" debug="on" encoding="UTF-8">
            <classpath refid="run.classpath"/>
        </javac>
    </target>
    <path id="runpath"> 
         <path refid="run.classpath"/> 
         <pathelement location="build/classes"/> 
       </path> 
    <target name="run" depends="compile">
        <testng  classpathref="runpath"  outputDir="test-output">
            <xmlfileset dir="${basedir}" includes="testng.xml"/>
            <jvmarg value="-ea" />
        </testng>
    </target>
</project>

更多ant和testng  classname="org.testng.TestNGAntTask"是固定格式

參考:http://testng.org/doc/index.html

 

接下來在項目添加幾個case,項目目錄以下

準備testng的配置文件以下,放在工程的根目錄下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
  <test name="Test">
  <groups> 
      <run> 
         <include name="Case1" /> 
         <include name="MapTest" /> 
         <include name="JDaddress" /> 
         <include name="useCookies" /> 
       </run> 
    </groups> 
     <classes>
      <class name="com.dbyl.tests.Case1"/>
      <class name="com.dbyl.tests.JDaddress"/>
      <class name="com.dbyl.tests.UseCookieLogin"/>
      <class name="com.dbyl.tests.MapTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

 

接下來就是見證奇蹟的時候:

在Jenkins裏選擇構建

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Demo
[workspace] $ cmd.exe /C '""C:\Program Files\apache-ant-1.9.4\bin\ant.bat" -file Demo run && exit %%ERRORLEVEL%%"'
Buildfile: C:\Users\Young\workspace\Demo\build.xml
     [echo] import libs

clean:
   [delete] Deleting directory C:\Users\Young\workspace\Demo\build

compile:
     [echo] mkdir
    [mkdir] Created dir: C:\Users\Young\workspace\Demo\build\classes
    [javac] C:\Users\Young\workspace\Demo\build.xml:21: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 6 source files to C:\Users\Young\workspace\Demo\build\classes

run:
   [testng] [TestNG] Running:
   [testng]   C:\Users\Young\workspace\Demo\testng.xml
   [testng] 
   [testng] Fast test
   [testng] Slow test
   [testng] Starting ChromeDriver (v2.9.248315) on port 43260
   [testng] Starting ChromeDriver (v2.9.248315) on port 20660
   [testng] Starting ChromeDriver (v2.9.248315) on port 13803
   [testng] cookie write to file。。。。
相關文章
相關標籤/搜索