本發(fā)明涉及軟件測(cè)試技術(shù)領(lǐng)域,尤其涉及一種測(cè)試請(qǐng)求處理方法及裝置。
背景技術(shù):
智能家居系統(tǒng)的硬件組成中一般包括云平臺(tái)、移動(dòng)終端和智能設(shè)備。云平臺(tái)運(yùn)行于服務(wù)器上,用于遠(yuǎn)程接入、控制設(shè)備、賬戶管理、云存儲(chǔ)和數(shù)據(jù)統(tǒng)計(jì)分析。移動(dòng)終端上設(shè)置有控制軟件。如圖1所示,移動(dòng)終端側(cè)的控制軟件通常具有內(nèi)部的分層結(jié)構(gòu):從上到下分別為app應(yīng)用層、開發(fā)sdk的客戶端(client)層、開發(fā)sdk的服務(wù)器(server)層。此種軟件分層結(jié)構(gòu)用于區(qū)分軟件自上而下的層次調(diào)用,通過分層達(dá)到解構(gòu)復(fù)雜軟件的依賴關(guān)系,進(jìn)行模塊劃分。其中移動(dòng)終端使用測(cè)試代碼調(diào)用測(cè)試目標(biāo)的api,進(jìn)行功能和性能測(cè)試,并驗(yàn)證測(cè)試結(jié)果是否正確及性能是否達(dá)標(biāo)。
在上述系統(tǒng)中基于配置文件的自動(dòng)化測(cè)試都是根據(jù)配置文件與測(cè)試目標(biāo)軟件的應(yīng)用程序編程接口(applicationprogramminginterface,簡(jiǎn)稱api)對(duì)應(yīng)關(guān)系,配置好調(diào)用順序及參數(shù),從而進(jìn)行軟件調(diào)用測(cè)試并驗(yàn)證測(cè)試結(jié)果是否正確。但它僅能對(duì)測(cè)試目標(biāo)軟件系統(tǒng)進(jìn)行完整的統(tǒng)一測(cè)試,無(wú)法從目標(biāo)系統(tǒng)中拆分出獨(dú)立的部分進(jìn)行單獨(dú)測(cè)試和驗(yàn)證,例如無(wú)法對(duì)分層架構(gòu)的軟件系統(tǒng)中的某一層進(jìn)行單獨(dú)測(cè)試和驗(yàn)證?,F(xiàn)有技術(shù)中必須提供各層級(jí)軟件所組成的整體系統(tǒng)才能進(jìn)行測(cè)試的方式,費(fèi)事費(fèi)力,容易受外部環(huán)境干擾,無(wú)法滿足對(duì)系統(tǒng)中某一部分進(jìn)行單獨(dú)測(cè)試的需求。
同時(shí),現(xiàn)在的軟件系統(tǒng)會(huì)比較復(fù)雜,在架構(gòu)上拆分成不同的模塊,整個(gè)系統(tǒng)并由不同的小組或團(tuán)隊(duì)并行開發(fā),測(cè)試聯(lián)調(diào)需要各個(gè)團(tuán)隊(duì)進(jìn)行進(jìn)度同步,當(dāng)系統(tǒng)還不完善時(shí),各個(gè)模塊的測(cè)試經(jīng)常會(huì)受限于其所依賴的其他模塊的功能和質(zhì)量的不完善,而無(wú)法進(jìn)行充分的測(cè)試;當(dāng)各個(gè)團(tuán)隊(duì)進(jìn)度不同步時(shí),還會(huì)影響到軟件的并行開發(fā)速度,互相牽制。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種針對(duì)客戶端層進(jìn)行自動(dòng)化測(cè)試的方法及裝置。
本發(fā)明提供的測(cè)試請(qǐng)求處理方法包括:
測(cè)試設(shè)備從移動(dòng)終端接收所述移動(dòng)終端上的應(yīng)用軟件發(fā)送的第一測(cè)試請(qǐng)求消息,其中所述第一測(cè)試請(qǐng)求消息是所述移動(dòng)終端向服務(wù)器發(fā)送的遠(yuǎn)程操作請(qǐng)求信息;
所述測(cè)試設(shè)備讀取與所述測(cè)試請(qǐng)求消息對(duì)應(yīng)的第一測(cè)試響應(yīng)文件,其中所述測(cè)試響應(yīng)文件為服務(wù)器對(duì)所述遠(yuǎn)程操作請(qǐng)求信息處理的處理策略;
所述測(cè)試設(shè)備根據(jù)此第一測(cè)試響應(yīng)文件生成符合預(yù)設(shè)格式的第一測(cè)試響應(yīng)消息,將此第一測(cè)試響應(yīng)消息發(fā)送至所述移動(dòng)終端。
上述測(cè)試請(qǐng)求處理方法還具有以下特點(diǎn):
所述測(cè)試設(shè)備從移動(dòng)終端接收所述移動(dòng)終端上的應(yīng)用軟件發(fā)送的第一測(cè)試請(qǐng)求消息之前,還包括:所述測(cè)試設(shè)備與移動(dòng)終端建立無(wú)線連接。
上述測(cè)試請(qǐng)求處理方法還具有以下特點(diǎn):
所述方法還包括:
所述測(cè)試設(shè)備獲取預(yù)先存儲(chǔ)的消息生成策略,根據(jù)所述消息生成策略生成第二測(cè)試請(qǐng)求消息,其中所述第二測(cè)試請(qǐng)求消息是所述服務(wù)器向所述移動(dòng)終端發(fā)送的遠(yuǎn)程操作請(qǐng)求消息;
所述測(cè)試設(shè)備向所述移動(dòng)終端發(fā)送第二測(cè)試請(qǐng)求消息;
所述測(cè)試設(shè)備從所述移動(dòng)終端接收所述第二測(cè)試響應(yīng)消息。
上述測(cè)試請(qǐng)求處理方法還具有以下特點(diǎn):
所述預(yù)設(shè)格式為字符串格式。
上述測(cè)試請(qǐng)求處理方法還具有以下特點(diǎn):
所述字符串格式為java腳本對(duì)像標(biāo)識(shí)json。
本發(fā)明還提供了一種測(cè)試請(qǐng)求處理裝置,應(yīng)用于測(cè)試設(shè)備,此處理裝置包括:通信模塊、讀取模塊和生成模塊;
通信模塊,用于從移動(dòng)終端接收所述移動(dòng)終端上應(yīng)用軟件發(fā)送的第一測(cè)試請(qǐng)求消息,其中所述第一測(cè)試請(qǐng)求消息是所述移動(dòng)終端向服務(wù)器發(fā)送的遠(yuǎn)程操作請(qǐng)求信息;還用于將所述生成模塊生成的第一測(cè)試響應(yīng)消息發(fā)送至所述移動(dòng)終端;
讀取模塊,用于讀取與所述測(cè)試請(qǐng)求消息對(duì)應(yīng)的第一測(cè)試響應(yīng)文件,其中所述測(cè)試響應(yīng)文件為服務(wù)器對(duì)所述遠(yuǎn)程操作請(qǐng)求信息處理的處理策略;
第一生成模塊,用于根據(jù)此第一測(cè)試響應(yīng)文件生成符合預(yù)設(shè)格式的第一測(cè)試響應(yīng)消息。
上述測(cè)試請(qǐng)求處理裝置還具有以下特點(diǎn):
所述通信模塊用于從移動(dòng)終端接收所述移動(dòng)終端上的應(yīng)用軟件發(fā)送的第一測(cè)試請(qǐng)求消息之前與所述移動(dòng)終端建立無(wú)線連接。
上述測(cè)試請(qǐng)求處理裝置還具有以下特點(diǎn):
存儲(chǔ)模塊,用于存儲(chǔ)消息生成策略;
第二生成模塊,用于獲取所述消息生成策略,根據(jù)所述消息生成策略生成第二測(cè)試請(qǐng)求消息,其中所述第二測(cè)試請(qǐng)求消息是所述服務(wù)器向所述移動(dòng)終端發(fā)送的遠(yuǎn)程操作請(qǐng)求消息;
所述通信模塊,用于向所述移動(dòng)終端發(fā)送第二測(cè)試請(qǐng)求消息,還用于從所述移動(dòng)終端接收所述第二測(cè)試響應(yīng)消息。。
上述測(cè)試請(qǐng)求處理裝置還具有以下特點(diǎn):
所述預(yù)設(shè)格式為字符串格式。
上述測(cè)試請(qǐng)求處理裝置還具有以下特點(diǎn):
所述字符串格式為java腳本對(duì)像標(biāo)識(shí)json。
本發(fā)明在分層結(jié)構(gòu)的復(fù)雜軟件系統(tǒng)中針對(duì)“開發(fā)sdk的客戶端層”代碼的自動(dòng)化測(cè)試,解耦復(fù)雜軟件系統(tǒng)中的上層代碼,擺脫測(cè)試復(fù)雜軟件系統(tǒng)時(shí)各個(gè)組成部分的整體依賴,剝離測(cè)試目標(biāo)軟件模塊所依賴的其他軟硬件環(huán)境,在測(cè)試時(shí)不需要與智能設(shè)備和云平臺(tái)進(jìn)行通信,解除了對(duì)智能設(shè)備和云平臺(tái)的限制。本發(fā)明在實(shí)現(xiàn)快速且有針對(duì)性的局部軟件模塊的自動(dòng)化測(cè)試的同時(shí),在測(cè)試時(shí)僅依賴于測(cè)試目標(biāo)軟件模塊,當(dāng)測(cè)試目標(biāo)軟件和其所依賴的其他軟硬件進(jìn)行并行開發(fā)時(shí),其測(cè)試的范圍和進(jìn)度僅受限于測(cè)試目標(biāo)軟件模塊,而不受其所依賴的其他軟硬件的開發(fā)進(jìn)度影響。
本發(fā)明還具有以下優(yōu)點(diǎn):
1、測(cè)試目標(biāo)明確,測(cè)試環(huán)境部署簡(jiǎn)單。
2、測(cè)試消息的響應(yīng)不依賴于真實(shí)的硬件反饋,可隨意模擬不同的響應(yīng)結(jié)果,從而充分驗(yàn)證測(cè)試目標(biāo)軟件在各種情況下的正確運(yùn)行。
附圖說(shuō)明
構(gòu)成本發(fā)明的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是現(xiàn)有技術(shù)中的測(cè)試方案的分層結(jié)構(gòu)示意圖;
圖2是實(shí)施例中測(cè)試方案的分層結(jié)構(gòu)示意圖;
圖3是實(shí)施例中針對(duì)客戶端層進(jìn)行自動(dòng)化測(cè)試裝置中測(cè)試服務(wù)程序模塊的結(jié)構(gòu)圖;
圖4是實(shí)施例中針對(duì)客戶端層進(jìn)行自動(dòng)化測(cè)試方法的流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
如圖2所示,在分層結(jié)構(gòu)上,本發(fā)明中使用運(yùn)行于測(cè)試設(shè)備(例如pc機(jī))中的模擬測(cè)試環(huán)境替代現(xiàn)有技術(shù)的測(cè)試目標(biāo)依賴的其他軟硬件。整個(gè)結(jié)構(gòu)中包括測(cè)試模塊和測(cè)試目標(biāo)軟件模塊,以及測(cè)試服務(wù)程序模塊。其中,測(cè)試模塊和測(cè)試目標(biāo)軟件模塊位于移動(dòng)終端內(nèi),測(cè)試服務(wù)程序模塊位于測(cè)試設(shè)備(例如pc機(jī))內(nèi)。
其中,
測(cè)試模塊用于測(cè)試目標(biāo)軟件模塊發(fā)送接口調(diào)用請(qǐng)求;還用于從所述測(cè)試目標(biāo)軟件模塊接收接口調(diào)用結(jié)果,根據(jù)此接口調(diào)用結(jié)果生成測(cè)試結(jié)論;
測(cè)試目標(biāo)軟件模塊用于接收接口調(diào)用請(qǐng)求后,根據(jù)所述調(diào)用接口請(qǐng)求建立符合預(yù)設(shè)格式的調(diào)用接口請(qǐng)求消息,向測(cè)試服務(wù)程序模塊發(fā)送此調(diào)用接口請(qǐng)求消息;用于從測(cè)試服務(wù)程序模塊接收響應(yīng)消息后,根據(jù)所述響應(yīng)消息生成接口調(diào)用結(jié)果并發(fā)送至所述測(cè)試模塊;
測(cè)試服務(wù)程序模塊使用測(cè)試服務(wù)程序模擬分層結(jié)構(gòu)軟件系統(tǒng)中測(cè)試目標(biāo)依賴的模擬測(cè)試環(huán)境提供各種約定好的消息處理及響應(yīng)。如圖3所示,測(cè)試服務(wù)程序模塊包括接收模塊、讀取模塊、響應(yīng)消息構(gòu)建模塊和發(fā)送模塊。
接收模塊用于從移動(dòng)終端接收針對(duì)智能設(shè)備的符合預(yù)設(shè)格式的調(diào)用接口請(qǐng)求消息;
讀取模塊用于從預(yù)先生成的配置文件中讀取與所述調(diào)用接口請(qǐng)求消息對(duì)應(yīng)的響應(yīng)文件;
響應(yīng)消息構(gòu)建模塊用于根據(jù)此響應(yīng)文件生成符合所述預(yù)設(shè)格式的響應(yīng)消息;
發(fā)送模塊用于將此響應(yīng)消息發(fā)送至所述移動(dòng)終端。
其中,預(yù)設(shè)格式為字符串格式,字符串格式典型為java腳本對(duì)像標(biāo)識(shí)json。
此裝置還包括配置文件生成模塊和配置文件存儲(chǔ)模塊。此配置文件生成模塊位于測(cè)試設(shè)備內(nèi)。配置文件生成模塊用于為各調(diào)用接口請(qǐng)求消息創(chuàng)建相應(yīng)的響應(yīng)文件并存儲(chǔ)至所述配置文件,所述調(diào)用接口請(qǐng)求消息包括不同場(chǎng)景下的不同接口的調(diào)用接口請(qǐng)求消息。配置文件包括不同場(chǎng)景下的不同接口的調(diào)用接口請(qǐng)求消息下的調(diào)用接口請(qǐng)求消息以及與此調(diào)用接口請(qǐng)求消息對(duì)應(yīng)的響應(yīng)信息。此配置文件生成模塊事先為不同場(chǎng)景下的不同接口的調(diào)用接口請(qǐng)求消息生成相應(yīng)的響應(yīng)文件,可以通過響應(yīng)文件生成模塊進(jìn)行靈活設(shè)置和定義。
發(fā)送模塊還用于向所述移動(dòng)終端發(fā)送測(cè)試請(qǐng)求消息;接收模塊還用于從所述移動(dòng)終端接收對(duì)此測(cè)試請(qǐng)求消息的響應(yīng)。
測(cè)試模塊還用于調(diào)用所述測(cè)試目標(biāo)軟件模塊的啟動(dòng)接口,所述啟動(dòng)接口包括連接參數(shù);其中,連接參數(shù)包括ip和/或端口。測(cè)試目標(biāo)軟件模塊還用于接收所述測(cè)試模塊對(duì)所述啟動(dòng)接口的調(diào)用后,根據(jù)所述連接參數(shù)與所述測(cè)試服務(wù)程序模塊建立連接。此啟動(dòng)接口為啟動(dòng)sdk接口。測(cè)試代碼模塊通過調(diào)用測(cè)試目標(biāo)代碼模塊的啟動(dòng)接口與測(cè)試服務(wù)程序模塊進(jìn)行連接,從而實(shí)現(xiàn)對(duì)多層結(jié)構(gòu)的軟件系統(tǒng)進(jìn)行測(cè)試時(shí),僅依賴于客戶端測(cè)試目標(biāo)代碼的實(shí)現(xiàn),擺脫了對(duì)下層服務(wù)器側(cè)代碼以及對(duì)測(cè)試設(shè)備及云平臺(tái)的依賴。達(dá)到了對(duì)客戶端層進(jìn)行獨(dú)立測(cè)試且不依賴其他軟件模塊的目的。
圖4是針對(duì)客戶端自動(dòng)化測(cè)試的方法的流程圖,此方法的執(zhí)行主體為上述裝置中測(cè)試服務(wù)模塊,此方法包括:
步驟401,從移動(dòng)終端接收針對(duì)智能設(shè)備的符合預(yù)設(shè)格式的調(diào)用接口請(qǐng)求消息;
步驟402,從預(yù)先生成的配置文件中讀取與所述調(diào)用接口請(qǐng)求消息對(duì)應(yīng)的響應(yīng)文件;
步驟403,根據(jù)此響應(yīng)文件生成符合所述預(yù)設(shè)格式的響應(yīng)消息;
步驟404,將此響應(yīng)消息發(fā)送至所述移動(dòng)終端。
其中,
本方法中的配置文件是提前生成的,相應(yīng)的,步驟401前還包括:為各調(diào)用接口請(qǐng)求消息創(chuàng)建相應(yīng)的響應(yīng)文件并存儲(chǔ)至所述配置文件,所述調(diào)用接口請(qǐng)求消息包括不同場(chǎng)景下的不同接口的調(diào)用接口請(qǐng)求消息。
為了在需要測(cè)試時(shí)觸發(fā)移動(dòng)終端發(fā)送測(cè)試請(qǐng)求,步驟401之前還包括:向所述移動(dòng)終端發(fā)送測(cè)試請(qǐng)求消息,從所述移動(dòng)終端接收對(duì)此測(cè)試請(qǐng)求消息的響應(yīng)。
步驟401前還包括:測(cè)試模塊調(diào)用所述測(cè)試目標(biāo)軟件模塊的啟動(dòng)接口,所述啟動(dòng)接口包括連接參數(shù),所述測(cè)試目標(biāo)軟件模塊接收所述測(cè)試模塊對(duì)所述啟動(dòng)接口的調(diào)用后,根據(jù)所述連接參數(shù)與所述測(cè)試服務(wù)程序模塊建立連接;所述連接參數(shù)包括ip和/或端口。此連接典型為傳輸控制協(xié)議(transmissioncontrolprotocol,簡(jiǎn)稱tcp)連接。測(cè)試代碼模塊通過調(diào)用測(cè)試目標(biāo)代碼模塊的啟動(dòng)接口與測(cè)試服務(wù)程序模塊進(jìn)行連接,從而實(shí)現(xiàn)對(duì)多層結(jié)構(gòu)的軟件系統(tǒng)進(jìn)行測(cè)試時(shí),僅依賴于客戶端測(cè)試目標(biāo)代碼的實(shí)現(xiàn),擺脫了對(duì)下層服務(wù)器側(cè)代碼以及對(duì)測(cè)試設(shè)備及云平臺(tái)的依賴,達(dá)到了對(duì)客戶端層進(jìn)行獨(dú)立測(cè)試且不依賴其他軟件模塊的目的。
本方法中,預(yù)設(shè)格式為字符串格式。此字符串格式典型為java腳本對(duì)像標(biāo)識(shí)json。
本發(fā)明在分層結(jié)構(gòu)的復(fù)雜軟件系統(tǒng)中針對(duì)“開發(fā)sdk的客戶端層”代碼的自動(dòng)化測(cè)試,解耦復(fù)雜軟件系統(tǒng)中的上層代碼,擺脫測(cè)試復(fù)雜軟件系統(tǒng)時(shí)各個(gè)組成部分的整體依賴,剝離測(cè)試目標(biāo)軟件模塊所依賴的其他軟硬件環(huán)境,在測(cè)試時(shí)不需要與智能設(shè)備和云平臺(tái)進(jìn)行通信,解除了對(duì)智能設(shè)備和云平臺(tái)的限制。本發(fā)明在實(shí)現(xiàn)快速且有針對(duì)性的局部軟件模塊的自動(dòng)化測(cè)試的同時(shí),在測(cè)試時(shí)僅依賴于測(cè)試目標(biāo)軟件模塊,當(dāng)測(cè)試目標(biāo)軟件和其所依賴的其他軟硬件進(jìn)行并行開發(fā)時(shí),其測(cè)試的范圍和進(jìn)度僅受限于測(cè)試目標(biāo)軟件模塊,而不受不受其所依賴的其他軟硬件的開發(fā)進(jìn)度影響。
本發(fā)明還具有以下優(yōu)點(diǎn):
1、測(cè)試目標(biāo)明確,測(cè)試環(huán)境部署簡(jiǎn)單。
2、測(cè)試消息的響應(yīng)不依賴于真實(shí)的硬件反饋,可隨意模擬不同的響應(yīng)結(jié)果,從而充分驗(yàn)證測(cè)試目標(biāo)軟件在各種情況下的正確運(yùn)行。
上面描述的內(nèi)容可以單獨(dú)地或者以各種方式組合起來(lái)實(shí)施,而這些變型方式都在本發(fā)明的保護(hù)范圍之內(nèi)。
本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn),相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括……”限定的要素,并不排除在包括所述要素的物品或者設(shè)備中還存在另外的相同要素。
以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。