一種性能測試方法和設(shè)備的制作方法
【專利摘要】本申請公開了一種性能測試方法和設(shè)備,主要內(nèi)容包括:通過預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件,使得在需要對應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行性能測試時,可直接調(diào)用性能測試件來構(gòu)建測試場景,在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成環(huán)境沖突時,利用選取的所述性能測試件構(gòu)建的測試場景對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測,而無需手動創(chuàng)建測試環(huán)境,可有效提高對應(yīng)用軟件的測試效率以及應(yīng)用軟件性能測試的準(zhǔn)確性。
【專利說明】一種性能測試方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種性能測試方法和設(shè)備。
【背景技術(shù)】
[0002]應(yīng)用軟件開發(fā)后,應(yīng)用軟件的軟件代碼將在網(wǎng)站服務(wù)器內(nèi)上線運(yùn)行,用戶可登錄網(wǎng)站服務(wù)器并使用運(yùn)行的軟件代碼所提供的應(yīng)用服務(wù)。以購物網(wǎng)站內(nèi)“查看產(chǎn)品詳情”這一應(yīng)用軟件(后續(xù)稱之為應(yīng)用軟件A)為例,應(yīng)用軟件A的軟件代碼在購物網(wǎng)站的服務(wù)器內(nèi)運(yùn)行,用戶登錄該服務(wù)器后,可通過頁面上的輸入接口(如頁面上的“詳情”按鍵)調(diào)用該應(yīng)用軟件A,以獲得查看某一產(chǎn)品詳情的應(yīng)用服務(wù)。
[0003]大部分應(yīng)用軟件的開發(fā)過程中,需要不斷地創(chuàng)建或者修改一些應(yīng)用來實(shí)現(xiàn)業(yè)務(wù)功能,因此,應(yīng)用軟件的代碼內(nèi)大多會包含版本控制信息,在應(yīng)用軟件的代碼變更時會記錄一個版本號,用于記錄本次代碼變更過程,SVN、git、CVS等都是業(yè)界比較常用的版本控制軟件。
[0004]應(yīng)用軟件的代碼變更包括兩個方面,一個是應(yīng)用軟件的主干代碼變更,另一個是應(yīng)用軟件的分支代碼變更。所述分支代碼是指應(yīng)用軟件開發(fā)過程中部署的代碼,所述主干代碼是指分支代碼上線應(yīng)用到真實(shí)環(huán)境所部署的代碼。當(dāng)應(yīng)用軟件需要進(jìn)行修改等變更操作時,首先需要在分支代碼中進(jìn)行相應(yīng)代碼的變更,然后再將變更后的分支代碼上線應(yīng)用到主干代碼,實(shí)現(xiàn)主干代碼的相應(yīng)變更。實(shí)際上,對主干代碼進(jìn)行變更后可能會對主干代碼的性能造成不利影響,因此,在將分支代碼上線應(yīng)用到主干代碼之前,需要評估分支代碼的變更會對主干代碼的性能造成何種影響。
[0005]目前,可以采用測試的方式來評估分支代碼的變更對主干代碼的性能影響,即:為未變更的主干代碼模擬運(yùn)行環(huán)境,測試在該運(yùn)行環(huán)境下主干代碼的性能,獲得基準(zhǔn)測試數(shù)據(jù);再為變更后的分支代碼模擬相同的運(yùn)行環(huán)境,測試分支代碼在該運(yùn)行環(huán)境下的性能,獲得對比測試數(shù)據(jù),將兩次測試的性能結(jié)果進(jìn)行比對,評估分支代碼的變更會對主干代碼帶來何種性能影響。
[0006]上述測試方式的具體做法如圖1所示,主要包括以下流程:
[0007]第一步:在對應(yīng)用軟件的分支代碼進(jìn)行變更后,評估是否需要進(jìn)行性能測試。
[0008]具體的評估依據(jù)可以為:當(dāng)本次對分支代碼的內(nèi)容變更比較多或更新后的分支代碼在運(yùn)行時出現(xiàn)異常時,可認(rèn)為需要進(jìn)行性能測試處理。
[0009]第二步:手動創(chuàng)建測試場景。
[0010]在本步驟中,根據(jù)待測應(yīng)用軟件需測試的功能,分別創(chuàng)建測試場景,如應(yīng)用軟件A的功能I和功能2的性能需要測試,要分別針對功能I和功能2創(chuàng)建兩個測試場景。
[0011]以針對功能I的測試場景為例,對該測試場景的創(chuàng)建過程包括以下操作:
[0012]首先生成調(diào)用功能I的測試腳本,然后為功能I的運(yùn)行過程配置運(yùn)行環(huán)境參數(shù),如測試時間、測試壓力(并行觸發(fā)數(shù)量)等參數(shù),以創(chuàng)建針對功能I的測試場景。
[0013]第三步:將待測應(yīng)用軟件的分支代碼和主干代碼分別在創(chuàng)建的測試場景下進(jìn)行壓測。
[0014]本步驟中,待測應(yīng)用軟件的分支代碼是該應(yīng)用軟件最近一次更新后的分支代碼。
[0015]第四步:將兩次壓測結(jié)果進(jìn)行比較,確定分支代碼的變更對主干代碼的性能影響程度。
[0016]上述性能測試方法可以在一定程度上反映出對應(yīng)用軟件的更新操作對應(yīng)用軟件的性能造成的影響程度,但是,手動創(chuàng)建測試場景需要耗費(fèi)大量的時間,如果一次測試過程涉及3個測試場景,則需要分別對主干代碼和分支代碼的測試過程分別創(chuàng)建3個測試場景,總共要創(chuàng)建6個測試場景,在每年數(shù)萬次更新操作的情況下,針對每次更新操作都要按照上述方式分別針對主干代碼和分支代碼手動創(chuàng)建測試場景,會導(dǎo)致測試效率低下,且這種每次手動創(chuàng)建測試場景的方式也容易出現(xiàn)誤差,導(dǎo)致測試的準(zhǔn)確性受到影響。
【發(fā)明內(nèi)容】
[0017]本申請實(shí)施例提供了一種性能測試方法和設(shè)備,用以解決現(xiàn)有技術(shù)中存在對應(yīng)用軟件的主干代碼和分支代碼的性能測試效率低下和準(zhǔn)確性較低的問題。
[0018]本申請實(shí)施例提供了一種性能測試方法,所述方法包括:
[0019]從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0020]檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件;
[0021]若不存在,則利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0022]通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
[0023]從上述方法可以看出,由于通過預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件構(gòu)造性能測試庫,使得在需要對應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行性能測試時,可直接根據(jù)待測應(yīng)用軟件的測試需求從性能測試庫中選取性能測試件來構(gòu)建測試場景,在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成關(guān)聯(lián)的應(yīng)用軟件方面的環(huán)境沖突時,利用選取的所述性能測試件構(gòu)建的測試場景對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測,而無需手動創(chuàng)建測試環(huán)境,可有效提高對應(yīng)用軟件的測試效率及應(yīng)用軟件性能測試的準(zhǔn)確性。
[0024]優(yōu)選地,在利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測之前,所述方法還包括:
[0025]確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值;
[0026]當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件時,判斷選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值,若是,則等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0027]由于在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成對應(yīng)的數(shù)據(jù)源方面的環(huán)境沖突時再進(jìn)行壓測,可減少環(huán)境沖突帶來的無意義的操作。
[0028]優(yōu)選地,在利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測之前,所述方法還包括:
[0029]對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼能夠正常運(yùn)行。
[0030]通過壓測前對待測應(yīng)用軟件的主干代碼和分支代碼的可用性進(jìn)行探測,可減少無意義的壓測操作。
[0031]優(yōu)選地,所述性能測試件包含的運(yùn)行環(huán)境參數(shù)中有觸發(fā)時間;
[0032]在從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件之前,所述方法還包括:
[0033]確定到達(dá)所述觸發(fā)時間。
[0034]通過觸發(fā)時間作為運(yùn)行壓測操作的條件,可根據(jù)實(shí)際需求檢測出可能存在的性能問題,無需人工干預(yù),可操作性高。
[0035]本申請實(shí)施例還提供一種性能測試方法,所述方法包括:
[0036]從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,并確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0037]檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的檢測性能測試件;
[0038]若不存在,則利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;若存在,則判斷選取的性能測試件和檢測出的性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值;
[0039]若大于設(shè)定閾值,則等待檢測出的檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0040]從上述方法可以看出,由于通過預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件構(gòu)造性能測試庫,使得在需要對應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行性能測試時,可直接根據(jù)待測應(yīng)用軟件的測試需求從性能測試庫中選取性能測試件來構(gòu)建測試場景,在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成對應(yīng)的數(shù)據(jù)源方面的環(huán)境沖突時,利用選取的所述性能測試件構(gòu)建的測試場景對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測,而無需手動創(chuàng)建測試環(huán)境,可有效提高對應(yīng)用軟件的測試效率及應(yīng)用軟件性能測試的準(zhǔn)確性。
[0041]本申請實(shí)施例還提供一種性能測試設(shè)備,所述設(shè)備包括:
[0042]測試件選取模塊,用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0043]第一環(huán)境檢測模塊,用于檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件;
[0044]壓測模塊,用于在所述第一環(huán)境檢測模塊確定不存在所述第一檢測性能測試件時,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0045]性能確定模塊,用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
[0046]從上述系統(tǒng)可以看出,由于通過預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件構(gòu)造性能測試庫,使得在需要對應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行性能測試時,可直接根據(jù)待測應(yīng)用軟件的測試需求從性能測試庫中選取性能測試件來構(gòu)建測試場景,在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成關(guān)聯(lián)的應(yīng)用軟件方面的環(huán)境沖突時,利用選取的所述性能測試件構(gòu)建的測試場景對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測,而無需手動創(chuàng)建測試環(huán)境,可有效提高對應(yīng)用軟件的測試效率及應(yīng)用軟件性能測試的準(zhǔn)確性。
[0047]優(yōu)選地,所述設(shè)備還包括:
[0048]第二環(huán)境檢測模塊,用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件時,判斷選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值;
[0049]壓測模塊,還用于在所述第二環(huán)境檢測模塊確定權(quán)重值之和大于設(shè)定閾值時,等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0050]由于在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成對應(yīng)的數(shù)據(jù)源方面的環(huán)境沖突時再進(jìn)行壓測,可減少環(huán)境沖突帶來的無意義的操作。
[0051 ] 優(yōu)選地,所述設(shè)備還包括:
[0052]探測模塊,用于對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼是否能夠正常運(yùn)行。
[0053]通過壓測前對待測應(yīng)用軟件的主干代碼和分支代碼的可用性進(jìn)行探測,可減少無意義的壓測操作。
[0054]優(yōu)選地,所述性能測試件包含的運(yùn)行環(huán)境參數(shù)中有觸發(fā)時間;
[0055]所述測試件選取模塊,具體用于確定到達(dá)所述觸發(fā)時間時,從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件。
[0056]通過觸發(fā)時間作為運(yùn)行壓測操作的條件,可根據(jù)實(shí)際需求檢測出可能存在的性能問題,無需人工干預(yù),可操作性高。
[0057]本申請實(shí)施例還提供一種性能測試設(shè)備,所述設(shè)備包括:
[0058]測試件選取模塊,用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0059]環(huán)境檢測模塊,用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的性能測試件時,判斷選取的性能測試件和檢測出的性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值;
[0060]壓測模塊,用于在所述環(huán)境檢測模塊確定權(quán)重值之和大于設(shè)定閾值時,等待檢測出的性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0061]性能確定模塊,用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
[0062]從上述系統(tǒng)可以看出,由于通過預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件構(gòu)造性能測試庫,使得在需要對應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行性能測試時,可直接根據(jù)待測應(yīng)用軟件的測試需求從性能測試庫中選取性能測試件來構(gòu)建測試場景,在選取的性能測試件不會對當(dāng)前正在運(yùn)行的性能測試件造成對應(yīng)的數(shù)據(jù)源方面的環(huán)境沖突時,利用選取的所述性能測試件構(gòu)建的測試場景對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測,而無需手動創(chuàng)建測試環(huán)境,可有效提高對應(yīng)用軟件的測試效率及應(yīng)用軟件性能測試的準(zhǔn)確性。
【專利附圖】
【附圖說明】
[0063]圖1為【背景技術(shù)】中對應(yīng)用軟件的主干代碼和分支代碼性能影響的測試流程示意圖;
[0064]圖2為本申請實(shí)施例一中性能測試件的示意圖;
[0065]圖3 (a)和圖3 (b)為本申請實(shí)施例二中對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行性能測試的方法步驟示意圖;
[0066]圖4為本申請實(shí)施例三中性能測試設(shè)備的結(jié)構(gòu)示意圖;
[0067]圖5為本申請實(shí)施例四中性能測試設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0068]在本申請實(shí)施例的方案中,預(yù)先針對各應(yīng)用軟件創(chuàng)建性能測試件,所述性能測試件中包含了對應(yīng)用軟件進(jìn)行壓測時所需的測試腳本和運(yùn)行環(huán)境參數(shù),在需要對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行測試時,可直接選取性能測試件來構(gòu)建測試場景,并檢測選取的性能測試件是否會對當(dāng)前正在運(yùn)行的性能測試件造成環(huán)境沖突,如果會對當(dāng)前正在運(yùn)行的性能測試件造成環(huán)境沖突,則等待造成環(huán)境沖突的性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測(即選取的性能測試件與沖突的性能測試件之間串行運(yùn)行);如果不會對當(dāng)前正在運(yùn)行的性能測試件造成環(huán)境沖突,則直接利用選取的所述性能測試件對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行壓測(即選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件之間并行運(yùn)行),并根據(jù)兩次壓測結(jié)果得到對該應(yīng)用軟件的性能壓測結(jié)果。
[0069]由于本申請實(shí)施例的方案中無需手動創(chuàng)建測試環(huán)境,而是直接調(diào)用已創(chuàng)建的性能測試件來構(gòu)建測試場景,可有效提高對應(yīng)用軟件的測試效率及應(yīng)用軟件性能測試的準(zhǔn)確性,同時,調(diào)用的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間進(jìn)行環(huán)境沖突檢測,可防止由于性能測試件之間的沖突導(dǎo)致無意義的性能壓測操作。
[0070]需要說明的是,本申請實(shí)施例以對一個待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行性能測試為例進(jìn)行描述,但本申請實(shí)施例的方案也不限于并行對多個待測應(yīng)用軟件的主干代碼和分支代碼性能進(jìn)行測試,針對每個待測應(yīng)用軟件的測試方式相同。
[0071]下面結(jié)合具體實(shí)施例對本申請的方案進(jìn)行詳細(xì)描述。
[0072]實(shí)施例一:
[0073]本申請實(shí)施例一描述了一種創(chuàng)建性能測試件的方案,在對應(yīng)用軟件進(jìn)行性能測試之前執(zhí)行,包括以下步驟:
[0074]第一步:為創(chuàng)建的性能測試件分配資源。
[0075]在本步驟中,可為待創(chuàng)建的性能測試件分配資源,如為性能測試件分配存儲空間坐寸ο
[0076]第二步:在創(chuàng)建的性能測試件中生成該性能測試件和其所針對的應(yīng)用軟件之間的關(guān)聯(lián)關(guān)系。
[0077]由于性能測試件是針對某一應(yīng)用軟件創(chuàng)建的,因此,可建立該性能測試件與該應(yīng)用軟件之間的關(guān)聯(lián)關(guān)系,即:在性能測試件中記錄具有關(guān)聯(lián)關(guān)系的應(yīng)用軟件的標(biāo)識。
[0078]—方面,一個性能測試件可為至少一個應(yīng)用軟件的性能測試提供服務(wù),因此,一個性能測試件可與至少一個應(yīng)用軟件建立關(guān)聯(lián)關(guān)系;另一方面,一個應(yīng)用軟件的測試環(huán)境需由至少一個性能測試件來搭建,因此,一個應(yīng)用軟件可與至少一個性能測試件建立關(guān)聯(lián)關(guān)系O
[0079]第三步:在創(chuàng)建的性能測試件中生成針對關(guān)聯(lián)的應(yīng)用軟件的測試腳本和運(yùn)行環(huán)境參數(shù)。
[0080]以“查看產(chǎn)品詳情”這一應(yīng)用軟件A為例,創(chuàng)建的測試腳本為“調(diào)用應(yīng)用軟件A,發(fā)起查看產(chǎn)品詳情的請求”,即生成壓測請求,若調(diào)用應(yīng)用軟件A的路徑為畫.aliexpress.com,則生成的壓測請求為調(diào)用WWW.aliexpress.com。
[0081]創(chuàng)建的運(yùn)行環(huán)境參數(shù)可包括壓測時間(如15分鐘)、并發(fā)用戶數(shù)(如10個用戶并行發(fā)起查看產(chǎn)品詳情的請求)等。
[0082]第四步:在創(chuàng)建的性能測試件中生成觸發(fā)時間。
[0083]本步驟是創(chuàng)建性能測試件的優(yōu)選步驟,所述觸發(fā)時間可視為該性能測試件的運(yùn)行時間,即:與該性能測試件關(guān)聯(lián)的應(yīng)用軟件性能測試的觸發(fā)條件,當(dāng)觸發(fā)時間到達(dá)時,該性能測試件可自動運(yùn)行,為應(yīng)用軟件搭建測試環(huán)境,對應(yīng)用軟件的性能進(jìn)行測試。
[0084]例如:若觸發(fā)時間為8:00和20:00,表示每當(dāng)8:00或20:00到達(dá)時,可自動調(diào)用在當(dāng)前時刻具有關(guān)聯(lián)關(guān)系的應(yīng)用軟件的主干代碼,并自動編譯并搭建測試環(huán)境,利用測試腳本和運(yùn)行環(huán)境參數(shù)對調(diào)用的主干代碼進(jìn)行壓測。
[0085]再例如,創(chuàng)建測試周期,以測試周期為觸發(fā)時間,每當(dāng)測試周期到達(dá)時,測試件自動運(yùn)行。這種以測試周期(如一天)為觸發(fā)時間的做法,可以檢查當(dāng)日對分支代碼所做的更改是否影響了主干代碼的性能,縮小代碼檢查的難度,更快速的檢測出可能存在的性能問題,符合快速構(gòu)建迭代開發(fā)的敏捷特性,且無需人工干預(yù),可操作性高。同時,性能測試過程不局限于分支代碼上線成為主干代碼后,而是貫穿在每次分支代碼的變更階段,實(shí)現(xiàn)快速預(yù)警。
[0086]第五步:為創(chuàng)建的性能測試件配置對應(yīng)的數(shù)據(jù)源以及該性能測試件對該數(shù)據(jù)源的依賴權(quán)重值。
[0087]所述數(shù)據(jù)源包括但不限于數(shù)據(jù)庫、緩存文件等,一個性能測試件可以配置至少一個對應(yīng)的數(shù)據(jù)源,一個數(shù)據(jù)源也可配置成至少一個性能測試件的數(shù)據(jù)源。在性能測試件運(yùn)行時,需要從對應(yīng)的數(shù)據(jù)源中讀取相應(yīng)的數(shù)據(jù)。
[0088]針對性能測試件對應(yīng)的每個數(shù)據(jù)源,分別配置性能測試件對該數(shù)據(jù)源的依賴權(quán)重值,所述依賴權(quán)重值表示性能測試件對數(shù)據(jù)源的依賴程度,權(quán)重值越高,性能測試件對數(shù)據(jù)源的依賴越高。例如:性能測試件A對應(yīng)兩個數(shù)據(jù)源,分別為數(shù)據(jù)源I和數(shù)據(jù)源2,其中,性能測試件A對數(shù)據(jù)源I的依賴權(quán)重值為0.5,對數(shù)據(jù)源2的依賴權(quán)重值為0.2。假設(shè)權(quán)重值最大可配置為0.5,表示數(shù)據(jù)源I只能被性能測試件A獨(dú)占;數(shù)據(jù)源2在被性能測試件A占用時,如果其他性能測試件對數(shù)據(jù)源2的依賴權(quán)重值不大于0.3,則數(shù)據(jù)源2還可以同時被其他性能測試件占用。
[0089]通過以上五步創(chuàng)建得到的性能測試件的內(nèi)容示意圖如圖2所示,其中,測試腳本(如壓測請求)和運(yùn)行環(huán)境參數(shù)(如壓測時間、并發(fā)用戶數(shù))是進(jìn)行壓測過程的要素;觸發(fā)時間作為可選參數(shù)是觸發(fā)壓測的條件,用于指定性能測試件何時運(yùn)行;性能測試件和應(yīng)用軟件的關(guān)聯(lián)關(guān)系表明性能測試件屬于哪個應(yīng)用軟件,從而可以在對某一應(yīng)用軟件進(jìn)行性能測試時選取合適的性能測試件;對應(yīng)的數(shù)據(jù)源以及該性能測試件對該數(shù)據(jù)源的依賴權(quán)重值表示性能測試件運(yùn)行時所依賴的數(shù)據(jù)源以及對數(shù)據(jù)源的依賴程度。
[0090]本實(shí)施例一并不對以上第二、三、四、五步驟的先后順序進(jìn)行限定,可按任意順序執(zhí)行上述四個步驟并生成相應(yīng)的參數(shù),或是并行執(zhí)行上述四個步驟并生成相應(yīng)的參數(shù)。
[0091]利用上述實(shí)施例一的方案創(chuàng)建性能測試件后,多個性能測試件可構(gòu)成性能測試庫。當(dāng)需要對某一應(yīng)用軟件的主干代碼和分支代碼進(jìn)行測試時,可首先自動選取性能測試件,然后針對應(yīng)用軟件的主干代碼和分支代碼自動執(zhí)行選取的性能測試件,最后自動分析壓測結(jié)果,完成對應(yīng)用軟件的主干代碼和分支代碼的性能比較過程,具體做法參見實(shí)施例
--O
[0092]實(shí)施例二:
[0093]如圖3 Ca)和圖3 (b)所示,為本實(shí)施例二中對應(yīng)用軟件的主干代碼和分支代碼進(jìn)行性能測試的方法步驟示意圖,主要包括以下步驟:
[0094]步驟101:從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件。
[0095]在實(shí)施例一中創(chuàng)建的性能測試件中包含了與該性能測試件具有關(guān)聯(lián)關(guān)系的應(yīng)用軟件的標(biāo)識,因此,可以從性能測試庫中選取包含所述待測應(yīng)用軟件標(biāo)識的性能測試件,選取出的性能測試件即為與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件。
[0096]假設(shè)本步驟101中選取的性能測試件為圖2所示的性能測試件,則可以在性能測試件的觸發(fā)時間(8:00和20:00)到達(dá)時,自動執(zhí)行后續(xù)步驟,即:將性能測試件的觸發(fā)時間作為性能測試的觸發(fā)條件。
[0097]本實(shí)施例的方案也可以不以觸發(fā)時間作為性能測試的觸發(fā)條件,而以手動觸發(fā)作為性能測試的觸發(fā)條件,即:在執(zhí)行完本步驟101后,不論觸發(fā)時間是否到達(dá),都可手動觸發(fā)繼續(xù)執(zhí)行后續(xù)步驟。
[0098]步驟102:檢查當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件。
[0099]本步驟102是對選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間進(jìn)行環(huán)境沖突檢測的步驟,由于每個性能測試件都有關(guān)聯(lián)的應(yīng)用軟件,因此,一旦多個性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集,則這多個性能測試件是無法并行執(zhí)行的,只能串行執(zhí)行。
[0100]有鑒于此,本步驟102對當(dāng)前運(yùn)行的性能測試件關(guān)聯(lián)的應(yīng)用軟件進(jìn)行檢測,確定是否存在與選取的性能測試件的應(yīng)用軟件有交集的性能測試件。
[0101]若不存在,表示選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間沒有關(guān)聯(lián)的應(yīng)用軟件的沖突。
[0102]若存在,則將與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的性能測試件稱之為第一檢測性能測試件,選取的性能測試件與所屬第一檢測性能測試件在關(guān)聯(lián)的應(yīng)用軟件上有沖突,不得并行運(yùn)行,需等待所述第一檢測性能測試件運(yùn)行結(jié)束后,才能運(yùn)行選取的性能測試件。
[0103]需要說明的是,當(dāng)前運(yùn)行的性能測試件中,可能有至少一個性能測試件與選取的性能測試件在關(guān)聯(lián)的應(yīng)用軟件上有沖突,即可能存在至少一個第一檢測性能測試件。
[0104]例如:選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件是應(yīng)用軟件A和應(yīng)用軟件B,當(dāng)前正在運(yùn)行的一個性能測試件關(guān)聯(lián)的應(yīng)用軟件是應(yīng)用軟件A,另一個運(yùn)行的性能測試件關(guān)聯(lián)的應(yīng)用軟件是應(yīng)用軟件B,則選取的性能測試件與這兩個性能測試件沖突。
[0105]步驟103:確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及該性能測試件對該數(shù)據(jù)源依賴的權(quán)重值。
[0106]步驟104:檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件,若存在,則執(zhí)行步驟105 ;否貝U,執(zhí)行步驟107。
[0107]本步驟104也是對選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間進(jìn)行環(huán)境沖突檢測的步驟,由于每個性能測試件都有對應(yīng)的數(shù)據(jù)源,因此,一旦多個性能測試件對應(yīng)的數(shù)據(jù)源有交集,且這多個性能測試件對交集的數(shù)據(jù)源依賴的權(quán)重值之和大于設(shè)定閾值,表示交集的數(shù)據(jù)源無法同時為這多個性能測試件提供服務(wù),因此,這多個性能測試件是無法全部并行執(zhí)行的。
[0108]有鑒于此,本步驟104對當(dāng)前運(yùn)行的性能測試件對應(yīng)的數(shù)據(jù)源進(jìn)行檢測,確定是否存在與選取的性能測試件的數(shù)據(jù)源有交集的性能測試件。
[0109]若不存在,表示選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間沒有數(shù)據(jù)源的沖突。
[0110]若存在,則將與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的性能測試件稱之為第二檢測性能測試件,此時,第二檢測性能測試件與選取的性能測試件雖然要占用相同的數(shù)據(jù)源,但由于性能測試件對數(shù)據(jù)源的依賴程度不同,因此,還不能確定第二檢測性能測試件與選取的性能測試件在數(shù)據(jù)源上是否有沖突,還需進(jìn)一步檢測。
[0111]步驟105:確定選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值,若是,則執(zhí)行步驟106 ;否則,執(zhí)行步驟107。
[0112]選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和表示性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴程度的總和,若大于設(shè)定閾值時,則性能測試件和第二檢測性能測試件在數(shù)據(jù)源上有沖突,不得并行運(yùn)行;若不大于設(shè)定閾值,則性能測試件和第二檢測性能測試件在數(shù)據(jù)源上沒有沖突,可以并行運(yùn)行。
[0113]步驟106:若步驟102的檢測結(jié)果是存在第一檢測性能測試件,則等待第一檢測性能測試件和第二檢測性能測試件都運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0114]若步驟102的檢測結(jié)果是不存在第一檢測性能測試件,則等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0115]步驟107:若步驟102的檢測結(jié)果是存在第一檢測性能測試件,則等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0116]若步驟102的檢測結(jié)果是不存在第一檢測性能測試件,則直接利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0117]在本實(shí)施例二的具體執(zhí)行過程中,當(dāng)步驟101選取了一個性能測試件后,會先將選取的性能測試件放入等待執(zhí)行隊(duì)列中進(jìn)行排隊(duì),依次調(diào)用隊(duì)列中的性能測試件并按照上述步驟102至步驟107的方式確定是否運(yùn)行調(diào)用的性能測試件,直至所有排隊(duì)的性能測試件都執(zhí)行完畢。
[0118]在本實(shí)施例二的方案中,進(jìn)行壓測的分支代碼和主干代碼是指:在當(dāng)前時刻待測應(yīng)用軟件最新的分支代碼和主干代碼。
[0119]利用選取的性能測試件自動搭建測試環(huán)境,并將待測應(yīng)用軟件的主干代碼和分支代碼在所述測試場景下進(jìn)行壓測,得到的兩次壓測結(jié)果進(jìn)行比較,確定分支代碼的變更對主干代碼的性能影響。
[0120]所述壓測結(jié)果包括但不限于以下內(nèi)容:
[0121]主干代碼版本號、平均響應(yīng)時長、每秒完成事務(wù)數(shù)(TPS)、錯誤率。
[0122]在本實(shí)施例二的方案中,對選取的性能測試件與當(dāng)前正在運(yùn)行的性能測試件間進(jìn)行了兩次環(huán)境沖突的檢測,一次是關(guān)聯(lián)應(yīng)用軟件的沖突檢測,另一次是對應(yīng)的數(shù)據(jù)源的沖突檢測,本實(shí)施例的方案也不限于先進(jìn)行數(shù)據(jù)源的沖突檢測,再進(jìn)行關(guān)聯(lián)應(yīng)用軟件的沖突檢測,或是兩次沖突檢測并行執(zhí)行的方案。當(dāng)然,本實(shí)施例二中的兩次沖突檢測也可以獨(dú)立執(zhí)行。
[0123]步驟108:比較對主干代碼和分支代碼的壓測結(jié)果,確定所述待測應(yīng)用軟件的性倉泛。
[0124]通過兩次壓測結(jié)果的比較,評估分支代碼的變更會對主干代碼帶來何種性能影響。以壓測結(jié)果為平均響應(yīng)時長為例,若兩次壓測結(jié)果相差較大,表明分支代碼的變更對主干代碼帶來了明顯影響。
[0125]優(yōu)選地,在本實(shí)施例二的方案中,考慮到分支代碼的穩(wěn)定性不如主干代碼,在對分支代碼進(jìn)行變更后,如果分支代碼的不穩(wěn)定性導(dǎo)致分支代碼不能正常運(yùn)行,即使按照實(shí)施例二的方案進(jìn)行測試,其壓測結(jié)果也必然是不真實(shí)的,既浪費(fèi)了測試資源,又無法得到較好的壓測結(jié)果,因此,在步驟106和步驟107執(zhí)行之前,需對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼能夠正常運(yùn)行。這里對待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測的操作可以在步驟106和步驟107之前的任意時刻執(zhí)行,優(yōu)選地,可在步驟105執(zhí)行完畢,測試環(huán)境自動部署好后再執(zhí)行。若探測結(jié)果出現(xiàn)待測應(yīng)用軟件的主干代碼和/或分支代碼不能正常運(yùn)行,則結(jié)束本實(shí)施例二的方案。
[0126]具體地,對待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測的操作為:
[0127]由于待測應(yīng)用軟件的主干代碼和分支代碼存儲在應(yīng)用服務(wù)器中,因此,可向相應(yīng)的應(yīng)用服務(wù)器發(fā)送探測請求,所述探測請求可以是HTTP、TELNET、NETSTAT等形式的探測請求,并根據(jù)應(yīng)用服務(wù)器返回的探測響應(yīng)確定應(yīng)用服務(wù)器中的待測應(yīng)用軟件的主干代碼和分支代碼是否可用。這里的探測請求與實(shí)施例一中創(chuàng)建性能測試件時生成的壓測請求的內(nèi)容相同,在調(diào)用性能測試件對待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行性能測試之前,利用探測請求確定待測應(yīng)用軟件的主干代碼和分支代碼可用。
[0128]所述探測響應(yīng)包括但不限于以下兩種情況:
[0129]情況一:探測響應(yīng)返回狀態(tài)信息,如探測響應(yīng)的內(nèi)容是HTTP_C0DE=200,根據(jù)狀態(tài)信息確定待測應(yīng)用軟件的主干代碼和分支代碼是否可用。
[0130]情況二:探測響應(yīng)返回文本信息,如Aliexpress文本信息,若返回的文本信息是探測請求指定的文本信息,則確定待測應(yīng)用軟件的主干代碼和分支代碼可用。
[0131]實(shí)施例三:
[0132]如圖4所示,為本實(shí)施例三中性能測試設(shè)備的結(jié)構(gòu)示意圖,所述設(shè)備包括:測試件選取模塊11、第一環(huán)境檢測模塊12、壓測模塊13和性能確定模塊14,其中:
[0133]測試件選取模塊11用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0134]第一環(huán)境檢測模塊12用于檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件;
[0135]壓測模塊13用于在所述第一環(huán)境檢測模塊12確定不存在所述第一檢測性能測試件時,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0136]性能確定模塊14用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
[0137]以上是對關(guān)聯(lián)的應(yīng)用軟件的環(huán)境沖突進(jìn)行檢測的過程,本實(shí)施例的方案中還可對數(shù)據(jù)源的環(huán)境沖突進(jìn)行檢測。
[0138]所述設(shè)備還包括第二環(huán)境檢測模塊15,用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件時,判斷選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值;
[0139]壓測模塊13還用于在所述第二環(huán)境檢測模塊15確定權(quán)重值之和大于設(shè)定閾值時,等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
[0140]所述設(shè)備還包括探測模塊16,用于對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼是否能夠正常運(yùn)行。
[0141]所述性能測試件包含的運(yùn)行環(huán)境參數(shù)中有觸發(fā)時間;所述測試件選取模塊11具體用于確定到達(dá)所述觸發(fā)時間時,從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件。
[0142]本實(shí)施例三描述了對關(guān)聯(lián)的應(yīng)用軟件的環(huán)境沖突進(jìn)行檢測,以及對關(guān)聯(lián)的應(yīng)用軟件和數(shù)據(jù)源的環(huán)境沖突進(jìn)行檢測,本實(shí)施例四的性能測試設(shè)備中也可以只對數(shù)據(jù)源的環(huán)境沖突進(jìn)行檢測,下面詳細(xì)加以說明:
[0143]實(shí)施例四:
[0144]如圖5所示,為本實(shí)施例四中性能測試設(shè)備的結(jié)構(gòu)示意圖,所述設(shè)備包括:測試件選取模塊21、環(huán)境檢測模塊22、壓測模塊23和性能確定模塊24,其中:
[0145]測試件選取模塊21用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù);
[0146]環(huán)境檢測模塊22用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的性能測試件時,判斷選取的性能測試件和檢測出的性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值;
[0147]壓測模塊23用于在所述環(huán)境檢測模塊22確定權(quán)重值之和大于設(shè)定閾值時,等待檢測出的性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;
[0148]性能確定模塊24用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
[0149]所述設(shè)備還包括探測模塊25,用于對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼是否能夠正常運(yùn)行。
[0150]利用本申請各實(shí)施例的方案,可得到以下效果:
[0151]I)、提高測試效率。本申請實(shí)施例的方案通過創(chuàng)建性能測試件,固定性能測試環(huán)境,無需每次測試時來手動創(chuàng)建測試環(huán)境,提高了測試效率。同時,通過引入性能測試件中的觸發(fā)時間,可定時或周期性對應(yīng)用軟件的主干代碼進(jìn)行測試,而無需人工介入,也不需要人工評估是否需要進(jìn)行測試。
[0152]2)、穩(wěn)定的測試環(huán)境。在本申請實(shí)施例的方案中,由于測試環(huán)境是通過預(yù)先創(chuàng)建的性能測試件搭建的,而性能測試件中的測試腳本和運(yùn)行環(huán)境參數(shù)等屬性是不變的,搭建的測試環(huán)境是一個相對穩(wěn)定的測試環(huán)境,因此,壓測結(jié)果更具有參考意義,不會受到真實(shí)的網(wǎng)絡(luò)拓?fù)洵h(huán)境或是訪問流量變化的干擾。
[0153]3)、避免環(huán)境沖突。在本申請實(shí)施例的方案中,通過增加環(huán)境沖突檢測,使得依賴相同環(huán)境(如關(guān)聯(lián)的應(yīng)用軟件有交集、對應(yīng)的數(shù)據(jù)源有交集且依賴程度高)的性能測試件串行運(yùn)行,可降低檢測的錯誤率;同時,通過增加對待測應(yīng)用軟件的主干代碼和分支代碼是否可用的探測功能,可進(jìn)一步降低檢測錯誤率,減少環(huán)境沖突和主干代碼、分支代碼的不可用導(dǎo)致的失敗。實(shí)驗(yàn)證明,本實(shí)施例二的方案,誤報率可以降低至20%。
[0154]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0155]本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0156]這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0157]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0158]在一個典型的配置中,所述計(jì)算機(jī)設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
[0159]盡管已描述了本申請的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請范圍的所有變更和修改。
[0160]顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種性能測試方法,其特征在于,所述方法包括: 從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù); 檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件; 若不存在,則利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測; 通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
2.如權(quán)利要求1所述的性能測試方法,其特征在于,在利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測之前,所述方法還包括: 確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值; 當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件時,判斷選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值,若是,則等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
3.如權(quán)利要求1或2所述的性能測試方法,其特征在于,在利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測之前,所述方法還包括: 對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼能夠正常運(yùn)行。
4.如權(quán)利要求1所述的性能測試方法,其特征在于,所述性能測試件包含的運(yùn)行環(huán)境參數(shù)中有觸發(fā)時間; 在從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件之前,所述方法還包括: 確定到達(dá)所述觸發(fā)時間。
5.一種性能測試方法,其特征在于,所述方法包括: 從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,并確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù); 檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的檢測性能測試件; 若不存在,則利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;若存在,則判斷選取的性能測試件和檢測出的性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值; 若大于設(shè)定閾值,則等待檢測出的檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
6.一種性能測試設(shè)備,其特征在于,所述設(shè)備包括: 測試件選取模塊,用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù); 第一環(huán)境檢測模塊,用于檢測當(dāng)前正在運(yùn)行的性能測試件中是否存在關(guān)聯(lián)的應(yīng)用軟件與所述選取的性能測試件關(guān)聯(lián)的應(yīng)用軟件有交集的第一檢測性能測試件; 壓測模塊,用于在所述第一環(huán)境檢測模塊確定不存在所述第一檢測性能測試件時,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否貝U,等待第一檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測; 性能確定模塊,用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
7.如權(quán)利要求6所述的性能測試設(shè)備,其特征在于,所述設(shè)備還包括: 第二環(huán)境檢測模塊,用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的第二檢測性能測試件時,判斷選取的性能測試件和第二檢測性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值; 壓測模塊,還用于在所述第二環(huán)境檢測模塊確定權(quán)重值之和大于設(shè)定閾值時,等待第二檢測性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測。
8.如權(quán)利要求6或7所述的性能測試設(shè)備,其特征在于,所述設(shè)備還包括: 探測模塊,用于對所述待測應(yīng)用軟件的主干代碼和分支代碼進(jìn)行探測,確定該主干代碼和分支代碼是否能夠正常運(yùn)行。
9.如權(quán)利要求6所述的性能測試設(shè)備,其特征在于,所述性能測試件包含的運(yùn)行環(huán)境參數(shù)中有觸發(fā)時間; 所述測試件選取模塊,具體用于確定到達(dá)所述觸發(fā)時間時,從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件。
10.一種性能測試設(shè)備,其特征在于,所述設(shè)備包括: 測試件選取模塊,用于從性能測試庫中選取與待測應(yīng)用軟件關(guān)聯(lián)的性能測試件,所述性能測試件中包含測試腳本和運(yùn)行環(huán)境參數(shù); 環(huán)境檢測模塊,用于確定選取的所述性能測試件對應(yīng)的數(shù)據(jù)源以及選取的性能測試件對該數(shù)據(jù)源依賴的權(quán)重值,當(dāng)檢測出當(dāng)前正在運(yùn)行的性能測試件中存在對應(yīng)的數(shù)據(jù)源與所述選取的性能測試件對應(yīng)的數(shù)據(jù)源有交集的性能測試件時,判斷選取的性能測試件和檢測出的性能測試件對交集的所述數(shù)據(jù)源依賴的權(quán)重值之和是否大于設(shè)定閾值; 壓測模塊,用于在所述環(huán)境檢測模塊確定權(quán)重值之和大于設(shè)定閾值時,等待檢測出的性能測試件運(yùn)行結(jié)束后,再利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測;否則,利用選取的所述性能測試件對所述待測應(yīng)用軟件的主干代碼和分支代碼分別進(jìn)行壓測; 性能確定模塊,用于通過比較對主干代碼和分支代碼的壓測結(jié)果確定所述待測應(yīng)用軟件的性能。
【文檔編號】G06F11/36GK104298589SQ201310298145
【公開日】2015年1月21日 申請日期:2013年7月16日 優(yōu)先權(quán)日:2013年7月16日
【發(fā)明者】袁翠, 許曉, 胡剛 申請人:阿里巴巴集團(tuán)控股有限公司