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


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

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

    1、使用eclipse 加上webdriver 把我們的腳本寫好。

    2、所有的腳本不可能放在同一個文件夾里面,有的需要執行多次,但是有的只需要一次,這個我們通過testng去實現,在我們的testng框架里面這個能夠輕松實現,所以我們就將腳本中加如了testng。

    3、testng雖然能夠將腳本很好的規划好,但是他不能夠自動運行,我們必須每次打開運行,比較麻煩,所以我們就想到了我們經常用到構建項目的jenkins,所以我們就需要在現在的框架上引入jenkins。

    4、引入后,如何將他們結合下面來仔細說說

一、需要的工具、包

  1、eclipse 這里必須把環境變量什么的都配置好。 

  2、selenium 的jar包

  3、testng的jar包

二、項目和目錄結構

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

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

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

目錄結構如下圖:

  

三、jar包的引入

  首先上面的弄好了,我們先不管,現在是需要將selenium的包和testng的包引入到工程里來,不然沒法用,先將下好的各個jar包依次放入之前創建的文件夾中,放入后在build path中去引入。記住testng的jar包在工程中我是引入了的。

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

  1、在包下面創建的測試類,寫一個簡單的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");
  }
}

  自己可以先一步一步調試程序對不對。

  2、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,看能否正常執行上面的測試腳本,如果沒有需要找找原因。

五、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命令就行,看是否報錯,如果不抱錯,會直接啟動瀏覽器。

六、jenkins的配置

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

  2、完成后在創建任務頁面選擇創建任務->輸入項目的名字->選擇的時候選擇“構建一個自由風格的軟件項目”->“構建”->在構建里面輸入下面圖片信息。build file是你工程的目錄,如果是基礎服務,其他的不用管了,然后保存。

3、騷年去運行吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM