連續(xù)部署管道中的性能測(cè)試的制作方法
【專(zhuān)利說(shuō)明】
【背景技術(shù)】
[0001]軟件開(kāi)發(fā)生命周期使用連續(xù)集成(Cl)和連續(xù)部署(⑶)來(lái)減小生產(chǎn)線(xiàn)中代碼改變消耗的時(shí)間。連續(xù)集成使以下過(guò)程自動(dòng)化:從特定源配置管理(SCM)工具接收代碼改變、構(gòu)造具有代碼改變可遞送組件、以及測(cè)試組件。
【附圖說(shuō)明】
[0002]本公開(kāi)的非限制性示例在以下描述中被描述、參照隨附各圖來(lái)閱讀并且不限制權(quán)利要求的范圍。在各圖中,出現(xiàn)在不止一幅圖中的其相同和類(lèi)似結(jié)構(gòu)、元件或部分在它們所出現(xiàn)的各圖中一般用相同或類(lèi)似的參考標(biāo)號(hào)來(lái)標(biāo)記。在圖中圖示的部件和特征的尺寸主要出于呈現(xiàn)的便利和清楚來(lái)選擇并且未必按照比例繪制。參照附圖:
圖1圖示了根據(jù)示例的在連續(xù)部署管道中的應(yīng)用上施行一組性能測(cè)試的網(wǎng)絡(luò)環(huán)境;
圖2圖示了根據(jù)示例的在連續(xù)部署管道中的應(yīng)用上施行該組性能測(cè)試的裝置的框圖; 圖3圖示了根據(jù)示例的可與圖1的網(wǎng)絡(luò)環(huán)境一起使用的系統(tǒng)的框圖;
圖4圖示了根據(jù)示例的可與圖2的裝置一起使用的計(jì)算機(jī)可讀介質(zhì)的框圖;
圖5圖示了根據(jù)示例的在連續(xù)部署管道中的應(yīng)用上施行該組性能測(cè)試的過(guò)程的示意圖;以及
圖6圖示了根據(jù)示例的在連續(xù)部署管道中的應(yīng)用上施行該組性能測(cè)試的方法的流程圖。
【具體實(shí)施方式】
[0003]在以下詳細(xì)描述中,參照形成其一部分的附圖,并且在附圖中通過(guò)在其中可以實(shí)踐本公開(kāi)的具體示例的方式圖示了以下詳細(xì)描述。要理解的是,可以利用其它示例并且可以做出結(jié)構(gòu)或邏輯改變而不脫離本公開(kāi)的范圍。
[0004]連續(xù)集成(Cl)和連續(xù)部署(⑶)使具有代碼改變的代碼組件的構(gòu)造、測(cè)試和部署自動(dòng)化。連續(xù)集成使以下過(guò)程自動(dòng)化:從SCM工具檢索代碼改變、構(gòu)造可遞送組件(諸如執(zhí)行建構(gòu)(build))以及對(duì)組件進(jìn)行單元測(cè)試。自動(dòng)化在代碼改變被交付給(commit)源配置管理(SCM)工具之后開(kāi)始。當(dāng)代碼改變被交付給SCM工具時(shí),代碼改變被指派給特定連續(xù)部署管道(CD管道或部署管道)。當(dāng)代碼改變被測(cè)試為代碼基或代碼的組件的一部分時(shí),代碼改變移動(dòng)通過(guò)連續(xù)部署管道。
[0005]連續(xù)部署通過(guò)將組件自動(dòng)部署到測(cè)試環(huán)境中并且在組件上執(zhí)行測(cè)試來(lái)擴(kuò)展連續(xù)集成。測(cè)試的數(shù)量由連續(xù)部署管道來(lái)確定。用于連續(xù)部署管道的測(cè)試典型地是基于連續(xù)部署管道的分類(lèi)(諸如低優(yōu)先級(jí)或高優(yōu)先級(jí))而被指派的靜態(tài)測(cè)試。典型的測(cè)試包括單元測(cè)試和應(yīng)用編程接口測(cè)試。負(fù)載和性能測(cè)試由于成本和時(shí)間約束而很少被包括在測(cè)試中,因?yàn)樾阅芎拓?fù)載測(cè)試的執(zhí)行時(shí)間比單元測(cè)試和應(yīng)用編程接口測(cè)試更長(zhǎng)。因此,測(cè)試缺乏質(zhì)量保證,因?yàn)闇y(cè)試組不包括在測(cè)試條件之下測(cè)量代碼改變的性能的測(cè)試。
[0006]在示例中,提供了在連續(xù)部署管道中的應(yīng)用上施行性能測(cè)試的方法。該方法在連續(xù)部署管道中的應(yīng)用上施行性能測(cè)試。該方法標(biāo)識(shí)基線(xiàn)建構(gòu)和新建構(gòu)之間的代碼改變。基線(xiàn)建構(gòu)和新建構(gòu)是性能測(cè)試環(huán)境中的兩個(gè)不同建構(gòu)。該方法通過(guò)在基線(xiàn)建構(gòu)上執(zhí)行一組定制測(cè)試腳本來(lái)獲得基線(xiàn)測(cè)試結(jié)果?;€(xiàn)建構(gòu)包括成功完成連續(xù)部署管道中的該組性能測(cè)試的第一代碼基。該方法通過(guò)在新建構(gòu)上執(zhí)行該組定制測(cè)試腳本來(lái)類(lèi)似地測(cè)試新建構(gòu)以獲取新測(cè)試結(jié)果。新建構(gòu)包括在連續(xù)部署管道中測(cè)試的第二代碼基。通過(guò)比較基線(xiàn)測(cè)試結(jié)果和新測(cè)試結(jié)果來(lái)確定性能值。性能值基于關(guān)注基線(xiàn)建構(gòu)和新建構(gòu)之間的改變的測(cè)試結(jié)果,這使得能夠更容易地標(biāo)識(shí)性能問(wèn)題。
[0007]短語(yǔ)“代碼改變”是指用于任何軟件應(yīng)用的源代碼中的改變。短語(yǔ)代碼改變還可以指作為被構(gòu)造為連續(xù)集成過(guò)程的一部分的代碼基的一部分的代碼改變。代碼改變的示例包括方法、函數(shù)、代碼行和/或?qū)Ψ椒ɑ蚝瘮?shù)的調(diào)用的改變或更新,諸如方法和/或函數(shù)的刪除或添加。
[0008]短語(yǔ)“連續(xù)部署管道”或“部署管道”是指在代碼改變隊(duì)列上串行和/或并行執(zhí)行的一組動(dòng)作。例如,連續(xù)部署管道可以包括建構(gòu)代碼、執(zhí)行單元測(cè)試、部署代碼、運(yùn)行自動(dòng)化測(cè)試、階段化代碼、運(yùn)行端對(duì)端測(cè)試以及部署代碼以生產(chǎn)。每一個(gè)連續(xù)部署管道可以分類(lèi)成接收與定義的標(biāo)準(zhǔn)組匹配的代碼改變,例如,特定連續(xù)部署管道可以用于低風(fēng)險(xiǎn)和高優(yōu)先級(jí)的代碼改變。用于測(cè)試管道的測(cè)試腳本可以基于代碼改變。
[0009]短語(yǔ)“測(cè)試腳本”是指在模擬環(huán)境中運(yùn)行于連續(xù)部署管道上的測(cè)試。測(cè)試腳本測(cè)試性能和/或標(biāo)識(shí)測(cè)試之下的應(yīng)用(AUT)的性能中的缺陷。測(cè)試腳本在代碼改變集成到建構(gòu)中情況下測(cè)試應(yīng)用性能的各種方面。
[0010]短語(yǔ)“基線(xiàn)建構(gòu)”是指包括累積的代碼改變的代碼基的建構(gòu),該累積的代碼改變已經(jīng)被測(cè)試并且導(dǎo)致成功執(zhí)行或完成針對(duì)性能和/或負(fù)載的測(cè)試。例如,基線(xiàn)建構(gòu)包括第一組代碼改變,其被標(biāo)識(shí)為已經(jīng)堆積并且并入到代碼基或第一代碼基中的先前代碼改變。第一代碼基可以包括來(lái)自先前測(cè)試時(shí)段(諸如前一工作日)的代碼改變。
[0011]短語(yǔ)“新建構(gòu)”是指包括基線(xiàn)建構(gòu)的代碼基的建構(gòu),即除自基線(xiàn)建構(gòu)被測(cè)試以來(lái)的基線(xiàn)建構(gòu)的任何改變(諸如代碼基的添加、刪除和修改)之外,已經(jīng)被測(cè)試并且導(dǎo)致成功執(zhí)行或完成針對(duì)性能和/或負(fù)載的測(cè)試的累積的代碼改變。例如,新建構(gòu)包括第二組代碼改變。第二組代碼改變包括自先前測(cè)試時(shí)段以來(lái)的代碼基或第一代碼基的改變,諸如自前一天的測(cè)試以來(lái)的改變。
[0012]短語(yǔ)“基線(xiàn)測(cè)試結(jié)果”是指來(lái)自基線(xiàn)建構(gòu)上的測(cè)試腳本的執(zhí)行的結(jié)果。
[0013]短語(yǔ)“新測(cè)試結(jié)果”是指來(lái)自新建構(gòu)上的測(cè)試腳本的執(zhí)行的結(jié)果。
[0014]短語(yǔ)“性能值”是指來(lái)自測(cè)試腳本的執(zhí)行的測(cè)試結(jié)果的分析和收集。性能值可以單獨(dú)地和聚合地包括基線(xiàn)測(cè)試結(jié)果和新測(cè)試結(jié)果的分析。
[0015]圖1圖示了根據(jù)示例的網(wǎng)絡(luò)環(huán)境100。網(wǎng)絡(luò)環(huán)境100包括連接測(cè)試設(shè)備120、部署設(shè)備140、客戶(hù)端設(shè)備160和數(shù)據(jù)儲(chǔ)存器180的鏈路110。測(cè)試設(shè)備120 —般地表示測(cè)試來(lái)自部署設(shè)備140的代碼改變的任何計(jì)算設(shè)備或計(jì)算設(shè)備的組合。部署設(shè)備140表示接收代碼改變并且在連續(xù)部署管道中部署代碼改變的計(jì)算設(shè)備。
[0016]客戶(hù)端設(shè)備160表示被配置成與測(cè)試設(shè)備120和部署設(shè)備140經(jīng)由鏈路110交互的計(jì)算設(shè)備和/或計(jì)算設(shè)備的組合。交互可以包括代表用戶(hù)發(fā)送和/或傳送數(shù)據(jù),諸如代碼改變。交互也可以包括接收數(shù)據(jù),諸如具有代碼改變的軟件應(yīng)用。客戶(hù)端設(shè)備160可以例如為個(gè)人計(jì)算設(shè)備,其包括使得用戶(hù)能夠創(chuàng)建和/或編輯用于軟件應(yīng)用的代碼的軟件。客戶(hù)端設(shè)備160還可以包括運(yùn)行用于用戶(hù)的應(yīng)用的用戶(hù)的計(jì)算設(shè)備。
[0017]測(cè)試設(shè)備120表示被配置成在連續(xù)部署管道中的應(yīng)用上施行性能測(cè)試的計(jì)算設(shè)備和/或計(jì)算設(shè)備的組合。測(cè)試設(shè)備120還被配置成在測(cè)試環(huán)境之下的應(yīng)用中在連續(xù)部署管道上執(zhí)行一組測(cè)試腳本以集成代碼改變來(lái)在軟件應(yīng)用中使用。
[0018]數(shù)據(jù)儲(chǔ)存器180 —般地表示被配置成存儲(chǔ)可由測(cè)試設(shè)備120和部署設(shè)備140在施行其功能時(shí)訪(fǎng)問(wèn)的數(shù)據(jù)的任何存儲(chǔ)器。測(cè)試設(shè)備120的功能性可以經(jīng)由鏈路110實(shí)現(xiàn),該鏈路110將測(cè)試設(shè)備120連接到部署設(shè)備140、客戶(hù)端設(shè)備160和數(shù)據(jù)儲(chǔ)存器180。
[0019]鏈路110 —般地表示經(jīng)由電信鏈路、紅外鏈路、射頻鏈路或者提供電子通信的任何其它連接器或系統(tǒng)的線(xiàn)纜、無(wú)線(xiàn)、光纖或遠(yuǎn)程連接中的一個(gè)或多