




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、利用實現(xiàn)自動化測試的分布式執(zhí)行年月日下午一、概述目前,持續(xù)集成已成為當(dāng)前許多軟件開發(fā)團(tuán)隊在整個軟件開發(fā)生命周期內(nèi)側(cè)重于保證代碼質(zhì)量的常見做法。隨著測試的自動化率逐步提高,每天要需要自動執(zhí)行的測試用例也就越來越多了,當(dāng)我們發(fā)現(xiàn),跑一次完整的測試需要幾個小時,測試的速度已遠(yuǎn)遠(yuǎn)跟不上編譯的速度的時候,我們自然要考慮如何加快測試的速度了分布式執(zhí)行測試用例,顯然是一個不錯的辦法講述如何利用來實現(xiàn)自動化測試的分布式執(zhí)行。.什么是持續(xù)集成簡而言之,持續(xù)集成()是一種軟件開發(fā)實踐,即團(tuán)隊開發(fā)成員經(jīng)常集成它們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括
2、編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。持續(xù)集成可以幫助我們做到:軟件構(gòu)建自動化持續(xù)自動的構(gòu)建檢查持續(xù)自動的構(gòu)建測試構(gòu)件生成后續(xù)過程的自動化關(guān)于持續(xù)集成的更多概念和知識,本文不做深入闡述,有興趣的讀者可以參考以下鏈接:互聯(lián)網(wǎng)行業(yè)應(yīng)用持續(xù)集成實踐持續(xù)集成相關(guān)術(shù)語解釋關(guān)于沒錯,正是一個能幫助我們實現(xiàn)持續(xù)集成的平臺。確切來說,是一個可擴展的持續(xù)集成引擎。,主要用于:,持,續(xù)1、.自,動地構(gòu)建/測試軟件項目,監(jiān),控2一.些,定時執(zhí)行的任務(wù),更多關(guān)于的介紹和說明,請參考以下鏈接:持續(xù)集成工具.串行執(zhí)行測試一般,我們會在上配置三個任務(wù),分別是編譯任務(wù)、快速測試任務(wù)、慢速(完整)測試任務(wù)。這
3、三個任務(wù)一般是順序串行執(zhí)行的,上一個任務(wù)執(zhí)行完畢了之后,下一個任務(wù)才能開始執(zhí)行。.化整為零?串行執(zhí)行測試,當(dāng)需要運行的自動化測試用例較多時,任務(wù)執(zhí)行的速度顯然不會讓我們滿意,尤其是完整測試任務(wù)。如何加快執(zhí)行速度呢?我們首先會想到的是,可以化整為零,把slowtest任務(wù)完整測試任務(wù)分成多個小任務(wù),這樣,就可以在多臺機器上同時執(zhí)行,然而,這樣的做法,缺點也很明顯測試結(jié)果也被拆分,而且維護(hù)成本較高:slowtest的測試結(jié)果被拆分到各個小任務(wù)里,測試結(jié)果不方便統(tǒng)一顯示和分析。為達(dá)到最大速度,需要我們?nèi)斯戆裺lowtest任務(wù)拆分成跟已有測試機器數(shù)量相等的測試任務(wù),如果測試機器的數(shù)量新增或減少了,
4、就需要我們再次人工調(diào)整任務(wù)。需要我們?nèi)斯碇付ú煌臏y試用例,平均分給各個測試任務(wù),如果測試用例數(shù)量發(fā)生變化,也需要我們再次調(diào)整設(shè)置。3.分布式執(zhí)行!一般的任務(wù),是不能并發(fā)調(diào)度執(zhí)行的,有多個構(gòu)建請求時,即使有多個測試機器是空閑的,也必須按時間順序,一個接一個運行,典型的情況如下圖所示。#9(p-e-nding-Build-#8薫alreadyinpragre&s(ETArZlsec)因此,上述化整為零的做法把slowtest任務(wù)拆分為多個子任務(wù),從而達(dá)到多個任務(wù)同時可以同時執(zhí)行的效果。實際上,要加快自動化測試的速度,不一定需要多個任務(wù)同時執(zhí)行我們只需要多個構(gòu)建同時執(zhí)行。U任務(wù)設(shè)置里有一個選項J
5、Executecancurrentbuild百ifnecessarybeta)可以設(shè)置任務(wù)是否可以多個構(gòu)建同時執(zhí)行。我們把這個選項勾選上后,當(dāng)同時有多個構(gòu)建請求時,只要有個測試機器是空閑的,那就可以有個構(gòu)建同時執(zhí)行!14(paneling-WaitingfornextavailableaxeCLtornsi日g-winxp-t己三七-#13二ULI比-2弓Hl亍I亠#12201L-4-2孑4己0:丄已.遠(yuǎn)程控制U可以設(shè)置一個任務(wù)構(gòu)建完成后自動觸發(fā)另外的任務(wù)構(gòu)建。這樣,編譯任務(wù)、快速測試任務(wù)、完整測試任務(wù)可以自動地有序執(zhí)行。然而,這樣的自動觸發(fā)任務(wù)構(gòu)建,上游任務(wù)只能對每個下游任務(wù)觸發(fā)一次。那么,
6、當(dāng)我們的Uickte任務(wù)構(gòu)建完畢后,如何觸發(fā)多個ote壬務(wù)構(gòu)建呢?難道只能手工在網(wǎng)頁頁面上點擊“立即構(gòu)建”嗎?當(dāng)然不是。在u任務(wù)設(shè)置里,如下圖,有這樣的一個設(shè)置,勾選并填寫”AuthenticationToken”上之后,我們就可以使用這個Token編寫腳本或程序來隨時觸發(fā)一個任務(wù)的構(gòu)建了。例如,用類似以下的th(代碼,就可以觸發(fā)一次”Your_Job”任務(wù)的一次構(gòu)建。urXKUIlSH.URL+_/jctjYoBJbillId1!11ukeryoiu-Loknij-flliL.w1cpenl.wlJ如果”Your_Job”任務(wù)是帶參數(shù)(見后文)的,可以用類似以下的代碼觸發(fā)一次構(gòu)建。iurl=
7、Hl.IlELIH.URL+./jCiLjYoBy1bm1dili,1th?:遼ame+ere?+匚低紀(jì)匚yzir.七oksnAp:ir:ur匚p:=lt:hjti1m_l_iL-w1cpl.wlJ.測試用例分配任務(wù)的每一次構(gòu)建能執(zhí)行不同的自動化測試用例,我們需要指定該,一_,亠、”,一宀亠,一A,、r.EJThisbuildisparsme-terized任務(wù)為帶參數(shù)的任務(wù),在任務(wù)設(shè)置中勾選并指定相應(yīng)的參數(shù)。例如,我們指定一個字符串參數(shù)名為行哪一個里的。這樣,在具體的某一次構(gòu)建中,當(dāng)然,如果構(gòu)建的時候沒有指定為了讓參數(shù),那么i用于指定某一次構(gòu)建是運會以環(huán)境變量的方式存在。就會默認(rèn)為。This
8、buildisparameterizedStrfngNameParameter口efaultValueDescription這樣,在一個任務(wù)的每次構(gòu)建中,就可以根據(jù)環(huán)境變量的值去取不同的測試用例來運行了。測試結(jié)果回收當(dāng)分布式測試執(zhí)行完畢后,的測試結(jié)果仍然被拆分到了多個構(gòu)建之中,如何把這些測試結(jié)果統(tǒng)一收集起來呢?例如,我們很可能需要把所有測試用例的運行生成的格式的測試結(jié)果報表合并在一起,即我們需要收集任務(wù)每一次構(gòu)建所產(chǎn)生的測試結(jié)果文件。解決辦法是,我們在任務(wù)里設(shè)置把我們需要的一些文件在構(gòu)建完成后打包存檔起來。例如下圖這樣設(shè)置,則在每一次構(gòu)建完成后,會將文件夾下的所有文件上傳至服務(wù)器保存下來。Pu
9、blishJLInittestre&uItreportTestreportXML各test_reportX-xrnI這樣,我們也就可以自己編寫腳本或程序去獲取這些文件了。例如,類似如下代碼,可以獲得任務(wù)第次構(gòu)建所生成的所有文件,打包保存為irrl2=Hl.fllEUN_l.rF!L+r1jobr1test-slowtest/1671:=Lft1f:ct.i+eet_report/*zip*丿tnip.zipiles=3trip.zipm-lliE-ui-lretrizfe(url,.des)測萬事俱備至此,分布式執(zhí)行自動化測試用例所需要的條件都已具備。一個具體的可行自動化測試分布式執(zhí)行方案如下
10、。t亡5t-huilcl-cirilY館或-口uiukt日吐tEmt-mlMtmst-dim口atuht亡st-slciwt已et-r亡port編譯任務(wù),可以設(shè)置輪詢,每當(dāng)提交代碼至服務(wù)器后,此任務(wù)會自動觸發(fā)??焖贉y試任務(wù),在編譯任務(wù)成功完成后,自動觸發(fā),快速執(zhí)行一些最基本的自動化測試用例,確保新提交代碼后,程序產(chǎn)品的基本功能沒有問題。此任務(wù)在執(zhí)行成功后自動觸發(fā),它所做的工作是把所有需要執(zhí)行的自動化測試用例分配為多個,并為每個觸發(fā)一次任務(wù)的構(gòu)建。分布式執(zhí)行的主要任務(wù),可以多個構(gòu)建同時執(zhí)行,根據(jù)任務(wù)參數(shù)不同來執(zhí)行不同的自動化測試用例。分布式測試匯總?cè)蝿?wù),當(dāng)任務(wù)在一次分布式執(zhí)行中的所有構(gòu)建執(zhí)行完畢
11、后,此任務(wù)負(fù)責(zé)將這些構(gòu)建產(chǎn)生的測試結(jié)果收集在一起。8.分布式方案如下圖。auildr?;tCiJickTestDispathDisrrihjzedR-epor:四、ip在什么時候,怎樣觸發(fā)p任務(wù)呢?可以為ii任務(wù)再設(shè)定一個參數(shù),默認(rèn)為空,在ipa任務(wù)執(zhí)行的腳本或程序里,觸發(fā)最后一個ii任務(wù)的構(gòu)建時,才指定該構(gòu)建的為。在ii任務(wù)執(zhí)行的時候,如果為,再去觸發(fā)p任務(wù),觸發(fā)方式當(dāng)然也是用腳本或程序觸發(fā)。p任務(wù)如何知道該收集ii任務(wù)的哪幾次構(gòu)建的測試結(jié)果呢?可以由ii任務(wù)通過傳遞參數(shù)的方式告訴p應(yīng)該收集哪幾次構(gòu)建的測試結(jié)果。到底該如何確定是哪幾次構(gòu)建呢?定義了一些環(huán)境變量,我們在任務(wù)執(zhí)行的或批處理中可以使用到。例如,可以在最后一次構(gòu)建的時候,讀取環(huán)境變量,再設(shè)法確定本次分布式執(zhí)行共有多少次構(gòu)建,即可以知道哪些構(gòu)建是p應(yīng)該收集測試結(jié)果文件的了p任務(wù)收集到的測試結(jié)果文件,由于不對,不承認(rèn)怎么辦呢?TOC o 1-5 h z實際上,只需要一個批處理命令即可以修改文件的創(chuàng)建時間:pp任務(wù)構(gòu)建時,怎樣知道ii任務(wù)所有的構(gòu)建都已完成呢?打開網(wǎng)頁,試試在網(wǎng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中信息技術(shù)課堂教學(xué)方法的創(chuàng)新研究
- 2025光電車衣發(fā)電系統(tǒng)
- 中小學(xué)心理健康教育課程設(shè)計與實踐知到課后答案智慧樹章節(jié)測試答案2025年春浙江師范大學(xué)
- 三級人力資源管理師-三級人力資源管理師考試《理論知識》押題密卷6
- 三級人力資源管理師-《企業(yè)人力資源管理師(理論知識)》考前強化模擬卷6
- 山東省菏澤市東明縣第一中學(xué)2024-2025學(xué)年高二下學(xué)期開學(xué)地理試題
- 2018高考人教政治二輪鞏固練題(六)及解析
- 2018年普通高校招生全國統(tǒng)一考試仿真模擬(一)語文試題
- 甘肅省張掖市高臺縣一中2024-2025學(xué)年高三下學(xué)期第二次檢測語文試題(原卷版+解析版)
- 2025屆福建省漳州市高三下學(xué)期第三次檢測歷史試題 (原卷版+解析版)
- 2024年04月江蘇蘇州銀行春招信息科技類崗位第一批開始筆啦筆試歷年參考題庫附帶答案詳解
- 煤化工設(shè)備設(shè)計與制造技術(shù)進(jìn)展分析考核試卷
- 中國多發(fā)性骨髓瘤診治指南(2024 年修訂)
- 【MOOC】實驗室安全學(xué)-武漢理工大學(xué) 中國大學(xué)慕課MOOC答案
- DB32T 2836-2015 雙孢蘑菇工廠化生產(chǎn)技術(shù)規(guī)程
- 蘋果種植養(yǎng)護(hù)培訓(xùn)課件
- 化妝步驟課件教學(xué)課件
- 民兵教練員四會教案模板
- 起重吊裝作業(yè)安全培訓(xùn)考核試卷
- 時政述評巴以沖突課件-2024屆高考政治一輪復(fù)習(xí)
- 三級綜合醫(yī)院評審標(biāo)準(zhǔn)(2024年版)
評論
0/150
提交評論