Jenkins如何整合執行testng.xml檔案的解決方案
前言:
在我們使用maven+testng+restassured+reportng實現介面測試框架時,會發現在本機建立專案,進行一些pom引用和簡單的封裝後,很快就可以直接利用idea自帶的testng外掛直接執行testng.xml檔案中我們寫好的case,但當我們脫離了idea等編輯工具時,怎麼讓我們的介面測試專案跑起來呢???有了這個思考後,就剩怎麼實現了
解決過程:
解決方案一,利用命令執行;
命令如下: java org.testng.TestNG testng1.xml
看起來很簡單把,一句命令搞定,但是發現根本行不通,一直報錯“找不到或無法載入主類 org.testng.TestNG”,百度說的是testng包沒有載入,環境變數設定有問題。然而設定好了環境變數也沒什麼用,此種方式正確的解決方式如下,別人寫的很清晰,所以直接甩連結了:https://blog.csdn.net/u011441473/article/details/80378082
本機可以執行命令後,開啟jenkins,新增構建後操作,選擇excute windows batch command,輸入執行的命令就好,如果是在linux上,則選擇excute shell (前提環境變數等準備好)
解決方案二:例用maven執行testng.xml檔案
在pom檔案中定義build方式:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <!--maven-surefire-plugin的test目標會自動執行測試原始碼路徑(預設為src/test/java/)下所有符合一組命名模式的測試類--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.1</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
輸入mvn test就可以編譯執行testng.xml檔案了,不依賴什麼環境配置等,感覺比第一種方便多了
在jenkins中直接安裝maven外掛,如下圖利用外掛去build,直接就運行了一遍testng.xml檔案啦~
方案三 通過程式碼去執行 testng.xml檔案
public class TestngRun { public static void main(String[] args){ TestNG testng = new TestNG(); List suites= Lists.newArrayList(); suites.add("C:/WorkSpace/mavenRes/testng.xml");//path to xml.. testng.setTestSuites(suites); testng.run(); } }
同方法一的jenkins中 輸入Javac命令+該java檔案路徑 就能執行tesng.xml檔案;
*個人偏向第二種和第三種方式,第一種依賴多不穩定,和jenkins整合推薦第二種;
以上~~