最近接手了一個(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è)試用例

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

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)目

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

整個(gè)效果就是被測(cè)項(xiàng)目構(gòu)建完后,測(cè)試代碼項(xiàng)目自動(dòng)構(gòu)建并執(zhí)行測(cè)試用例
三、收集報(bào)告
在構(gòu)建后操作中增加testNG報(bào)告收集插件

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

如果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é)果郵件通知給自己
