自動化持續(xù)集成
一银酗、概念
互聯(lián)網(wǎng)軟件的開發(fā)和發(fā)布辆影,已經形成了一套標準流程,最重要的組成部分就是持續(xù)集成(Continuous integration黍特,簡稱CI)
1. 持續(xù)集成(采蜜)
持續(xù)集成指的是蛙讥,頻繁地(一天多次)將代碼集成到主干。
它的好處主要有兩個:
(1)快速發(fā)現(xiàn)錯誤灭衷。每完成一點更新次慢,就集成到主干,可以快速發(fā)現(xiàn)錯誤翔曲,定位錯誤也比較容易迫像。
(2)防止分支大幅偏離主干。如果不是經常集成瞳遍,主干又在不斷更新闻妓,會導致以后集成的難度變大,甚至難以集成掠械。
持續(xù)集成的目的纷闺,就是讓產品可以快速迭代,同時還能保持高質量份蝴。它的核心措施是犁功,代碼集成到主干之前,必須通過自動化測試婚夫。只要有一個測試用例失敗浸卦,就不能集成。
2. 持續(xù)交付
持續(xù)交付(Continuous delivery)指的是案糙,頻繁地將軟件的新版本限嫌,交付給質量團隊或者用戶,以供評審时捌。如果評審通過怒医,代碼就進入生產階段。
持續(xù)交付可以看作持續(xù)集成的下一步奢讨。它強調的是稚叹,不管怎么更新,軟件是隨時隨地可以交付的拿诸。
3. 持續(xù)部署
定義:持續(xù)部署(continuous deployment)是持續(xù)交付的下一步扒袖,指的是代碼通過評審以后,自動部署到生產環(huán)境亩码。
目標:代碼在任何時刻都是可部署的季率,可以進入生產階段。
前提:能自動化完成測試描沟、構建飒泻、部署等步驟鞭光。
二、Jenkins介紹
1.? Jenkins概念
Jenkins 是一個開源軟件項目泞遗,是基于Java開發(fā)的一種可拓展持續(xù)集成工具衰猛,主要用于持續(xù)、自動地構建 / 測試 / 集成軟件項目以及監(jiān)控一些定時執(zhí)行的任務刹孔。
2. Jenkins目的
1啡省、持續(xù)、自動地構建/測試軟件項目髓霞。
2卦睹、監(jiān)控軟件開放流程,快速問題定位及處理方库,提示開放效率结序。
3. 特性
?? 易于安裝,只要把 jenkins.war 部署到 Tomcat 即可運行
?? 易于配置纵潦,所有配置都是通過其提供的 web 界面實現(xiàn)
?? 集成 RSS/E-mail徐鹤,通過 RSS 發(fā)布構建結果或當構建完成時通過 e-mail 通知
?? 生成 JUnit / TestNG 測試報告
?? 分布式構建,支持 Jenkins 能夠讓多臺計算機一起構建/測試
?? 插件支持邀层,支持擴展插件返敬,你可以開發(fā)適合自己團隊使用的工具
4. 產品發(fā)布流程
產品設計成型 → 開發(fā)人員開發(fā)代碼 → 測試人員測試功能 → 運維人員發(fā)布上線
三、安裝配置Jenkins
去官網(wǎng)下載jenkins.war包寥院。
1 兩種方式開啟Jenkins
方式1:
在tomcat的bin目錄下啟動(最常用)
方式2:
打開cmd劲赠,進入jenkins目錄,然后運行命令:java -jar jenkins.war
四秸谢、搭建JMeter+Jenkins+Ant持續(xù)化
Ant下載及配置安裝
下載Apache-ant
解壓到你想要安裝的目錄
配置環(huán)境變量
驗證是否安裝成功
拷貝Jemter包到ant下
新建一個build.xml文件凛澎,里面填入如下代碼
<?xml version="1.0" encoding="UTF-8"?><projectname="ant-jmeter-test"default="run"basedir="."><!-- 需要改成自己本地的 Jmeter 目錄--><propertyname="jmeter.home"value="G:\jmeter\apache-jmeter-3.0"/><!-- jmeter生成jtl格式的結果報告的路徑--><propertyname="jmeter.result.jtl.dir"value="G:\jmeter\jmeter-ant-jenkins\testResult"/><!-- jmeter生成html格式的結果報告的路徑--><propertyname="jmeter.result.html.dir"value="G:\jmeter\jmeter-ant-jenkins\testResult"/><!-- 生成的報告的前綴--><propertyname="ReportName"value="TestReport"/><propertyname="jmeter.result.jtlName"value="${jmeter.result.jtl.dir}/report.jtl"/><propertyname="jmeter.result.htmlName"value="${jmeter.result.html.dir}/index.html"/><!-- 接收測試報告的郵箱 --><propertyname="mail_to"value="barryli89@163.com"/><propertyname="lib.dir"value="${jmeter.home}/lib"/><pathid="xslt.classpath"><filesetdir="${lib.dir}"includes="xalan*.jar"/><filesetdir="${lib.dir}"includes="serializer*.jar"/></path><targetname="run"><antcalltarget="test"/><antcalltarget="report"/></target><targetname="test"><taskdefname="jmeter"classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/><jmeterjmeterhome="${jmeter.home}"resultlog="${jmeter.result.jtlName}"><!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本--><testplansdir="G:\jmeter\jmeter-ant-jenkins"includes="*.jmx"/><propertyname="jmeter.save.saveservice.output_format"value="xml"/></jmeter></target><targetname="report"><!-- 因為上面生成報告的時候估蹄,不會將相關的圖片也一起拷貝至目標目錄塑煎,所以,需要手動拷貝 --></xslt><copytodir="${jmeter.result.html.dir}"><filesetdir="${jmeter.home}/extras"><includename="collapse.png"/><includename="expand.png"/></fileset></copy></target></project>
進行命令行模式后臭蚁,進入剛才創(chuàng)建的xml文件存放目錄最铁,如:D:\build 輸入ant即可
五、集成jenkins
打開Jenkins刊棕,配置Ant環(huán)境
新建一個自由風格任務
構建觸發(fā)器
構建配置
配置HTML插件
立即構建
針對報告中不顯示聚合報告的情況
Jenkins執(zhí)行自動化測試后發(fā)送測試報告郵件
一炭晒、認識web自動化測試
一、什么是自動化測試?
了解為什么要進行自動化測試?
掌握自動化測試的分類?
web自動化測試的使用條件和場景
自動化測試工具的優(yōu)缺點
自動化測試的前景和發(fā)展方向
1 什么是自動化測試
首先比較一下手動和自動:
.1 自動化測試的概念
軟件自動化測試就是通過測試工具或者其他手段甥角,按照測試人員的預定計劃對軟件產品進行自動化測試,他是軟件測試的一個重要組成部分识樱,能夠 完成許多手工測試無法完成或者難以實現(xiàn)的測試工作嗤无,正確合理的實施自動化測試震束,能夠快速,全面的對軟件進行測試当犯,從而提高軟件質量垢村,節(jié)省經費,縮短軟件的發(fā)布周期嚎卫。
.2 自動化測試的歷史
自動化測試就是任何利用工具來輔助的測試嘉栓,幾乎在計算機工業(yè)產生的第一天,這種測試就出現(xiàn)了拓诸。
歷史上從來沒有出現(xiàn)過“測試自動化取代測試工程師工作”這種事情發(fā)生侵佃,除非你完全忽略測試人員們的真正工作。
測試自動化意味著使用測試工具奠支。自動化測試是個古老的理念馋辈。
2 為什么要進行自動化測試
2 自動化測試的好處
縮短測試周期
計算機行業(yè)更新迭代快速,大量頻繁的回歸測試消耗時間倍谜,自動化測試能夠將重復的實行交給計算機去做迈螟,加快測試速度。
避免人為出錯
測試人員不可能持續(xù)高度集中尔崔,并且人類易受外界影響(頭疼腦熱答毫,精神不振),可能會造成人為錯誤
測試信息存儲
自動化測試將測試信息和數(shù)據(jù)儲存在文件中季春,思路清晰明確烙常,交接方便
輕易獲取覆蓋率
自動化測試能夠解放測試人員,使測試人員能夠有更多的精力做那些非重復性的工作鹤盒。
其他
自動化測試可以是實現(xiàn)自動或者定時執(zhí)行
注意:自動化測試的方向是對的蚕脏,而且趨勢也是如此,但是有些自動化實現(xiàn)不了的還是會手動測試的侦锯。
1.3 自動化測試的分類
整體分類
1)自動化功能測試
2)自動化性能測試
自動化功能測試的分類:
整體分類
1)自動化功能測試
2)自動化性能測試
自動化功能測試的分類:
1)單元測試:程序員搞定2)功能測試3)接口測試:大中型項目或長期項目可以采用自動化測試
性能測試主要是使用測試工具
Loadrunner驼鞭、Jmeter等,對軟件進行壓力測試尺碰、負載測試等等挣棕,因為這些無法用手工進行代替,所以必須自動化亲桥。
為了測試一個web站點的服務能力洛心,需要模擬上千上萬的請求(比如打開瀏覽器訪問站點),人的速度是遠遠達不到這樣的操作的
1.使用自動化的前提條件
1)手動測試已經完成,后期再不影響進度的前提下逐漸實現(xiàn)自動化2)項目周期長题篷,重復性的工作都交給機器去實現(xiàn)3)需求穩(wěn)定,項目變動不大4)自動化測試腳本復雜度比較低5)可重復利用
2.使用自動化測試的場景
1)頻繁的回歸測試2)冒煙測試3)傳統(tǒng)行業(yè)需求變化不大词身,應用頻繁4)性能測試
5 web自動化常用的工具
常見的自動化web測試工具
QTP(收費)
QTP是Mercury公司的Quick Test Professional的簡稱,是一種自動測試工具番枚。
Selenium(開源)
Selenium一個強大的基于瀏覽器的開源自動化測試工具法严,通常用來編寫web應用的自動化測試
RFT(收費)
IBM Rational Test Professional的簡稱损敷,是一款先進的自動化的功能和回歸測試工具,使用與測試人員和GUI開發(fā)人員深啤,基礎是針對Java,.NET的對象計數(shù)和基于web應用程序的錄制拗馒,回放功能。