|
會(huì)不會(huì)搭建測(cè)試平臺(tái)是一般測(cè)試工程師和高級(jí)測(cè)試工程師分水嶺 ----tobecrazy 我們項(xiàng)目有現(xiàn)成的測(cè)試平臺(tái),使用的是selenium grid+testng+ant+jenkins+VM
但是我平時(shí)用的是selenium+testng并未體驗(yàn)過使用ant 和jenkins,今天心血來潮嘗試使用一下jenkins. Jenkins簡(jiǎn)介:
1.可持續(xù)build或test project 2.監(jiān)控外部執(zhí)行的jobs
了解更多看https://wiki./display/JENKINS/Meet+Jenkins 首先安裝Jenkins,下載windows平臺(tái)的版本 由于安裝比較簡(jiǎn)單,這里就不再介紹 安裝ant,下載ant zip文件,解壓到C:\Program Files\apache-ant-1.9.4 在系統(tǒng)變量添加ANT_HOME
之后再CMD運(yùn)行ant -version 若顯式:Apache Ant(TM) version 1.9.4 compiled on April 29 2014 說明ant 配置成功
首先了解一下簡(jiǎn)單使用ant 使用note pad 寫一個(gè)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 如官方?jīng)]有報(bào)錯(cuò),恭喜你,可以進(jìn)行下一步 使用ant所做的操作和命令行輸入是一樣的,只不過所有的命令轉(zhuǎn)換為xml標(biāo)簽: 這次配置如下: 每個(gè)target是一個(gè)操作,clean是刪除build目錄,compile是編譯,run是執(zhí)行java class <?xml version="1.0"?> <project name="AntTest" default="run" basedir="." > <!-- 默認(rèn)target是run,運(yùn)行ant命令直接執(zhí)行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"> <!-- 運(yùn)行class文件,依賴compile --> <echo message="Compile dir is: ${basedir}\build\classes" /> <java classname="Test"> <classpath> <pathelement path="build/classes"/> </classpath> </java> </target> </project> 之后在命令行輸入ant(cmd切換到該目錄) 結(jié)果如下:
D:\AntTest>ant clean: compile: run: BUILD SUCCESSFUL 為了配合使用selenium webdriver打開eclipse創(chuàng)建名為Demo的項(xiàng)目 接下來就是使用Jenkins,如果你的Jenkins安裝成功,打開http://localhost:8080/會(huì)顯示Jenkins主頁(yè) 點(diǎn)擊新建->輸入項(xiàng)目名->選擇“構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目”->構(gòu)建->增加構(gòu)建步驟->選擇invoke ANT
此時(shí)準(zhǔn)備ant build.xml放到工程的根目錄 build.xml內(nèi)容如下,testng 和selenium的jar包需要加載,所以設(shè)置 <path id="run.classpath"> <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"是固定格式
接下來在項(xiàng)目添加幾個(gè)case,項(xiàng)目目錄如下
準(zhǔn)備testng的配置文件如下,放在工程的根目錄下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http:///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 -->
接下來就是見證奇跡的時(shí)候: 在Jenkins里選擇構(gòu)建 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
轉(zhuǎn)載請(qǐng)注明出處:http://www.cnblogs.com/tobecrazy/
軟件測(cè)試交流QQ群:312937087 we are QA! |
|
|