如果在你的理解中自動化測試就是在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、騷年去運行吧。
