截止目前為止:整體的自動化集成測試基本已經搞定,唯一美中不足的就是,在jmeter中沒有找到斷言失敗自動發送郵件的判斷條件。有知道的同學可以給我留言解惑一下,問題是這樣的:我在jmeter中通過如果(if)控制器,來判斷cese中是否有斷言失敗的,如果有則發送郵件
-
先看看成果吧
-
現在有3個任務再跑。做的定時任務,每天早晚各一次。

job.png
-
每個任務的配置在構建成功后自動發送郵件,為防止發送郵件服務器異常特地將發送郵件時間分開。

email.png
-
喜出望外的情況就是HTML Report 和 Performance Trend 兩個插件的功能,能夠一定程度彌補一下jmeter那個郵件的問題:其中HTML Report可以直接點擊查看測試報告,模板很清晰,執行中的各項數據也很直觀:

HTML Report.png
- 如果有錯誤在summary那里就能直接看出來了,另外一個優點就是如果有錯誤,直接點擊就可以實現跳轉,算是一個小功能吧。

HTML Report.png
-
Performance Trend 這個插件也很強大,能直接檢測出當前jmeter-case中斷言/執行失敗的個數,然后在視圖中都會顯示出來,線性圖表,另一個維度的感覺:

Performance Trend.png
-
從圖中可以看出來,第四次構建沒有失敗但是有一個錯誤,然后打開當前的HTML Report,確實有一次失敗情況存在,這里提供的兩種視圖均可以點擊查看詳細。
特地上2張比較明顯的圖片供參考:
responding time.png
percentage of errors.png -
通過建立3個job,所以對bild.xml有了一點小了解,也做了一點優化,很簡單的變動了一下參數,這樣在每次新建job的時候,只需要在原有的基礎上修改一下項目名稱就行了,(前提:workplace不變,否則需要把workplace修改下)
<?xml version="1.0" encoding="utf-8"?> <project name="JmeterTest" default="all" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <!-- 這里耍了個小聰明構建項目配置信息--> <property name="project.name" value="a-client\" /> <property name="project.workspace" value="E:\Jenkins\workspace\" /> <!-- 需要改成自己本地的 Jmeter 目錄--> <property name="jmeter.home" value="E:\workplace-jenkins\apache-jmeter-2.13\" /> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="${project.workspace}${project.name}jtl" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="${project.workspace}${project.name}" /> <!-- 生成的報告的前綴 --> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> <!-- 接收測試報告的郵箱 --> <property name="mail_to" value="XX@qq.com" /> <!-- 電腦地址 --> <property name="ComputerName" value="andre" /> <target name="all"> <antcall target="test" /> <antcall target="report" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本 --> <testplans dir="${project.workspace}${project.name}case" includes="*.jmx" /> </jmeter> </target> <target name="report"> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /> <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <!-- 發送郵件 --> </project>
- 每次新建項目,只需要在${project.workspace}下,新建一個叫做${project.name}的文件夾,然后將之前項目里面的文件夾全部拷貝過來即可。別忘了再將build.xm中${project.name}修改下就行了,很簡單吧。
-
轉自:http://www.jianshu.com/p/7ca5b30bfb66