jenkins、ant、selenium、testng搭建自動化測試框架

  若是在你的理解中自動化測試就是在eclipse裏面講webdriver的包引入,而後寫一些測試腳本,這就是你所說的自動化測試,其實這個還不能算是真正的自動化測試,你見過每次須要運行的時候還須要打開eclipse而後去選擇運行文件嗎?沒有吧!應爲那樣真的是很low的!下面說一下經理的兩種自動化測試:1、將腳本寫好,放在服務器,經過定時任務去執行,這個是針對天天或者一些時間段須要執行的任務去作的,可是運用比較少,以前是用來定時檢查線上全部的接口開發的一套系統。2、就是本文講的。java

  進入正文,先說一下咱們的思想:web

    一、使用eclipse 加上webdriver 把咱們的腳本寫好。瀏覽器

    二、全部的腳本不可能放在同一個文件夾裏面,有的須要執行屢次,可是有的只須要一次,這個咱們經過testng去實現,在咱們的testng框架裏面這個可以輕鬆實現,因此咱們就將腳本中加如了testng。服務器

    三、testng雖然可以將腳本很好的規劃好,可是他不可以自動運行,咱們必須每次打開運行,比較麻煩,因此咱們就想到了咱們常常用到構建項目的jenkins,因此咱們就須要在如今的框架上引入jenkins。框架

    四、引入後,如何將他們結合下面來仔細說說eclipse

1、須要的工具、包jvm

  一、eclipse 這裏必須把環境變量什麼的都配置好。 函數

  二、selenium 的jar包工具

  三、testng的jar包測試

2、項目和目錄結構

  一、使用eclipse建立一個項目,再在src下建立包,最後在下面建立一個testng的類,或者一個普通的帶main函數類(都一步到位,直接用testng)

  二、在工程同一個目錄下面建立一個文件夾lib,在lib文件夾下建立一個selenium文件夾,再在selenium文件夾下建立一個libs文件夾

  三、在eclipse中src的同一個目錄,建立testng.xml文件和一個build.xml文件

目錄結構以下圖:

  

3、jar包的引入

  首先上面的弄好了,咱們先無論,如今是須要將selenium的包和testng的包引入到工程裏來,否則無法用,先將下好的各個jar包依次放入以前建立的文件夾中,放入後在build path中去引入。記住testng的jar包在工程中我是引入了的。

4、測試類的編寫以及testng.xml的編寫

  一、在包下面建立的測試類,寫一個簡單的selenium程序,以下:

package com.mushishi;

import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class NewTest {
  @Test
  public void f() {
	  WebDriver driver;
	  System.setProperty("webdriver.firefox.bin","E:\\Firefox\\firefox.exe");
	  driver = new FirefoxDriver();
	  driver.get("http://www.baidu.com");
  }
}

  本身能夠先一步一步調試程序對不對。

  二、testng.xml文件裏面其實放的就是一個執行任務,最簡單的就是我下面這樣,若是你要加入邏輯執行,你後面再去研究,都支持的。直接貼testng代碼

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
  <test name="Test">
    <classes>
    <!-- 下面這個name是你本身包名字而後.你的類名 -->
      <class name="com.mushishi.NewTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

  testng裏面的格式就是固定的,只須要將本身的包名字和類名字替換上就好了。把這些弄好了你執行一下這個testng,看可否正常執行上面的測試腳本,若是沒有須要找找緣由。

5、build.xml文件的編寫

  build.xml其實就是控制testng.xml去執行腳本,這裏咱們直接把個人xml代碼貼出來。

  

<?xml version="1.0" encoding="UTF-8"?>
<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.46.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" includeAntRuntime="false">
            <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>

 上面的xml代碼不用更改,直接能夠用,若是有的人的代碼「

<taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="run.classpath" />」 這一行會報錯,說沒用仍是什麼的,這個我碰見的時候是由於我build path裏面的包有問題,重引入一下,而後講須要的包按照上面的文件路徑引入就好了。

到目前位置環境大部分好了,能夠在cmd命令模式下切換到工程所在目錄,直接運行ant命令就行,看是否報錯,若是不抱錯,會直接啓動瀏覽器。

6、jenkins的配置

  一、安裝百度一下就好了,就一個命令

  二、完成後在建立任務頁面選擇建立任務->輸入項目的名字->選擇的時候選擇「構建一個自由風格的軟件項目」->「構建」->在構建裏面輸入下面圖片信息。build file是你工程的目錄,若是是基礎服務,其餘的不用管了,而後保存。

三、騷年去運行吧。

相關文章
相關標籤/搜索