jenkins + maven +testng 進(jìn)行自動(dòng)化

最近接手了一個(gè)項(xiàng)目的測(cè)試,在這個(gè)項(xiàng)目(MAVEN項(xiàng)目)的test目錄下寫(xiě)了2個(gè)testNg的冒煙測(cè)試用例,想著能夠在jenkins每次構(gòu)建發(fā)布后能自動(dòng)運(yùn)行測(cè)試用例,就搗鼓了下

一、編寫(xiě)testNg測(cè)試用例,并創(chuàng)建test.xml用例啟動(dòng)執(zhí)行文件,配置pom文件

1、testNg用例,這是一個(gè)冒煙測(cè)試用例,只是用來(lái)檢查接口是否有返回結(jié)果

    @Test
    public void secretConfig() throws Exception{

        String commonUrl = "http://config.dooioo.net/testsecret-secret-mingan-config/test/testsecret";
        try{
            result = template.getForObject(commonUrl,JSONObject.class);

        }catch(Exception e){
            System.out.println("敏感信息配置文件獲取失敗");
            e.printStackTrace();
        }

        JSONArray propertySources = result.getJSONArray("propertySources");//獲取文件內(nèi)容
        Assert.assertNotEquals(propertySources.size(),0,"未找到文件");//判斷獲取的文件數(shù)量與0是否不等,并打印信息
        logger.info("正確返回敏感信息配置文件,文件數(shù)量為:" +propertySources.size() );
    }

2、創(chuàng)建test.xml用例啟動(dòng)執(zhí)行文件

<suite name="somke">
    <test verbose="1" name="smoke" >
        <classes>
            <class name="com.lianjia.configserver.SmokeTest"/>
        </classes>
    </test>
</suite>

3、配置pom
加入testng依賴(lài)

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.11</version>
            <scope>test</scope>
        </dependency>

加入maven-surefire-plugin插件用來(lái)使用maven執(zhí)行用例,其中suiteXmlFile配置的是你用例執(zhí)行文件的地址

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/test.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
                <version>2.4</version>
            </plugin>

二、配置jekins

一般有2種情況(我是下面第二種):
1、被測(cè)系統(tǒng)與測(cè)試代碼在一個(gè)工程下,則只需要構(gòu)建完成后配置執(zhí)行測(cè)試用例即可
因?yàn)橐_(dá)到在項(xiàng)目構(gòu)建后對(duì)構(gòu)建后的項(xiàng)目執(zhí)行用例,所以用例執(zhí)行需要放在程序部署完成之后。jenkins的具體的任務(wù)創(chuàng)建可參考使用Jenkins進(jìn)行持續(xù)集成
前面構(gòu)建的時(shí)候配置的是跳過(guò)測(cè)試用例

maven配置

所以我們?cè)诓渴鹜瓿珊笤诤竺嬖谔砑右粋€(gè)構(gòu)建步驟,執(zhí)行mvn test命令

執(zhí)行測(cè)試用例

2、被測(cè)系統(tǒng)與測(cè)試代碼不在一個(gè)工程下,那么測(cè)試代碼在的項(xiàng)目可以配置一下觸發(fā)器
選擇第一項(xiàng)Build after other projects are built ,在其他項(xiàng)目構(gòu)建完后觸發(fā)構(gòu)建,填寫(xiě)你的被測(cè)系統(tǒng)項(xiàng)目

觸發(fā)器配置

然后在構(gòu)建步驟中加入執(zhí)行測(cè)試

執(zhí)行測(cè)試

整個(gè)效果就是被測(cè)項(xiàng)目構(gòu)建完后,測(cè)試代碼項(xiàng)目自動(dòng)構(gòu)建并執(zhí)行測(cè)試用例

三、收集報(bào)告

在構(gòu)建后操作中增加testNG報(bào)告收集插件

testNG插件.png

下面的路徑默認(rèn)即可


image.png

如果jenkins中沒(méi)有此插件,可在jenkins首頁(yè)系統(tǒng)管理-管理插件-可選插件中搜索并安裝,裝完后記得重啟

插件安裝

四、一切準(zhǔn)備就緒讓我們玩起來(lái)!

點(diǎn)擊立即構(gòu)建,可以看到整個(gè)構(gòu)建過(guò)程(以下只截取了后面的)

[step08]啟動(dòng)項(xiàng)目...
當(dāng)前進(jìn)程ID:22594 
部署成功!
[00_configcenter-自動(dòng)化] $ mvn test
[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building configcenter-server 1.1.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] **--- maven-resources-plugin:2.6:resources (default-resources) @ configcenter-server ---**
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 5 resources
[INFO] 
[INFO] **--- maven-compiler-plugin:3.1:compile (default-compile) @ configcenter-server ---**
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] **--- maven-resources-plugin:2.6:testResources (default-testResources) @ configcenter-server ---**[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] **--- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ configcenter-server ---**
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] **--- maven-surefire-plugin:2.4:test (default-test) @ configcenter-server ---**
[INFO] Surefire report directory: /root/jenkins/workspace/00_configcenter-自動(dòng)化/target/surefire-reports
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
[TestNGContentHandler] [WARN] It is strongly recommended to add "<!DOCTYPE suite SYSTEM "[http://testng.org/testng-1.0.dtd](http://testng.org/testng-1.0.dtd)" >" at the top of your file, otherwise TestNG may fail or not work as expected.
正確返回配置文件,文件數(shù)量為:2
2017-07-13 15:11:25 [main] INFO com.lianjia.configserver.SmokeTest - 正確返回普通配置文件,文件數(shù)量為:2正確返回配置文件,文件數(shù)量為:1
2017-07-13 15:11:25 [main] INFO com.lianjia.configserver.SmokeTest - 正確返回敏感信息配置文件,文件數(shù)量為:1
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, 
Time elapsed: 22.058 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24.395 s
[INFO] Finished at: 2017-07-13T15:11:26+08:00
[INFO] Final Memory: 16M/169M
[INFO] ------------------------------------------------------------------------
TestNG Reports Processing: START
Looking for TestNG results report in workspace using pattern: **/testng-results.xml
Saving reports...
Processing '/root/jenkins/jenkins_home/jobs/00_configcenter-自動(dòng)化/builds/9/testng/testng-results.xml'
TestNG Reports Processing: FINISH
Finished: SUCCESS

可以在項(xiàng)目首頁(yè)查看結(jié)果,還可以在jenkins中加入郵件插件,將結(jié)果郵件通知給自己

執(zhí)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容