專利名稱:一種軟件性能測試方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機軟件性能測試領(lǐng)域,特別是涉及一種軟件性能測試方法和裝置。
背景技術(shù):
目前對一款軟件進(jìn)行性能測試通常的做法是編寫性能測試代碼(腳本),性能測試代碼實質(zhì)上就是自動執(zhí)行的客戶端程序,可以簡稱為性能測試客戶端。然后建立起性能測試進(jìn)程,在進(jìn)程內(nèi)并發(fā)運行多個性能測試客戶端訪問應(yīng)用服務(wù),這樣就達(dá)到了模擬多個客戶端的工作壓力進(jìn)行性能測試的目的?;ヂ?lián)網(wǎng)應(yīng)用的興起,對軟件性能測試提出了越來 越大的挑戰(zhàn)。海量用戶同時在線使用是互聯(lián)網(wǎng)應(yīng)用的顯著特征,因此,基于互聯(lián)網(wǎng)應(yīng)用的軟件性能測試要求測試場景中能夠保證有大量的性能測試客戶端同時運行,這樣才能夠達(dá)到充分真實模擬的目的?,F(xiàn)有的性能測試方法,絕大多數(shù)的情況下都是在使用某一種性能測試工具,其測試方法的過程如下測試代碼的生成測試代碼由2種方式得來,第I種是錄制測試客戶端的行為,然后做參數(shù)化處理;第2種是直接開發(fā)出此類代碼供使用;所述的測試代碼只模擬一個客戶端的行為;所有代碼都被設(shè)計成在一個線程內(nèi)順序執(zhí)行。測試執(zhí)行軟件測試工具提供測試進(jìn)程,進(jìn)程內(nèi)為每一個測試客戶端提供一個獨占的線程。假如控制多臺測試機(m臺)、每臺測試機啟動多個測試進(jìn)程(η個),每個測試進(jìn)程包括多個測試線程(t個),這樣,同時參與測試的客戶端個數(shù)是m*n*t個。從軟件設(shè)計性能的角度來考慮,測試機線程個數(shù)、cpu使用率、內(nèi)存等系統(tǒng)資源隨測試壓力的增加很快就會成為性能測試的瓶頸。所以現(xiàn)有的測試方法只能測試一些低壓力的場景,如果測試互聯(lián)網(wǎng)業(yè)務(wù),測試進(jìn)程的性能問題會導(dǎo)致測試無法進(jìn)行或者時間、資金、人員等成本十分高昂。并且在設(shè)計過程中沒有考慮到測試客戶端互相通信的需求,比如性能測試客戶端A在某個測試時刻要求性能測試客戶端B完成某個功能或變更某種屬性,這是無法辦到的,因為某個性能測試客戶端在設(shè)計上是封閉的,導(dǎo)致測試場景設(shè)計上不夠靈活。綜上所述,現(xiàn)有技術(shù)中的,軟件性能測試方法不能實現(xiàn)測試客戶端直接的通信,而且在海量測試客戶端同時進(jìn)行測試時受到系統(tǒng)資源的限制。
發(fā)明內(nèi)容
本發(fā)明提供了一種軟件性能測試方法,該方法能夠提高測試軟件性能的能力。本發(fā)明提供了一種軟件性能測試系統(tǒng),該系統(tǒng)能夠提高測試軟件性能的能力。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明公開了一種軟件性能測試方法,該方法包括設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法;設(shè)置線程池中線程的最小個數(shù)和最大個數(shù),建立最小個數(shù)的線程;對性能測試客戶端進(jìn)行初始化操作;在當(dāng)前執(zhí)行周期中,定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取性能測試客戶端和相應(yīng)的業(yè)務(wù)操作,在線程池中選擇空閑線程;性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作;所述業(yè)務(wù)操作執(zhí)行完畢后,將線程放回線程池中,并等待下一個執(zhí)行周期。本發(fā)明還公開了一種軟件性能測試裝置,該裝置包括定時調(diào)度器模塊、線程池模塊、多個性能測試客戶端模塊,其中,定時調(diào)度器模塊,用于周期性的選取一個或多個性能測試客戶端模塊、為性能測試客戶端模塊選取相應(yīng)的業(yè)務(wù)操作,為選取的業(yè)務(wù)操作在線程池模塊中選取空閑的線程; 性能測試客戶端模塊,包含待測軟件的客戶端屬性以及各種業(yè)務(wù)操作的集合;用于根據(jù)定時調(diào)度器模塊選取的業(yè)務(wù)操作和選取的空閑的線程進(jìn)行業(yè)務(wù)操作;線程池模塊,存放用于實現(xiàn)各種業(yè)務(wù)操作的線程,為性能測試客戶端模塊所要執(zhí)行的業(yè)務(wù)操作提供執(zhí)行的線程。由上述可見,本發(fā)明提供的技術(shù)方案,將性能測試客戶端編程為包含性能測試客戶端屬性和業(yè)務(wù)操作的集合,引入線程池用于執(zhí)行各個性能測試客戶端的業(yè)務(wù)操作,使用定時調(diào)度器進(jìn)行統(tǒng)一的調(diào)度管理,能夠更加靈活方便的控制軟件性能測試的測試過程,控制場景,并且通過軟件測試進(jìn)程內(nèi)的過程調(diào)用實現(xiàn)性能測試客戶端之間的通信。
圖I是本發(fā)明中一種軟件性能測試方法的流程圖;圖2是本發(fā)明中一種軟件性能測試方法的初始化流程圖;圖3是本發(fā)明中一種軟件性能測試方法的詳細(xì)流程圖;圖4是本發(fā)明中一種軟件性能測試裝置的結(jié)構(gòu)示意圖。
具體實施例方式圖I是本發(fā)明中一種軟件性能測試方法的流程圖,如圖I所示,步驟101,設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法;設(shè)置線程池中線程的最小個數(shù)和最大個數(shù),建立最小個數(shù)的線程;對性能測試客戶端進(jìn)行初始化操作;步驟102,在當(dāng)前執(zhí)行周期中,定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取性能測試客戶端和相應(yīng)的業(yè)務(wù)操作,在線程池中選擇空閑線程;步驟103,性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作;步驟104,所述業(yè)務(wù)操作執(zhí)行完畢后,將線程放回線程池中,并等待下一個執(zhí)行周期。為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述。在使用本發(fā)明提供的方法進(jìn)行軟件性能測試之前,首先要進(jìn)行初始化操作,即對定時調(diào)度器、線程池以及所有性能測試客戶端都進(jìn)行初始化操作;其中,圖2是本發(fā)明中一種軟件性能測試方法的初始化流程圖,如圖2所示
步驟201,對定時調(diào)度器進(jìn)行初始化操作,設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法;在本步驟中,設(shè)置定時調(diào)度器每隔一定時間執(zhí)行一次調(diào)度算法;其中,在本發(fā)明的實施例中,根據(jù)需要測試的軟件的設(shè)計測試方案,根據(jù)測試方案編寫相應(yīng)的調(diào)度算法。在所述調(diào)度算法中保存有性能測試客戶端存放的數(shù)據(jù)結(jié)構(gòu)的地址;在所述調(diào)度算法中保存有調(diào)用性能測試客戶端的方式以及每次調(diào)用性能測試客戶端的個數(shù);在所述調(diào)度算法中保存為性能測試客戶端選取相應(yīng)業(yè)務(wù)操作的方式。步驟202,對線程池進(jìn)行初始化操作,設(shè)置線程池中線程的最小個數(shù)和最大個數(shù);新建最小個數(shù)的線程;如果當(dāng)前的線程不夠支持業(yè)務(wù)操作,則線程池自動創(chuàng)建新的線程,直到當(dāng)前的線程數(shù)為預(yù)設(shè)的線程的最大個數(shù)。步驟203,對性能測試客戶中的屬性進(jìn)行初始化操作;將完成初始化操作的性能測試客戶端保存在數(shù)據(jù)結(jié)構(gòu)中。在本步驟中,從待測軟件的所有客戶端屬性中選取用于本次性能測試所必須的屬性,將所選取的客戶端屬性作為性能測試客戶端的屬性進(jìn)行初始化操作后,將所有性能測試客戶端都保存在同一個數(shù)據(jù)結(jié)構(gòu)中;其中,所述性能測試客戶端中包括用于測試待測軟件的所有業(yè)務(wù)操作的集合。 圖3是本發(fā)明中一種軟件性能測試方法的詳細(xì)流程圖,如圖3所述,步驟301,當(dāng)前執(zhí)行周期開始,定時調(diào)度器執(zhí)行設(shè)置好的調(diào)度算法。步驟302,定時調(diào)度器根據(jù)所設(shè)置的調(diào)度算法選取性能測試客戶端。其中,所述定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取一個或者多個性能測試客戶端,對所選取的每個性能測試客戶端,在該性能測試客戶端所包含的業(yè)務(wù)操作集合中選取相應(yīng)的一個或多個業(yè)務(wù)操作。在步驟302中,使用本發(fā)明中的方法進(jìn)行軟件性能測試的過程中,根據(jù)調(diào)度算法中保存的數(shù)據(jù)結(jié)構(gòu)地址,可以調(diào)用相應(yīng)的性能測試客戶端;其中,調(diào)度算法中設(shè)置了選取性能測試客戶端的方式以及每次調(diào)用性能測試客戶端的個數(shù);是順序選取一個或者多個性能測試客戶端或者是隨機選取一個或者是多個性能測試客戶端;具體方式根據(jù)實際的軟件性能測試方案對調(diào)度算法中的測試方式進(jìn)行設(shè)置,選取最優(yōu)的性能測試方式。步驟303,定時調(diào)度器根據(jù)所設(shè)置的調(diào)度算法,為所選取的性能測試客戶端選擇相應(yīng)的業(yè)務(wù)操作;調(diào)度算法中設(shè)置了為所選中的性能測試客戶端選取業(yè)務(wù)操作的方式,是順序執(zhí)行多個業(yè)務(wù)操作,還是循環(huán)執(zhí)行一個業(yè)務(wù)操作;具體方式根據(jù)實際的軟件性能測試方案對調(diào)度算法中的選擇相應(yīng)的業(yè)務(wù)操作的方式進(jìn)行設(shè)置,。步驟304,定時調(diào)度器根據(jù)所設(shè)置的調(diào)度算法,從線程池中選取空閑的線程。其中,根據(jù)性能測試客戶端的個數(shù)選取相同個數(shù)的空閑線程;針對一個性能測試客戶端,定時調(diào)度器在線程池中選取一個空閑線程,該性能測試客戶端使用所述選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作。在步驟304中,所述線程池,提供線程用于完成性能測試客戶端的業(yè)務(wù)操作,每開始一個業(yè)務(wù)操作前,從線程池中申請一個空閑的線程,業(yè)務(wù)操作結(jié)束后將申請到的線程放回到線程池中;所述線程池可以同時調(diào)用多個線程分別用于多個性能測試客戶端的業(yè)務(wù)操作。如果所述性能測試客戶端的數(shù)目大于線程池中空閑線程的個數(shù),則線程池建立新的空閑線程;如果線程池中的線程數(shù)達(dá)到線程池最大線程個數(shù)時,所述性能測試客戶端的數(shù)目仍大于線程池中空閑線程個數(shù),則將多余的性能測試客戶端掛起。
步驟305,性能測試客戶端使用定時調(diào)度器所選取的空閑線程執(zhí)行所選取的相應(yīng)的業(yè)務(wù)操作;步驟306,當(dāng)前業(yè)務(wù)操作執(zhí)行完成后,將執(zhí)行當(dāng)前業(yè)務(wù)操作的線程釋放;在步驟306中,所述性能測試客戶端根據(jù)定時調(diào)度器從線程池中選取的空閑線程執(zhí)行定時調(diào)度器為所述性能測試客戶端所選取的業(yè)務(wù)操作,其中選取一個空閑的線程用于一個性能測試客戶端執(zhí)行一個業(yè)務(wù)操作,當(dāng)該業(yè)務(wù)操作結(jié)束后,將所述線程放回到線程池中。步驟307,性能測試客戶端執(zhí)行完所有業(yè)務(wù)操作后,等待下一個執(zhí)行周期的開始。在本發(fā)明的一種實施例中,所述性能測試客戶端包括待測軟件的客戶端屬性和所有的業(yè)務(wù)操作,所述業(yè)務(wù)操作具體為待測軟件的客戶端訪問待測軟件的服務(wù)器端的方式。所述性能測試客戶端包括待測軟件中進(jìn)行性能測試所必須的客戶端屬性。其中將所述性能測試客戶端中的所有屬性進(jìn)行初始化操作后,保存在同一個數(shù)據(jù)結(jié)構(gòu)中,所述數(shù)據(jù)結(jié)構(gòu)可 以是數(shù)組、哈希表等;具體的初始化方式根據(jù)具體的測試方案進(jìn)行設(shè)定。本發(fā)明提供的技術(shù)方案中,各性能測試客戶端之間可以相同通信;所述所有性能測試客戶端都存放在同一個數(shù)據(jù)結(jié)構(gòu)中,在進(jìn)行軟件性能測試的進(jìn)程中,通過進(jìn)程內(nèi)的過程調(diào)用實現(xiàn)性能測試客戶端之間的相互通信。本發(fā)明還提供了一種軟件性能測試裝置,圖4是本發(fā)明中一種軟件性能測試裝置的結(jié)構(gòu)示意圖,如圖4所示,該裝置包括定時調(diào)度器模塊401、線程池模塊402、多個性能測試客戶端模塊403,其中,定時調(diào)度器模塊401,用于周期性的選取一個或多個性能測試客戶端模塊403、為性能測試客戶端模塊403選取相應(yīng)的業(yè)務(wù)操作,為選取的業(yè)務(wù)操作在線程池模塊402中選取空閑的線程;性能測試客戶端模塊403,包含待測軟件的客戶端屬性以及各種業(yè)務(wù)操作的集合;用于根據(jù)定時調(diào)度器模塊401選取的業(yè)務(wù)操作和選取的空閑的線程進(jìn)行業(yè)務(wù)操作;線程池模塊402,存放用于實現(xiàn)各種業(yè)務(wù)操作的線程,為性能測試客戶端模塊403所要執(zhí)行的業(yè)務(wù)操作提供執(zhí)行的線程。在上述的軟件性能測試裝置中,在測試過程開始之前,對定時調(diào)度器模塊401進(jìn)行初始化操作設(shè)置定時調(diào)度器模塊401的執(zhí)行間隔和調(diào)度算法;所述定時調(diào)度器模塊401每隔一定時間執(zhí)行一次調(diào)度算法,根據(jù)所設(shè)置的調(diào)度算法選取一個或多個性能測試客戶端模塊403 ;選取所述性能測試客戶端所要進(jìn)行的業(yè)務(wù)操作;從線程池中選取空閑的線程。所述調(diào)度算法根據(jù)具體的性能測試方案進(jìn)行編寫。根據(jù)具體的測試方案在所述定時調(diào)度器模塊401中的調(diào)度算法中設(shè)置了性能測試客戶端403所在的數(shù)據(jù)結(jié)構(gòu)地址;設(shè)置了選取性能測試客戶端403的方式,選取的具體方式根據(jù)實際需求進(jìn)行設(shè)定,可以的順序選取,可以是隨機選?。辉谒稣{(diào)度算法中設(shè)置了每次調(diào)用的性能測試客戶端403的個數(shù);在所述調(diào)度算法中設(shè)置了如何為所選取的性能測試客戶端403選擇相應(yīng)業(yè)務(wù)操作。在測試過程開始之前,對線程池模塊402進(jìn)行初始化操作設(shè)置線程池模塊402中的線程的最大個數(shù)和最小個數(shù),建立最小個數(shù)的線程。所述線程池模塊402在性能測試客戶端模塊403進(jìn)行業(yè)務(wù)操作的過程中,提供一個空閑的線程用于完成所述業(yè)務(wù)操作;在業(yè)務(wù)操作完成后將申請的線程放回到線程池模塊402 中。在測試過程開始之前,對所有性能測試客戶端模塊403中所包含的屬性進(jìn)行初始化操作,將所要完成初始化操作的性能測試客戶模塊端保存在同一個數(shù)據(jù)結(jié)構(gòu)中;所述性能測試客戶端模塊403包含待測軟件的客戶端屬性和待測軟件的所有業(yè)務(wù)操作。在上述的軟件性能測試裝置中,所述性能測試客戶端模塊403存放在同一個數(shù)據(jù)結(jié)構(gòu)中,所述性能測試客戶端模塊403之間通過進(jìn)程內(nèi)的過程調(diào)用實現(xiàn)相互通信。綜上所述,本發(fā)明提供的一種軟件性能測試方法和裝置,本發(fā)明提供的方法根據(jù)調(diào)度算法周期性的選取一個或多個性能測試客戶端,為性能測試客戶端選取相應(yīng)的業(yè)務(wù)操作,為所選取的業(yè)務(wù)操作在線程池中選取空閑的線程用于執(zhí)行該業(yè)務(wù)操作,執(zhí)行完成后釋放當(dāng)前的線程。通過調(diào)用極大數(shù)量的性能測試客戶端周期性的執(zhí)行上述流程,達(dá)到模擬海 量用戶同時在線,對軟件進(jìn)行性能測試。本發(fā)明中,性能測試客戶端轉(zhuǎn)變了編程方式和存儲方式、通過定時調(diào)度器的調(diào)度操作,能夠更靈活方便地控制測試過程、控制場景、特別是當(dāng)測試客戶端需要協(xié)調(diào)調(diào)度的時候;并且性能測試客戶端之間存放在數(shù)據(jù)結(jié)構(gòu)中,當(dāng)性能測試客戶端之間的相互通信,通過進(jìn)程內(nèi)的過程調(diào)用就可以完成。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種軟件性能測試方法,其特征在于,該方法包括 設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法;設(shè)置線程池中線程的最小個數(shù)和最大個數(shù),建立最小個數(shù)的線程;對性能測試客戶端進(jìn)行初始化操作; 在當(dāng)前執(zhí)行周期中,定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取性能測試客戶端和相應(yīng)的業(yè)務(wù)操作,在線程池中選擇空閑線程; 性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作; 所述業(yè)務(wù)操作執(zhí)行完畢后,將線程放回線程池中,并等待下一個執(zhí)行周期。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述對性能測試客戶端進(jìn)行初始化操作包括 從待測軟件的所有客戶端屬性中選取用于本次性能測試所必須的屬性,將所選取的客戶端屬性作為性能測試客戶端的屬性進(jìn)行初始化操作后,將所有性能測試客戶端都保存在同一個數(shù)據(jù)結(jié)構(gòu)中;其中,所述性能測試客戶端中包括用于測試待測軟件的所有業(yè)務(wù)操作的集合。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法包括 設(shè)置在一個執(zhí)行周期內(nèi)執(zhí)行一次調(diào)度算法,在所述調(diào)度算法中保存有性能測試客戶端存放的數(shù)據(jù)結(jié)構(gòu)的地址;在所述調(diào)度算法中保存有調(diào)用性能測試客戶端的方式以及每次調(diào)用性能測試客戶端的個數(shù);在所述調(diào)度算法中保存為性能測試客戶端選取相應(yīng)業(yè)務(wù)操作的方式。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作包括 根據(jù)性能測試客戶端的個數(shù)選取相同個數(shù)的空閑線程;針對ー個性能測試客戶端,定時調(diào)度器在線程池中選取ー個空閑線程,該性能測試客戶端使用所述選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作。
5.根據(jù)權(quán)利要求4所述的方法,其特征在干,所述性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作進(jìn)ー步包括 所述性能測試客戶端的數(shù)目大于線程池中空閑線程的個數(shù),則線程池建立新的空閑線程;如果線程池中的線程數(shù)達(dá)到線程池最大線程個數(shù)時,所述性能測試客戶端的數(shù)目仍大于線程池中空閑線程個數(shù),則將多余的性能測試客戶端掛起。
6.根據(jù)權(quán)利要求5所述的方法,其特征在干,所述根據(jù)設(shè)置的調(diào)度算法選取性能測試客戶端和相應(yīng)的業(yè)務(wù)操作包括 定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取ー個或者多個性能測試客戶端,對所選取的每個性能測試客戶端,在該性能測試客戶端所包含的業(yè)務(wù)操作集合中選取相應(yīng)的ー個或多個業(yè)務(wù)操作。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法進(jìn)ー步包括 各性能測試客戶端之間可以相同通信;其中,所述性能測試客戶端存放在同一個數(shù)據(jù)結(jié)構(gòu)中,在測試待測軟件的進(jìn)程中,通過所述進(jìn)程內(nèi)的過程調(diào)用實現(xiàn)性能測試客戶端之間的相互通信。
8.一種軟件性能測試裝置,其特征在于,該裝置包括定時調(diào)度器模塊、線程池模塊、多個性能測試客戶端模塊,其中, 定時調(diào)度器模塊,用于周期性的選取ー個或多個性能測試客戶端模塊、為性能測試客戶端模塊選取相應(yīng)的業(yè)務(wù)操作,為選取的業(yè)務(wù)操作在線程池模塊中選取空閑的線程; 性能測試客戶端模塊,包含待測軟件的客戶端屬性以及各種業(yè)務(wù)操作的集合;用于根據(jù)定時調(diào)度器模塊選取的業(yè)務(wù)操作和選取的空閑的線程進(jìn)行業(yè)務(wù)操作; 線程池模塊,存放用于實現(xiàn)各種業(yè)務(wù)操作的線程,為性能測試客戶端模塊所要執(zhí)行的業(yè)務(wù)操作提供執(zhí)行的線程。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在干, 在測試過程開始之前,對定時調(diào)度器模塊進(jìn)行初始化操作設(shè)置定時調(diào)度器模塊的執(zhí)行間隔和調(diào)度算法;所述定時調(diào)度器模塊每隔一定時間執(zhí)行一次調(diào)度算法,根據(jù)所設(shè)置的調(diào)度算法選取ー個或多個性能測試客戶端模塊;選取所述性能測試客戶端所要進(jìn)行的業(yè)務(wù)操作;從線程池中選取空閑的線程; 在測試過程開始之前,對線程池模塊進(jìn)行初始化操作設(shè)置線程池模塊中的線程的最大個數(shù)和最小個數(shù),建立最小個數(shù)的線程;所述線程池模塊在性能測試客戶端模塊進(jìn)行業(yè)務(wù)操作的過程中,提供空閑的線程用于完成所述相應(yīng)的業(yè)務(wù)操作;在所述業(yè)務(wù)操作完成后將申請的線程放回到線程池模塊中; 在測試過程開始之前,對所有性能測試客戶端模塊中所包含的屬性進(jìn)行初始化操作,將所要完成初始化操作的性能測試客戶模塊端保存在同一個數(shù)據(jù)結(jié)構(gòu)中。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在干, 所述性能測試客戶端模塊存放在同一個數(shù)據(jù)結(jié)構(gòu)中,所述性能測試客戶端模塊之間通過進(jìn)程間的過程調(diào)用實現(xiàn)相互通信。
全文摘要
本發(fā)明公開了一種軟件性能測試方法和裝置,該方法包括設(shè)置定時調(diào)度器的執(zhí)行周期和調(diào)度算法;設(shè)置線程池中線程的最小個數(shù)和最大個數(shù),建立最小個數(shù)的線程;對性能測試客戶端進(jìn)行初始化操作;在當(dāng)前執(zhí)行周期中,定時調(diào)度器根據(jù)設(shè)置的調(diào)度算法選取性能測試客戶端和相應(yīng)的業(yè)務(wù)操作,在線程池中選擇空閑線程;性能測試客戶端根據(jù)定時調(diào)度器所選取的空閑線程進(jìn)行相應(yīng)的業(yè)務(wù)操作;所述業(yè)務(wù)操作執(zhí)行完畢后,將線程放回線程池中,并等待下一個執(zhí)行周期。本發(fā)明的技術(shù)方案能夠以較小的系統(tǒng)資源完成高負(fù)荷的軟件性能測試過程,提高軟件性能測試的能力。
文檔編號G06F11/36GK102855173SQ201110175060
公開日2013年1月2日 申請日期2011年6月27日 優(yōu)先權(quán)日2011年6月27日
發(fā)明者林謖 申請人:北京新媒傳信科技有限公司