本發(fā)明涉及軟件測(cè)試領(lǐng)域和互聯(lián)網(wǎng)領(lǐng)域,更為具體而言,涉及一種軟件性能測(cè)試方法、裝置、服務(wù)器及系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)領(lǐng)域,在上線一款產(chǎn)品之前甚至是上線一款軟件產(chǎn)品之后,為了保障用戶體驗(yàn),都需要對(duì)產(chǎn)品進(jìn)行性能測(cè)試。現(xiàn)有的軟件性能測(cè)試方法主要分為三個(gè)步驟:
1.準(zhǔn)備工作:手動(dòng)在測(cè)試端(例如,手機(jī)端)安裝待測(cè)試產(chǎn)品(例如,應(yīng)用app)和性能測(cè)試測(cè)試軟件(例如,諸如現(xiàn)有的性能測(cè)試工具emmagee之類的開(kāi)源性能測(cè)試工具)。
2.測(cè)試執(zhí)行:手動(dòng)啟動(dòng)性能測(cè)試測(cè)試軟件、在性能測(cè)試測(cè)試軟件中選擇待測(cè)軟件產(chǎn)品并啟動(dòng)(性能測(cè)試軟件會(huì)在后臺(tái)記錄測(cè)試數(shù)據(jù)并保存);而后在待測(cè)軟件產(chǎn)品中執(zhí)行性能測(cè)試用例,例如列表下拉、活動(dòng)操作、列表頁(yè)滑動(dòng)等人工操作。
3.結(jié)果統(tǒng)計(jì):在測(cè)試運(yùn)行完成后,測(cè)試數(shù)據(jù)保存至例如手機(jī)的存儲(chǔ)卡,手動(dòng)導(dǎo)出性能測(cè)試文本數(shù)據(jù),并通過(guò)工具(如excel)將性能文本數(shù)據(jù)轉(zhuǎn)化為圖表數(shù)據(jù),最后將圖表數(shù)據(jù)以郵件形式發(fā)送出來(lái)。
現(xiàn)有的性能測(cè)試方法在不同階段均需要人工介入,不僅不同階段之間的連續(xù)性差,而且各個(gè)階段的執(zhí)行效率低、難以避免主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有的性能測(cè)試技術(shù)所存在的缺陷,本發(fā)明實(shí)施方式提供一種軟件性能測(cè)試方法、裝置、服務(wù)器及系統(tǒng),能夠提高性能測(cè)試效率。
本發(fā)明實(shí)施方式提供了一種軟件性能測(cè)試方法,包括:
監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行;
響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);
基于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本發(fā)明實(shí)施方式的一種實(shí)現(xiàn)方式中,所述方法還包括:基于從服務(wù)器獲取的命令運(yùn)行所述待測(cè)軟件產(chǎn)品,以使所述待測(cè)軟件產(chǎn)品從所述第一狀態(tài)運(yùn)行至所述第二狀態(tài)。
在本發(fā)明實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述第一狀態(tài)為所述待測(cè)軟件產(chǎn)品的啟動(dòng)或開(kāi)始安裝;所述第二狀態(tài)為所述待測(cè)軟件產(chǎn)品的停止或完成卸載。
在本發(fā)明實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù),包括:監(jiān)測(cè)到所述待測(cè)軟件產(chǎn)品的第二狀態(tài),則將所述性能數(shù)據(jù)發(fā)送至數(shù)據(jù)處理設(shè)備;其中,所述數(shù)據(jù)處理設(shè)備用于將所述性能數(shù)據(jù)組織為指定形式,或者,所述數(shù)據(jù)處理設(shè)備用于將所述性能數(shù)據(jù)組織為指定形式并將指定形式的所述性能數(shù)據(jù)發(fā)送給指定用戶。
本發(fā)明實(shí)施方式還提供一種軟件性能測(cè)試方法,包括:
啟動(dòng)用于在測(cè)試機(jī)上運(yùn)行的性能測(cè)試軟件;
在所述性能測(cè)試軟件啟動(dòng)之后,向所述測(cè)試機(jī)發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。
在本發(fā)明實(shí)施方式的一種實(shí)現(xiàn)方式中,所述方法還包括:響應(yīng)于觸發(fā)操作將所述待測(cè)軟件產(chǎn)品和/或性能測(cè)試軟件安裝至所述測(cè)試機(jī)。例如,響應(yīng)于所述觸發(fā)操作執(zhí)行以下處理:根據(jù)所述性能測(cè)試軟件和/或待測(cè)軟件產(chǎn)品的源代碼生成各自的安裝包;將所述安裝包發(fā)送至所述測(cè)試機(jī)安裝。
在本發(fā)明實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述性能測(cè)試軟件用于:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本發(fā)明實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述向測(cè)試機(jī)發(fā)送用于將所述待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令,包括:同時(shí)執(zhí)行與多個(gè)所述待測(cè)軟件產(chǎn)品一一對(duì)應(yīng)的腳本,以并行地向多個(gè)所述測(cè)試機(jī)發(fā)送所述命令。換言之,可以基于appiumsever和appiumscript腳本向所述測(cè)試機(jī)發(fā)送所述命令;或,基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述測(cè)試機(jī)發(fā)送所述命令。
本發(fā)明實(shí)施方式還提供一種軟件性能測(cè)試方法,包括:
開(kāi)啟軟件性能測(cè)試裝置(本文也簡(jiǎn)稱為“性能測(cè)試裝置”)的性能測(cè)試功能;
在所述性能測(cè)試功能開(kāi)啟之后,向所述性能測(cè)試裝置發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。
在本實(shí)施方式的一種實(shí)現(xiàn)方式中,所述方法還包括:響應(yīng)于觸發(fā)操作執(zhí)行以下處理:將待測(cè)軟件產(chǎn)品安裝至所述性能測(cè)試裝置,和/或,為所述性能測(cè)試裝置安裝所述性能測(cè)試功能。
在本實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述性能測(cè)試裝置的性能測(cè)試功能包括:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述向所述性能測(cè)試裝置發(fā)送用于將所述待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令,包括:并行地向多個(gè)所述性能測(cè)試裝置發(fā)送所述命令。換言之,可以基于appiumsever和appiumscript腳本向所述性能測(cè)試裝置發(fā)送所述命令;或,基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述性能測(cè)試裝置發(fā)送所述命令。
本發(fā)明的實(shí)施方式還提供一種軟件性能測(cè)試裝置,包括:
監(jiān)測(cè)模塊,用于監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行;
數(shù)據(jù)采集模塊,用于響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);
數(shù)據(jù)發(fā)送模塊,用于基于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本實(shí)施方式的一種實(shí)現(xiàn)方式中,所述裝置還包括運(yùn)行模塊,用于基于從服務(wù)器獲取的命令運(yùn)行所述待測(cè)軟件產(chǎn)品,以使所述待測(cè)軟件產(chǎn)品從所述第一狀態(tài)運(yùn)行至所述第二狀態(tài)。
在本實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述第一狀態(tài)為所述待測(cè)軟件產(chǎn)品的啟動(dòng)或開(kāi)始安裝;所述第二狀態(tài)為所述待測(cè)軟件產(chǎn)品的停止或完成卸載。
在本實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述數(shù)據(jù)發(fā)送模塊用于在所述監(jiān)測(cè)模塊監(jiān)測(cè)到所述待測(cè)軟件產(chǎn)品的第二狀態(tài)的情況下,將所述性能數(shù)據(jù)發(fā)送至數(shù)據(jù)處理設(shè)備;其中,所述數(shù)據(jù)處理設(shè)備用于將所述性能數(shù)據(jù)組織為指定形式,或者,所述數(shù)據(jù)處理設(shè)備用于將所述性能數(shù)據(jù)組織為指定形式并將指定形式的所述性能數(shù)據(jù)發(fā)送給指定用戶。
本發(fā)明的實(shí)施方式還提供一種服務(wù)器,包括:
啟動(dòng)模塊,用于啟動(dòng)用以在測(cè)試機(jī)上運(yùn)行的性能測(cè)試軟件;
運(yùn)行控制模塊,用于在所述性能測(cè)試軟件啟動(dòng)之后,向安裝有所述性能測(cè)試軟件的測(cè)試機(jī)發(fā)送命令,
所述測(cè)試機(jī)基于所述命令運(yùn)行待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)(本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本步驟以及本文中的類似步驟僅用于對(duì)運(yùn)行控制模塊所發(fā)送的命令進(jìn)行說(shuō)明,而不作為服務(wù)器的功能或功能模塊)。
在本實(shí)施方式的一種實(shí)現(xiàn)方式中,所述服務(wù)器還包括安裝模塊,用于響應(yīng)于觸發(fā)操作將所述待測(cè)軟件產(chǎn)品和/或性能測(cè)試軟件安裝至測(cè)試機(jī)。例如,所述安裝模塊用于響應(yīng)于所述觸發(fā)操作執(zhí)行以下處理:根據(jù)所述性能測(cè)試軟件和/或待測(cè)軟件產(chǎn)品的源代碼生成各自的安裝包;將所述安裝包發(fā)送至所述測(cè)試機(jī)安裝。
在本實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述性能測(cè)試軟件用于:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述運(yùn)行控制模塊用于:并行地向多個(gè)所述測(cè)試機(jī)發(fā)送所述命令。更具體而言,可以基于appiumsever和appiumscript腳本向所述測(cè)試機(jī)發(fā)送所述命令;或,基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述測(cè)試機(jī)發(fā)送所述命令。
本發(fā)明實(shí)施方式還提供一種服務(wù)器,包括:
開(kāi)啟模塊,用于開(kāi)啟性能測(cè)試裝置的性能測(cè)試功能;
運(yùn)行控制模塊,用于在所述性能測(cè)試功能開(kāi)啟之后,向所述性能測(cè)試裝置發(fā)送命令,
所述性能測(cè)試裝置基于所述命令運(yùn)行所述待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)。
在本實(shí)施方式的一種實(shí)現(xiàn)方式中,所述服務(wù)器還包括:安裝模塊,用于響應(yīng)于觸發(fā)操作,將待測(cè)軟件產(chǎn)品安裝至所述性能測(cè)試裝置,和/或,為所述性能測(cè)試裝置安裝所述性能測(cè)試功能。
在本實(shí)施方式的另一種實(shí)現(xiàn)方式中,所述性能測(cè)試裝置的性能測(cè)試功能包括:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
在本實(shí)施方式的再一種實(shí)現(xiàn)方式中,所述運(yùn)行控制模塊用于:并行地向多個(gè)所述測(cè)試機(jī)發(fā)送所述命令。更具體而言,可以基于appiumsever和appiumscript腳本向所述性能測(cè)試裝置發(fā)送所述命令;或,基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述性能測(cè)試裝置發(fā)送所述命令。
本發(fā)明實(shí)施方式還提供一種軟件性能測(cè)試系統(tǒng),包括測(cè)試機(jī)和服務(wù)器。其中,所述測(cè)試機(jī)用于安裝待測(cè)軟件產(chǎn)品和性能測(cè)試軟件,所述性能測(cè)試軟件用于執(zhí)行本發(fā)明上述實(shí)施方式提供的軟件性能測(cè)試方法。所述服務(wù)器包括:?jiǎn)?dòng)模塊,用于啟動(dòng)性能測(cè)試軟件;運(yùn)行控制模塊,用于響應(yīng)于所述性能測(cè)試軟件的啟動(dòng)向安裝有所述性能測(cè)試軟件的測(cè)試機(jī)發(fā)送命令,所述測(cè)試機(jī)基于所述命令運(yùn)行待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)。
本發(fā)明實(shí)施方式還提供一種軟件性能測(cè)試系統(tǒng),包括服務(wù)器和本發(fā)明如前所述的實(shí)施方式提供的性能測(cè)試裝置。所述服務(wù)器包括:開(kāi)啟模塊,用于開(kāi)啟性能測(cè)試裝置的性能測(cè)試功能;運(yùn)行控制模塊,用于響應(yīng)于所述性能測(cè)試功能的開(kāi)啟向所述性能測(cè)試裝置發(fā)送命令,所述性能測(cè)試裝置基于所述命令運(yùn)行所述待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)。
在本發(fā)明提供的軟件性能測(cè)試系統(tǒng)的實(shí)施方式中,還可以包括數(shù)據(jù)處理設(shè)備,用于將接收到的性能數(shù)據(jù)組織為指定形式,或者還用于將指定形式的所述性能數(shù)據(jù)發(fā)送給指定用戶。
采用本發(fā)明的各種實(shí)施方式具有以下有益效果:
本發(fā)明實(shí)施例通過(guò)監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行并響應(yīng)待測(cè)軟件產(chǎn)品的狀態(tài)進(jìn)行性能數(shù)據(jù)的采集與發(fā)送處理,能夠自動(dòng)在待測(cè)軟件產(chǎn)品的不同狀態(tài)之間進(jìn)行數(shù)據(jù)采集,并且能夠在數(shù)據(jù)采集結(jié)束之后自動(dòng)進(jìn)行上傳處理;
基于自動(dòng)化命令控制待測(cè)軟件產(chǎn)品在測(cè)試機(jī)上的運(yùn)行,將手動(dòng)執(zhí)行的測(cè)試用例轉(zhuǎn)換為自動(dòng)執(zhí)行,同時(shí)結(jié)合軟件的自動(dòng)安裝與啟動(dòng),實(shí)現(xiàn)了從源代碼到上傳性能數(shù)據(jù)的整個(gè)流程的自動(dòng)化;
通過(guò)上傳性能數(shù)據(jù)并對(duì)上傳的數(shù)據(jù)進(jìn)行處理,能夠支持云存儲(chǔ)以及歷史數(shù)據(jù)的保存與追溯;
整體而言,采用本發(fā)明的各種實(shí)施例能夠自動(dòng)完成性能測(cè)試,提高性能測(cè)試的執(zhí)行效率。此外,能夠在降低性能測(cè)試的門檻(例如,不需要測(cè)試人員了解性能測(cè)試軟件的使用方法、不需要手動(dòng)操作)的同時(shí),避免因主觀錯(cuò)誤(例如,誤操作)對(duì)性能測(cè)試的影響。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖;
圖2a是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖;
圖2b是根據(jù)本發(fā)明實(shí)施例的一種多款待測(cè)軟件產(chǎn)品并行進(jìn)行性能測(cè)試的示意圖;
圖3是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖;
圖4a是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的示意圖;
圖4b是根據(jù)本發(fā)明實(shí)施例的一種在jenkins平臺(tái)上觸發(fā)性能測(cè)試任務(wù)的示例圖;
圖4c是根據(jù)本法實(shí)施例的一種示例性的軟件性能測(cè)試方法的流程示意圖;
圖5是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試裝置的框圖;
圖6是根據(jù)本發(fā)明實(shí)施例的一種服務(wù)器的框圖;
圖7是根據(jù)本發(fā)明實(shí)施例的一種服務(wù)器的框圖;
圖8是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試系統(tǒng)的示意圖;
圖9是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試系統(tǒng)的示意圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明的各個(gè)方面進(jìn)行詳細(xì)闡述。其中,眾所周知的模塊、單元及其相互之間的連接、鏈接、通信或操作沒(méi)有示出或未作詳細(xì)說(shuō)明。并且,所描述的特征、架構(gòu)或功能可在一個(gè)或一個(gè)以上實(shí)施方式中以任何方式組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實(shí)施方式只用于舉例說(shuō)明,而非用于限制本發(fā)明的保護(hù)范圍。也可以容易理解,本文所述和附圖所示的各實(shí)施方式中的模塊或單元或步驟可以按各種不同配置進(jìn)行組合和設(shè)計(jì)。還可以容易理解,雖然可能僅在部分實(shí)施例中對(duì)特定名稱、術(shù)語(yǔ)、范圍等進(jìn)行解釋,但該解釋同樣適用于其它實(shí)施例,除非特別說(shuō)明。
首先,對(duì)本發(fā)明涉及或可能涉及的部分術(shù)語(yǔ)或名詞進(jìn)行說(shuō)明:
jenkins:基于java開(kāi)發(fā)的一種持續(xù)集成工具。用于監(jiān)控持續(xù)重復(fù)的工作,功能包括:1持續(xù)的軟件版本發(fā)布/測(cè)試項(xiàng)目;監(jiān)控外部調(diào)用執(zhí)行的工作。
appium:一個(gè)開(kāi)源、跨平臺(tái)的自動(dòng)化測(cè)試工具。用于測(cè)試原生和輕量移動(dòng)應(yīng)用,支持ios、android和firefoxos平臺(tái)。
tomcat:tomcat服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的web應(yīng)用服務(wù)器。
highcharts:一個(gè)用純javascript編寫的一個(gè)圖表庫(kù),能夠很簡(jiǎn)單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表。
圖1是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖,參照?qǐng)D1,所述方法包括:
100:監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行。
需要說(shuō)明的是,在本發(fā)明中提及的待測(cè)軟件產(chǎn)品的運(yùn)行,包括從待測(cè)軟件產(chǎn)品開(kāi)始安裝至被卸載的過(guò)程中的任意一段過(guò)程,例如,從待測(cè)軟件產(chǎn)品的啟動(dòng)到停止的過(guò)程、從待測(cè)軟件產(chǎn)品開(kāi)始安裝到最終卸載的過(guò)程、從待測(cè)軟件產(chǎn)品的啟動(dòng)到最終卸載的過(guò)程等。
102:響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù)。換言之,在本實(shí)施例中,將待測(cè)軟件產(chǎn)品的第一狀態(tài)作為性能數(shù)據(jù)采集的觸發(fā)條件。典型地,所述第一狀態(tài)是所述待測(cè)軟件產(chǎn)品的啟動(dòng)。例如,在監(jiān)測(cè)到待測(cè)軟件產(chǎn)品啟動(dòng)的情況下開(kāi)始采集性能數(shù)據(jù)。
可選地,在本發(fā)明中,性能數(shù)據(jù)包括以下任一方面或多個(gè)方面的數(shù)據(jù):內(nèi)存使用量、內(nèi)存百分比、cpu使用百分比、網(wǎng)絡(luò)狀況、電量、幀率等。在本發(fā)明的各種實(shí)施例中并不對(duì)性能數(shù)據(jù)進(jìn)行具體限制。
104:基于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。換言之,在本實(shí)施例中,將待測(cè)軟件產(chǎn)品的第二狀態(tài)作為發(fā)送性能數(shù)據(jù)的觸發(fā)條件。典型地,所述第二狀態(tài)是所述待測(cè)軟件產(chǎn)品的關(guān)閉/停止。
需要說(shuō)明的是,在本發(fā)明中提及的“第二狀態(tài)”發(fā)生于“第一狀態(tài)”之后,此外,二者可以是從待測(cè)軟件產(chǎn)品開(kāi)始安裝至最終被卸載的過(guò)程中的任意狀態(tài)。例如,第一狀態(tài)是待測(cè)軟件產(chǎn)品啟動(dòng)、第二狀態(tài)是待測(cè)軟件產(chǎn)品停止運(yùn)行;再例如,第一狀態(tài)是待測(cè)軟件產(chǎn)品開(kāi)始安裝、第二狀態(tài)是待測(cè)軟件產(chǎn)品停止運(yùn)行。也就是說(shuō),雖然本申請(qǐng)中示例性地對(duì)第一狀態(tài)和第二狀態(tài)進(jìn)行了說(shuō)明,但是基于本發(fā)明的思想,本領(lǐng)域技術(shù)人員可以根據(jù)需要自定義第一狀態(tài)和第二狀態(tài),從而針對(duì)待測(cè)軟件產(chǎn)品,采集其第一狀態(tài)到第二狀態(tài)的過(guò)程中的性能數(shù)據(jù)并發(fā)送。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,待測(cè)軟件產(chǎn)品可以是在個(gè)人電腦、移動(dòng)終端等設(shè)備上運(yùn)行的客戶端、app等,處理100-104則可以由軟件性能測(cè)試裝置(以下也稱作“性能測(cè)試裝置”)來(lái)執(zhí)行。
采用本發(fā)明提供的軟件性能測(cè)試方法,通過(guò)監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行并響應(yīng)待測(cè)軟件產(chǎn)品的狀態(tài)進(jìn)行性能數(shù)據(jù)的采集與發(fā)送,能夠自動(dòng)完成性能測(cè)試,提高性能測(cè)試的執(zhí)行效率。此外,能夠在降低性能測(cè)試的門檻(例如,不需要測(cè)試人員了解性能測(cè)試工具的使用方法、不需要手動(dòng)操作)的同時(shí),避免因主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述方法還包括:基于從服務(wù)器獲取的命令運(yùn)行所述待測(cè)軟件產(chǎn)品使所述待測(cè)軟件產(chǎn)品從所述第一狀態(tài)運(yùn)行至所述第二狀態(tài)。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,響應(yīng)于服務(wù)器發(fā)送的命令開(kāi)始監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,處理104具體可以通過(guò)以下方式實(shí)現(xiàn):監(jiān)測(cè)到所述待測(cè)軟件產(chǎn)品的第二狀態(tài),則將性能數(shù)據(jù)發(fā)送至數(shù)據(jù)處理設(shè)備。所述數(shù)據(jù)處理設(shè)備用于將性能數(shù)據(jù)組織為指定形式,或者,所述數(shù)據(jù)處理設(shè)備用于將性能數(shù)據(jù)組織為指定形式并將指定形式的性能數(shù)據(jù)發(fā)送給指定用戶。
圖2a是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖。參照?qǐng)D2a,所述方法包括:
200:啟動(dòng)用于在測(cè)試機(jī)上運(yùn)行的性能測(cè)試軟件。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,由服務(wù)器端向測(cè)試機(jī)發(fā)送啟動(dòng)性能測(cè)試軟件的命令從而啟動(dòng)性能測(cè)試軟件。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,由服務(wù)器端向測(cè)試機(jī)發(fā)送性能測(cè)試軟件的安裝包,該安裝包在安裝完成后自動(dòng)啟動(dòng)性能測(cè)試軟件。
202:在所述性能測(cè)試軟件啟動(dòng)之后,向所述測(cè)試機(jī)發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。例如,在啟動(dòng)所述性能測(cè)試軟件之后,向所述測(cè)試機(jī)發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。
采用本實(shí)施例提供的方法,通過(guò)處理202實(shí)現(xiàn)待測(cè)軟件產(chǎn)品從第一狀態(tài)到第二狀態(tài)的自動(dòng)化性能測(cè)試操作,從而自動(dòng)實(shí)現(xiàn)了從第一狀態(tài)到第二狀態(tài)的性能測(cè)試,有效提高性能測(cè)試的執(zhí)行效率。此外,不僅能夠降低性能測(cè)試的門檻,還能避免因主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖2a中虛線框所示,所述方法還包括204:響應(yīng)于觸發(fā)操作將待測(cè)軟件產(chǎn)品和/或性能測(cè)試軟件安裝至測(cè)試機(jī)。例如,響應(yīng)于所述觸發(fā)操作執(zhí)行以下處理:根據(jù)所述性能測(cè)試軟件和/或待測(cè)軟件產(chǎn)品的源代碼生成各自的安裝包;將所述安裝包發(fā)送至所述測(cè)試機(jī)安裝。
需要說(shuō)明的是,本發(fā)明中提及的“觸發(fā)操作”包括人工觸發(fā)、定時(shí)觸發(fā)、自動(dòng)觸發(fā)等多種觸發(fā)形式。而對(duì)于具體如何觸發(fā),本發(fā)明不做限制。
采用該實(shí)現(xiàn)方式提供的技術(shù)方案,能夠響應(yīng)于觸發(fā)操作順序?qū)崿F(xiàn)生成、發(fā)送和安裝安裝包,啟動(dòng)性能測(cè)試軟件以及發(fā)送命令。這種自動(dòng)化流程能夠有效提高軟件性能測(cè)試的效率。
可選地,在一種具體實(shí)現(xiàn)中,如果需要測(cè)試的項(xiàng)目包括待測(cè)軟件產(chǎn)品安裝過(guò)程中的性能,則先安裝性能測(cè)試軟件并啟動(dòng),之后再安裝待測(cè)軟件產(chǎn)品。
可選地,在實(shí)施例的一種實(shí)現(xiàn)方式中,所述性能測(cè)試軟件用于執(zhí)行圖1所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的軟件性能測(cè)試方法。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,可以并行地向多個(gè)測(cè)試機(jī)發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令,例如,基于自動(dòng)化運(yùn)行腳本。具體而言,上述命令可以采用以下方式發(fā)送:
方式一:基于appiumsever和appiumscript腳本向所述測(cè)試機(jī)發(fā)送所述命令。
方式二:基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述測(cè)試機(jī)發(fā)送所述命令。
關(guān)于所述方式二,更具體而言,如圖2b所示,可以在服務(wù)器分別存放針對(duì)待測(cè)軟件產(chǎn)品1、待測(cè)軟件產(chǎn)品2……待測(cè)軟件產(chǎn)品n的n(n為正整數(shù))份自動(dòng)化運(yùn)行腳本,在本機(jī)的不同端口上啟動(dòng)n個(gè)appiumsever使得服務(wù)器可以同時(shí)連接多臺(tái)測(cè)試機(jī),并基于n份腳本和n個(gè)appiumsever將各自的命令發(fā)給不同的測(cè)試機(jī)從而并行執(zhí)行性能測(cè)試任務(wù)。
也就是說(shuō),方式一是針對(duì)單個(gè)待測(cè)試軟件產(chǎn)品,方式二則是針對(duì)多個(gè)/多種待測(cè)軟件產(chǎn)品的并行測(cè)試方法。其中,方式二特別適用于較大規(guī)模的軟件性能測(cè)試中,能夠大幅提高性能測(cè)試效率、降低人工成本。其中,優(yōu)選地,服務(wù)器可以支持8種/8個(gè)待測(cè)軟件產(chǎn)品的并行測(cè)試。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述方法還包括:接收所述性能測(cè)試軟件或所述測(cè)試機(jī)發(fā)送的性能數(shù)據(jù)并將該性能數(shù)據(jù)組織為指定形式(例如,web圖表形式),之后可以展示該指定形式的性能數(shù)據(jù)或者將其發(fā)送(郵件)給指定用戶。
圖3是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的流程示意圖。參照?qǐng)D3,所述方法包括:
300:開(kāi)啟性能測(cè)試裝置的性能測(cè)試功能。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,由服務(wù)器端向性能測(cè)試裝置發(fā)送開(kāi)啟性能測(cè)試裝置的性能測(cè)試功能的命令從而開(kāi)啟性能測(cè)試功能。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,由服務(wù)器端向性能測(cè)試裝置發(fā)送性能測(cè)試功能的安裝包,該安裝包在安裝完成后自動(dòng)開(kāi)啟所述性能測(cè)試功能。
302:在所述性能測(cè)試功能開(kāi)啟之后,向性能測(cè)試裝置發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。例如,在開(kāi)啟所述性能測(cè)試功能之后,向性能測(cè)試裝置發(fā)送用于將待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。
采用本實(shí)施例提供的方法,通過(guò)處理302實(shí)現(xiàn)待測(cè)軟件產(chǎn)品從第一狀態(tài)到第二狀態(tài)的自動(dòng)化性能測(cè)試操作,從而自動(dòng)實(shí)現(xiàn)了從第一狀態(tài)到第二狀態(tài)的性能測(cè)試,有效提高性能測(cè)試的執(zhí)行效率。此外,不僅能夠降低性能測(cè)試的門檻,還能避免因主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖3中虛線框所示,所述方法還包括304:響應(yīng)于觸發(fā)操作,將待測(cè)軟件產(chǎn)品安裝至性能測(cè)試裝置,和/或,為性能測(cè)試裝置安裝性能測(cè)試功能。
采用該實(shí)現(xiàn)方式提供的技術(shù)方案,能夠響應(yīng)于觸發(fā)操作順序?qū)崿F(xiàn)生成、發(fā)送和安裝安裝包,開(kāi)啟性能測(cè)試功能以及發(fā)送命令。這種自動(dòng)化流程能夠有效提高軟件性能測(cè)試的效率。
可選地,在一種具體實(shí)現(xiàn)中,如果需要測(cè)試的項(xiàng)目包括待測(cè)軟件產(chǎn)品安裝過(guò)程中的性能,則在開(kāi)啟性能測(cè)試功能之后再安裝待測(cè)軟件產(chǎn)品。
可選地,在實(shí)施例的一種實(shí)現(xiàn)方式中,所述性能測(cè)試裝置的性能測(cè)試功能用于執(zhí)行圖1所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的軟件性能測(cè)試方法。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,可以并行地向多個(gè)性能測(cè)試裝置發(fā)送用于將其上的待測(cè)軟件產(chǎn)品從第一狀態(tài)運(yùn)行至第二狀態(tài)的命令。更具體而言,可以采用以下方式發(fā)送所述命令:方式一:基于appiumsever和appiumscript腳本向性能測(cè)試裝置發(fā)送所述命令;方式二:基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的性能測(cè)試裝置發(fā)送所述命令。
圖4a是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試方法的示意圖,參照?qǐng)D4a,所述方法包括:
01:在服務(wù)器端,通過(guò)jenkins平臺(tái)觸發(fā)性能測(cè)試任務(wù)。具體而言,如圖4b所示,用戶可以在jenkins平臺(tái)上選擇自動(dòng)化性能測(cè)試任務(wù),然后點(diǎn)擊“立即構(gòu)建”執(zhí)行性能測(cè)試任務(wù)。
02:jenkins拉取svn(一個(gè)開(kāi)放源代碼的版本控制系統(tǒng))代碼,判斷代碼是否為最新。如果是最新,則執(zhí)行下述03,否則拉取最新代碼之后再執(zhí)行03。其中,所述代碼包含待測(cè)試產(chǎn)品的源代碼、性能測(cè)試軟件的源代碼、項(xiàng)目工程等配置文件信息。
03:根據(jù)代碼進(jìn)行編譯,生成待測(cè)軟件產(chǎn)品(例如,app)和性能測(cè)試軟件的安裝包。
需要說(shuō)明的是,通過(guò)上述01-03的處理能夠?qū)崿F(xiàn)安裝包的自動(dòng)生成以及安裝。而除了采用jenkins平臺(tái)之外,上述處理還可以采用hudson來(lái)實(shí)現(xiàn)。
04:將安裝包安裝至與服務(wù)器連接的測(cè)試機(jī),并啟動(dòng)性能測(cè)試軟件監(jiān)控產(chǎn)品進(jìn)程。
05:?jiǎn)?dòng)appiumserver并調(diào)用appiumscript腳本,該腳本代碼以自動(dòng)化方式替代以往手工執(zhí)行的性能測(cè)試操作,如滑動(dòng)、點(diǎn)擊等操作。
06:appiumserver從腳本獲取命令。
07:appiumserver通過(guò)網(wǎng)絡(luò)socket連接測(cè)試機(jī),將命令傳遞給測(cè)試機(jī),從而觸發(fā)測(cè)試機(jī)打開(kāi)待測(cè)軟件產(chǎn)品并執(zhí)行自動(dòng)化操作。
在上述05-07中,測(cè)試機(jī)和服務(wù)器之間可以采用現(xiàn)有的任意通信方式。例如,采用傳統(tǒng)的usb有線連接方式或無(wú)線連接方式。
08:性能測(cè)試軟件監(jiān)測(cè)到產(chǎn)品已啟動(dòng),則周期性地將性能測(cè)試結(jié)果(或者稱作性能數(shù)據(jù))寫入到文件。
09:在性能測(cè)試結(jié)束之后測(cè)試機(jī)關(guān)閉待測(cè)軟件產(chǎn)品,性能測(cè)試軟件監(jiān)測(cè)到產(chǎn)品已關(guān)閉則上傳之前保存好的性能測(cè)試數(shù)據(jù)。
10:服務(wù)器收到上傳數(shù)據(jù)后進(jìn)行解析,以web性能圖表的方式展示,并郵件發(fā)送給用戶。
11:用戶通過(guò)郵件或者瀏覽器查看性能曲線數(shù)據(jù)。
圖4a以jenkins持續(xù)集成平臺(tái)和appium為例示出了根據(jù)本發(fā)明的一種性能測(cè)試方法的具體示例,相應(yīng)地,一種更具體的測(cè)試方法的流程圖如圖4c所示。
參照?qǐng)D4c,該方法包括:用戶觸發(fā)jenkins性能自動(dòng)化測(cè)試任務(wù);jenkins執(zhí)行構(gòu)建功能;判斷代碼是否有更新,如果有更新,則拉取svn代碼并在拉取成功后構(gòu)建產(chǎn)品和性能測(cè)試工具,如果沒(méi)有更新,則直接構(gòu)建產(chǎn)品和性能測(cè)試工具;在成功構(gòu)建產(chǎn)品和性能測(cè)試工具之后,產(chǎn)出二者的安裝包;jenkins執(zhí)行安裝功能;在與手機(jī)連接的情況下,在手機(jī)上安裝產(chǎn)品和性能測(cè)試工具;安裝成功后,啟動(dòng)性能測(cè)試工具監(jiān)控產(chǎn)品進(jìn)程;jenkins觸發(fā)appium任務(wù);啟動(dòng)appiumsever;在成功啟動(dòng)appiumsever之后,調(diào)用appiumcase(測(cè)試用例)腳本;腳本向appiumsever發(fā)送命令;在成功連接的情況下,手機(jī)執(zhí)行自動(dòng)化性能測(cè)試操作;性能測(cè)試工具后臺(tái)記錄性能測(cè)試數(shù)據(jù);如果性能測(cè)試用例(case)執(zhí)行完畢,則壓縮和上傳性能數(shù)據(jù);在成功上傳性能數(shù)據(jù)之后,服務(wù)器解析數(shù)據(jù)產(chǎn)出web圖表;將web圖表郵件發(fā)送給用戶。
圖5是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試裝置的框圖。參照?qǐng)D5,軟件性能測(cè)試裝置5包括監(jiān)測(cè)模塊50、數(shù)據(jù)采集模塊52和數(shù)據(jù)發(fā)送模塊54。下面進(jìn)行具體說(shuō)明。
在本實(shí)施例中,監(jiān)測(cè)模塊50用于監(jiān)測(cè)待測(cè)軟件產(chǎn)品的運(yùn)行。數(shù)據(jù)采集模塊52用于響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù)。數(shù)據(jù)發(fā)送模塊54用于基于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。例如,數(shù)據(jù)發(fā)送模塊54在所述監(jiān)測(cè)模塊50監(jiān)測(cè)到待測(cè)軟件產(chǎn)品的第二狀態(tài)的情況下,將性能數(shù)據(jù)發(fā)送至數(shù)據(jù)處理設(shè)備。該數(shù)據(jù)處理設(shè)備用于將性能數(shù)據(jù)組織為指定形式,或者進(jìn)一步地,還用于將指定形式的所述性能數(shù)據(jù)發(fā)送給指定用戶。
采用本實(shí)施例提供的軟件性能測(cè)試裝置,能夠自動(dòng)實(shí)現(xiàn)軟件性能測(cè)試,提高性能測(cè)試的執(zhí)行效率,避免主觀錯(cuò)誤的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖5中虛線框所示,軟件性能測(cè)試裝置還包括運(yùn)行模塊56,用于基于從服務(wù)器獲取的命令運(yùn)行所述待測(cè)軟件產(chǎn)品,使所述待測(cè)軟件產(chǎn)品從所述第一狀態(tài)運(yùn)行至所述第二狀態(tài)。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述第一狀態(tài)為所述待測(cè)軟件產(chǎn)品的啟動(dòng)或開(kāi)始安裝;所述第二狀態(tài)為所述待測(cè)軟件產(chǎn)品的停止或完成卸載。
圖6是根據(jù)本發(fā)明實(shí)施例的一種服務(wù)器的框圖。參照?qǐng)D6,服務(wù)器6包括啟動(dòng)模塊60和運(yùn)行控制模塊62。其中,啟動(dòng)模塊60用于啟動(dòng)性能測(cè)試軟件;運(yùn)行控制模塊62用于在所述性能測(cè)試軟件啟動(dòng)之后,向安裝有所述性能測(cè)試軟件的測(cè)試機(jī)發(fā)送如下命令:所述測(cè)試機(jī)基于所述命令運(yùn)行待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)。
采用本實(shí)施例提供的服務(wù)器6,能夠自動(dòng)實(shí)現(xiàn)從第一狀態(tài)到第二狀態(tài)的性能測(cè)試,有效提高性能測(cè)試的執(zhí)行效率。此外,不僅能夠降低性能測(cè)試的門檻,還能避免因主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖6中虛線框所示,服務(wù)器6還包括安裝模塊64,用于響應(yīng)于觸發(fā)操作將待測(cè)軟件產(chǎn)品和/或性能測(cè)試軟件安裝至測(cè)試機(jī)。例如,安裝模塊64響應(yīng)于所述觸發(fā)操作執(zhí)行以下處理:根據(jù)性能測(cè)試軟件和/或待測(cè)軟件產(chǎn)品的源代碼生成各自的安裝包;將所述安裝包發(fā)送至測(cè)試機(jī)安裝。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述性能測(cè)試軟件用于:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。換言之,所述性能測(cè)試軟件可以實(shí)現(xiàn)圖1所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的方法。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述運(yùn)行控制模塊62用于并行地向多個(gè)所述測(cè)試機(jī)發(fā)送所述命令。具體而言,運(yùn)行控制模塊62可以基于appiumsever和appiumscript腳本向所述測(cè)試機(jī)發(fā)送所述命令;也可以基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述測(cè)試機(jī)發(fā)送所述命令。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖6中虛線框所示,服務(wù)器6還包括數(shù)據(jù)處理模塊66,用于接收性能測(cè)試軟件或測(cè)試機(jī)發(fā)送的性能數(shù)據(jù),并將該數(shù)據(jù)組織為指定形式(例如,web圖表形式),之后,數(shù)據(jù)處理模塊66可以展示該指定形式的性能數(shù)據(jù)或者將其發(fā)送給指定用戶。
圖7是根據(jù)本發(fā)明實(shí)施例的一種服務(wù)器的框圖。參照?qǐng)D7,服務(wù)器7包括開(kāi)啟模塊70和運(yùn)行控制模塊72。其中,開(kāi)啟模塊70用于開(kāi)啟性能測(cè)試裝置的性能測(cè)試功能;運(yùn)行控制模塊72用于在所述性能測(cè)試功能開(kāi)啟之后,向所述性能測(cè)試裝置發(fā)送命令,以便所述性能測(cè)試裝置基于所述命令運(yùn)行所述待測(cè)軟件產(chǎn)品使所述待測(cè)軟件從第一狀態(tài)運(yùn)行至第二狀態(tài)。
采用本發(fā)明實(shí)施例提供的服務(wù)器7,能夠自動(dòng)實(shí)現(xiàn)從第一狀態(tài)到第二狀態(tài)的性能測(cè)試,有效提高性能測(cè)試的執(zhí)行效率。此外,不僅能夠降低性能測(cè)試的門檻,還能避免因主觀錯(cuò)誤對(duì)性能測(cè)試的影響。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖7中虛線框所示,服務(wù)器7還包括安裝模塊74,用于響應(yīng)于觸發(fā)操作執(zhí)行以下處理:將待測(cè)軟件產(chǎn)品安裝至所述性能測(cè)試裝置,和/或,為所述性能測(cè)試裝置安裝所述性能測(cè)試功能。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述性能測(cè)試裝置的性能測(cè)試功能包括:監(jiān)測(cè)所述待測(cè)軟件產(chǎn)品的運(yùn)行;響應(yīng)于所述待測(cè)軟件產(chǎn)品的第一狀態(tài)采集性能數(shù)據(jù);響應(yīng)于所述待測(cè)軟件產(chǎn)品的第二狀態(tài)發(fā)送所述性能數(shù)據(jù)。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,運(yùn)行控制模塊72用于并行地向多個(gè)所述測(cè)試機(jī)發(fā)送所述命令。具體而言,運(yùn)行控制模塊72可以基于appiumsever和appiumscript腳本向所述性能測(cè)試裝置發(fā)送所述命令,也可以基于多個(gè)一一對(duì)應(yīng)的appiumsever和appiumscript腳本,分別向不同的所述性能測(cè)試裝置發(fā)送所述命令。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖7中虛線框所示,服務(wù)器7還包括數(shù)據(jù)處理模塊76,用于接收性能測(cè)試裝置發(fā)送的性能數(shù)據(jù),并將該數(shù)據(jù)組織為指定形式(例如,web圖表形式),之后,數(shù)據(jù)處理模塊76可以展示該指定形式的性能數(shù)據(jù)或者將其發(fā)送給指定用戶。
圖8是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試系統(tǒng)的示意圖,參照?qǐng)D8,軟件性能測(cè)試系統(tǒng)包括如圖6所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的服務(wù)器6和測(cè)試機(jī)8。其中,測(cè)試機(jī)8用于運(yùn)行待測(cè)軟件產(chǎn)品和性能測(cè)試軟件,所述性能測(cè)試軟件用于執(zhí)行本發(fā)明圖1所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的軟件性能測(cè)試方法。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖8中虛線框所示,性能測(cè)試系統(tǒng)還可以包括數(shù)據(jù)處理設(shè)備9,用于將接收到的由性能測(cè)試軟件或測(cè)試機(jī)發(fā)送的性能數(shù)據(jù)組織為指定形式,或者還用于將該指定形式的性能數(shù)據(jù)發(fā)送給指定用戶。
圖9是根據(jù)本發(fā)明實(shí)施例的一種軟件性能測(cè)試系統(tǒng)的示意圖,參照?qǐng)D9,軟件性能測(cè)試系統(tǒng)包括如圖7所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的服務(wù)器7和如圖5所示實(shí)施例或其各種實(shí)現(xiàn)方式所提供的軟件性能測(cè)試裝置5。
可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖9中虛線框所示,軟件性能測(cè)試系統(tǒng)還可以包括數(shù)據(jù)處理設(shè)備9,用于將接收到的由軟件性能測(cè)試裝置5發(fā)送的性能數(shù)據(jù)組織為指定形式,或者還用于將該指定形式的性能數(shù)據(jù)發(fā)送給指定用戶。
采用本發(fā)明的各種實(shí)施例所提供的軟件性能測(cè)試系統(tǒng),能夠自動(dòng)完成軟件性能測(cè)試,提高性能測(cè)試的執(zhí)行效率。
在本實(shí)施例的一種具體實(shí)施例中,性能測(cè)試系統(tǒng)可以基于用戶的一次觸發(fā)操作,完成由源代碼至最終上傳數(shù)據(jù)、分析數(shù)據(jù)、組織數(shù)據(jù)的性能測(cè)試過(guò)程,或者完成這個(gè)過(guò)程中的部分過(guò)程。這種自動(dòng)化處理流程能夠大大提高性能測(cè)試效率。具體而言,在特定實(shí)驗(yàn)條件下,傳統(tǒng)的軟件性能測(cè)試方法(或系統(tǒng))評(píng)測(cè)一輪產(chǎn)品大概需要1小時(shí),而采用本實(shí)施例提供的系統(tǒng),僅僅需要約15分鐘,提升效率達(dá)到75%。當(dāng)然,該示例僅為舉例,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,針對(duì)不同的產(chǎn)品以及硬件和網(wǎng)絡(luò)環(huán)境等進(jìn)行實(shí)驗(yàn),會(huì)產(chǎn)生不同的對(duì)比數(shù)據(jù)。
以上結(jié)合附圖對(duì)根據(jù)本發(fā)明實(shí)施例的軟件性能測(cè)試方法、相關(guān)裝置服務(wù)器及系統(tǒng)進(jìn)行了說(shuō)明,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明提供的方法實(shí)施例可以相應(yīng)地由本發(fā)明提供的裝置、服務(wù)器或系統(tǒng)實(shí)施例實(shí)現(xiàn),而本發(fā)明的裝置、服務(wù)器和系統(tǒng)實(shí)施例的處理過(guò)程/邏輯又與本發(fā)明的方法實(shí)施例相一致。因此,在本發(fā)明的裝置、服務(wù)器和系統(tǒng)實(shí)施例中,關(guān)于各個(gè)模塊、子模塊所執(zhí)行處理或可執(zhí)行處理的詳細(xì)說(shuō)明,關(guān)于特定名稱、術(shù)語(yǔ)、范圍的解釋,以及關(guān)于各個(gè)實(shí)施例、相關(guān)特征所具有的有益效果的描述,請(qǐng)參見(jiàn)方法實(shí)施例中的相應(yīng)說(shuō)明,此處不再贅述。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,智能手機(jī)或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本發(fā)明說(shuō)明書(shū)中使用的術(shù)語(yǔ)和措辭僅僅為了舉例說(shuō)明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開(kāi)的實(shí)施方式的基本原理的前提下,對(duì)上述實(shí)施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說(shuō)明,所有的術(shù)語(yǔ)應(yīng)按最寬泛合理的意思進(jìn)行理解。