1. 程式人生 > >Jenkins如何整合執行testng.xml檔案的解決方案

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整合推薦第二種;

以上~~