本申請涉及網(wǎng)站測試技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)站測試方法、裝置以及系統(tǒng)。
背景技術(shù):
在網(wǎng)站開發(fā)以及升級過程中,開發(fā)人員經(jīng)常需要開發(fā)的產(chǎn)品(如,開發(fā)出的網(wǎng)站,或者網(wǎng)站中部分功能在技術(shù)上的改進(jìn))進(jìn)行測試,以根據(jù)測試結(jié)果分析開發(fā)出的產(chǎn)品是否存在漏洞等問題。
為了測試網(wǎng)站中開發(fā)出的產(chǎn)品,需要構(gòu)建開發(fā)測試環(huán)境,該開發(fā)測試環(huán)境中部署有至少一個測試服務(wù)器,并在測試服務(wù)器中配置了所需測試的產(chǎn)品,測試人員通過終端訪問該測試服務(wù)器,以實現(xiàn)對開發(fā)出的產(chǎn)品的測試。而為了使得測試人員的終端可以訪問測試環(huán)境中的測試服務(wù)器,需要單獨為測試環(huán)境分配不同于線上環(huán)境(網(wǎng)站的實際運行環(huán)境)的域名,并進(jìn)行與域名相關(guān)的一系列配置,以及訪問控制所需的配置,使得部署測試環(huán)境的復(fù)雜度較高,進(jìn)而導(dǎo)致網(wǎng)站測試的復(fù)雜度較高。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┝艘环N網(wǎng)站測試方法、裝置以及系統(tǒng),以降低網(wǎng)站測試的復(fù)雜度。
為實現(xiàn)上述目的,一方面,本申請?zhí)峁┝艘环N網(wǎng)站測試方法,包括:
接收終端發(fā)送的攜帶有網(wǎng)站域名的訪問請求,所述網(wǎng)站域名用于標(biāo)識目標(biāo)網(wǎng)站;
在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,將所述訪問請求轉(zhuǎn)發(fā)給所述測試標(biāo)識所指向的測試服務(wù)器,所述測試服務(wù)器用于對所述目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試;
在確定出所述訪問請求中未攜帶有測試標(biāo)識的情況下,將所述訪問請求轉(zhuǎn)發(fā)給用于運行所述目標(biāo)網(wǎng)站的線上服務(wù)器。
在一種可能的設(shè)計中,在所述將所述訪問請求轉(zhuǎn)發(fā)給所述測試標(biāo)識所指向的測試服務(wù)器之前,還包括:
依據(jù)預(yù)置的測試標(biāo)識與測試服務(wù)器的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器中,確定出所述測試標(biāo)識所指向的測試服務(wù)器。
在又一種可能的設(shè)計中,所述依據(jù)預(yù)置的測試標(biāo)識與測試服務(wù)器的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器中,確定出所述測試標(biāo)識所指向的測試服務(wù)器,包括:
依據(jù)預(yù)置的測試標(biāo)識與測試環(huán)境的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試環(huán)境中,確定出所述測試標(biāo)識所指向的目標(biāo)測試環(huán)境,所述測試環(huán)境部署有至少一臺測試服務(wù)器,且不同的測試環(huán)境用于測試所述目標(biāo)網(wǎng)站中不同的待測試產(chǎn)品;
從所述目標(biāo)測試環(huán)境所部署的至少一臺測試服務(wù)器中,選擇出一臺目標(biāo)測試服務(wù)器作為待處理所述訪問請求的測試服務(wù)器。
在又一種可能的設(shè)計中,所述確定出所述訪問請求中攜帶有測試標(biāo)識,包括:
確定出所述訪問請求中攜帶有瀏覽器緩存記錄cookies,且所述cookies中包括用于表征所需訪問的測試服務(wù)器的測試標(biāo)識,其中,所述cookies記錄中的測試標(biāo)識為:所述終端在確定出所需測試的目標(biāo)產(chǎn)品之后,將部署有所述目標(biāo)產(chǎn)品的測試服務(wù)器的測試標(biāo)識插入到所述cookies中的;或者,所述終端當(dāng)前時刻之前訪問所述測試服務(wù)器時生成的。
另一方面,本申請還提供了一種網(wǎng)站測試裝置,包括:
請求接收單元,用于接收終端發(fā)送的攜帶有網(wǎng)站域名的訪問請求,所述網(wǎng)站域名用于標(biāo)識目標(biāo)網(wǎng)站;
第一調(diào)度單元,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,將所述訪問請求發(fā)送給所述測試標(biāo)識所指向的測試服務(wù)器,所述測試服務(wù)器用于對所述目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試;
第二調(diào)度單元,用于在確定出所述訪問請求中未攜帶有測試標(biāo)識的情況下,將所述訪問請求轉(zhuǎn)發(fā)給用于運行所述目標(biāo)網(wǎng)站的線上服務(wù)器。
在一種可能的設(shè)計中,所述第一調(diào)度單元,包括:
測試目標(biāo)確定單元,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,依據(jù)預(yù)置的測試標(biāo)識與測試服務(wù)器的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器中,確定出所述測試標(biāo)識所指向的測試服務(wù)器
測試處理單元,用于將所述訪問請求發(fā)送給所述測試標(biāo)識所指向的測試服務(wù)器。
在一種可能的設(shè)計中,所述測試目標(biāo)確定單元,包括:
環(huán)境確定子單元,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,依據(jù)預(yù)置的測試標(biāo)識與測試環(huán)境的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試環(huán)境中,確定出所述測試標(biāo)識所指向的目標(biāo)測試環(huán)境,所述測試環(huán)境部署有至少一臺測試服務(wù)器,且不同的測試環(huán)境用于測試所述目標(biāo)網(wǎng)站中不同的待測試產(chǎn)品;
目標(biāo)確定子單元,用于從所述目標(biāo)測試環(huán)境所部署的至少一臺測試服務(wù)器中,選擇出一臺目標(biāo)測試服務(wù)器作為待處理所述訪問請求的測試服務(wù)器。
在一種可能的設(shè)計中,還包括:
標(biāo)識識別單元,用于在檢測到所述訪問請求中攜帶有瀏覽器緩存記錄cookies,且所述cookies中包括用于表征所需訪問的測試服務(wù)器的測試標(biāo)識時,確定所述訪問請求中攜帶有測試標(biāo)識,其中,所述cookies記錄中的測試標(biāo)識為:所述終端在確定出所需測試的目標(biāo)產(chǎn)品之后,將部署有所述目標(biāo)產(chǎn)品的測試服務(wù)器的測試標(biāo)識插入到所述cookies中的;或者,所述終端當(dāng)前時刻之前訪問所述測試服務(wù)器時生成的。
在又一方面,本申請還提供給了一種網(wǎng)站測試系統(tǒng),包括:
至少一臺測試終端、至少一臺用戶終端、至少一臺負(fù)載均衡器、用于運行目標(biāo)網(wǎng)站的至少一臺線上服務(wù)器,以及用于對所述目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試的至少一臺測試服務(wù)器;
其中,所述測試終端,用于從瀏覽器緩存中獲取測試標(biāo)識,并生成攜帶有目標(biāo)網(wǎng)站的網(wǎng)站域名以及所述測試標(biāo)識的訪問請求;將生成的訪問請求發(fā)送給負(fù)載均衡器,其中,所述瀏覽器緩存中的測試標(biāo)識為所述測試終端在確定出所需測試的目標(biāo)產(chǎn)品之后,將部署有目標(biāo)產(chǎn)品的測試服務(wù)器的測試標(biāo)識插入到所述瀏覽器緩存中;或者所述測試終端在當(dāng)前時刻之前訪問所述測試服務(wù)器時生成的;
所述用戶終端,用于向負(fù)載均衡器發(fā)送攜帶有所述目標(biāo)網(wǎng)站的網(wǎng)站域名的訪問請求;
負(fù)載均衡器,用于接收攜帶有網(wǎng)站域名的訪問請求;在確定出接收到的訪問請求中攜帶有測試標(biāo)識的情況下,將接收到的訪問請求轉(zhuǎn)發(fā)給所述測試標(biāo)識所指向的測試服務(wù)器;在確定出接收到的訪問請求中未攜帶有測試標(biāo)識的情況下,將接收到的訪問請求轉(zhuǎn)發(fā)給用于運行所述目標(biāo)網(wǎng)站的線上服務(wù)器。
在一種可能的設(shè)計中,所述測試終端還用于,在生成所述訪問請求之前,展現(xiàn)用于選擇所需測試的產(chǎn)品的選擇界面,并根據(jù)用戶在該選擇界面中的選擇操作,確定當(dāng)前待測試的目標(biāo)產(chǎn)品;依據(jù)測試標(biāo)識與測試產(chǎn)品的映射關(guān)系,確定當(dāng)前待測試的目標(biāo)產(chǎn)品所對應(yīng)的測試標(biāo)識,并在測試終端的瀏覽器緩存中緩存所述目標(biāo)產(chǎn)品所對應(yīng)的測試標(biāo)識。
經(jīng)由上述的技術(shù)方案可知,運行發(fā)布后的目標(biāo)網(wǎng)站的線上環(huán)境,與用于對該開發(fā)或升級后的該目標(biāo)網(wǎng)站進(jìn)行測試的測試環(huán)境具有同一個入口,即具有相同的域名,同時,線上環(huán)境與測試環(huán)境共享負(fù)載均衡器,負(fù)載均衡器根據(jù)終端訪問請求中是否攜帶測試標(biāo)識,可以將該訪問請求轉(zhuǎn)發(fā)到測試環(huán)境的測試服務(wù)器或者線上環(huán)境的線上服務(wù)器,這樣,無需單獨為測試環(huán)境分配單獨的域名,避免了分配域名以及域名相關(guān)的配置操作,降低了部署測試環(huán)境的復(fù)雜度。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1示出了本申請的一種網(wǎng)站測試方法的一種應(yīng)用場景的組成結(jié)構(gòu)示意圖;
圖2示出了本申請的一種網(wǎng)站測試方法所適用的負(fù)載均衡器的組成結(jié)構(gòu)示意圖;
圖3示出了本申請的網(wǎng)站測試方法在配置測試服務(wù)器以及負(fù)載均衡器的流程示意圖;
圖4示出了本申請一種網(wǎng)站測試方法一個實施例的流程示意圖;
圖5示出了選擇測試環(huán)境的一種測試界面的示意圖;
圖6示出了本申請一種網(wǎng)站測試裝置一個實施例的組成結(jié)構(gòu)示意圖。
具體實施方式
本申請的網(wǎng)站測試方法可以應(yīng)用于網(wǎng)站中開發(fā)的產(chǎn)品進(jìn)行測試,以網(wǎng)站中開發(fā)出的產(chǎn)品所存在的漏洞或者其他問題。
為了便于理解,先對本申請實施例的網(wǎng)站測試方法所適用的應(yīng)用場景的系統(tǒng)組成進(jìn)行介紹。如圖1,在圖1所示的應(yīng)用場景中可以包括:
至少一個負(fù)載均衡器101;
與負(fù)載均衡器101相連的至少一個測試服務(wù)器102;
與負(fù)載均衡器101相連的至少一個線上服務(wù)器103;
通過網(wǎng)絡(luò)與負(fù)載均衡器相連的至少一個測試終端104以及多個用戶終端105。
其中,線上服務(wù)器是指正常提供網(wǎng)站服務(wù)器的服務(wù)器。
測試服務(wù)器中部署了網(wǎng)站中所需測試的產(chǎn)品對應(yīng)的資源數(shù)據(jù),以便通過測試服務(wù)器實現(xiàn)對該產(chǎn)品的測試。
為了減少配置測試環(huán)境的復(fù)雜度,在本申請實施例中,該測試服務(wù)器與線上服務(wù)器所對應(yīng)的域名相同。
其中,用戶終端為普通的網(wǎng)站用戶的終端,而測試終端為測試人員的終端,用戶終端以及測試終端均可以為任意形式的終端,如,可以為手機、掌上電腦、平板電腦以及臺式機等等。
可以理解的是,由于測試人員需要測試開發(fā)出的產(chǎn)品,因此,測試人員希望通過測試終端可以訪問到測試服務(wù)器,而對于普通的網(wǎng)站用戶,則需要定向到線上服務(wù)器。在本申請實施例中,通過負(fù)載均衡器101來實現(xiàn)將測試人員以及網(wǎng)站用戶通過終端所發(fā)出的訪問請求定向到不同的服務(wù)器??梢?,該負(fù)載均衡器與測試服務(wù)器構(gòu)成了測試環(huán)境,而負(fù)載均衡器又與線上服務(wù)器構(gòu)成了線上環(huán)境,同時,線上環(huán)境與測試環(huán)境實現(xiàn)了共享負(fù)載均衡器,同時可以降低配置測試環(huán)境的復(fù)雜度。
為了使得負(fù)載均衡器可以區(qū)分出測試人員以及網(wǎng)站用戶所發(fā)出的訪問請求,在本申請實施例中,測試人員的終端在向負(fù)載均衡器發(fā)出訪問請求時,可以攜帶表征訪問測試環(huán)境的測試標(biāo)識,相應(yīng)的,負(fù)載均衡器檢測到訪問請求中攜帶有該測試標(biāo)識,則依據(jù)該測試標(biāo)識,將該訪問請求定向到該測試標(biāo)識所表征的測試服務(wù)器。
可以理解的是,由于網(wǎng)站開發(fā)或者升級過程中,可能會涉及到多種功能的開發(fā)或升級,每種功能對應(yīng)著一種產(chǎn)品,為了單獨測試每種產(chǎn)品,可以分別針對每種產(chǎn)品單獨設(shè)置至少一臺測試服務(wù)器,同時還可以設(shè)置集成有該多種功能的至少一臺服務(wù)器。在該種情況下,每種產(chǎn)品的測試服務(wù)器實際上對應(yīng)著不同的測試環(huán)境,因此,為了區(qū)分出測試終端所需要測試的產(chǎn)品或者說測試環(huán)境,測試終端可以針對該多種功能預(yù)置不同的測試標(biāo)識,并根據(jù)測試需求,在訪問請求中攜帶不同的測試標(biāo)識。
其中,該測試標(biāo)識的形式可以有多種,如,該標(biāo)識可以為測試終端在瀏覽器中生成的一條cookies。
在本申請實施例中,該負(fù)載均衡器可以與現(xiàn)有的任意實現(xiàn)負(fù)載均衡的設(shè)備相似。如圖2,其示出了本申請實施例的網(wǎng)站測試方法所適用的負(fù)載均衡器的一種組成結(jié)構(gòu)示意圖。在圖2中,該負(fù)載均衡器200可以包括:處理器201、存儲器202、通信接口203和通信總線204。
處理器201、存儲器202、通信接口203均通過通信總線204完成相互間的通信。
通信接口203,用于接收終端發(fā)送的訪問請求,該訪問請求攜帶有該負(fù)載均衡器對應(yīng)的目標(biāo)網(wǎng)站的網(wǎng)站域名。
在本申請實施例中,該處理器201,可以為中央處理器(centralprocessingunit,cpu),特定應(yīng)用集成電路(application-specificintegratedcircuit,asic),數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件等。
該處理器可以調(diào)用存儲器202中存儲的程序,具體的,處理器可以執(zhí)行以下圖4以及圖6中負(fù)載均衡器側(cè)所執(zhí)行的操作。
存儲器202中用于存放一個或者一個以上程序,程序可以包括程序代碼,所述程序代碼包括計算機操作指令,在本申請實施例中,該存儲器中至少存儲有用于實現(xiàn)以下功能的程序:
在確定出終端發(fā)送的所述訪問請求中攜帶有測試標(biāo)識的情況下,將所述訪問請求發(fā)送給所述測試標(biāo)識所指向的測試服務(wù)器,所述測試服務(wù)器用于對所述目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試;
在確定出所述訪問請求中未攜帶有測試標(biāo)識的情況下,將所述訪問請求轉(zhuǎn)發(fā)給用于運行所述目標(biāo)網(wǎng)站的線上服務(wù)器。
在一種可能的實現(xiàn)方式中,該存儲器202可包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、以上所提到的程序,以及至少一個功能(比如聲音播放功能、圖像播放功能以及定位功能等)所需的應(yīng)用程序等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端的使用過程中所創(chuàng)建的數(shù)據(jù),比如,音頻數(shù)據(jù)、電話本等。
此外,存儲器202可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
該通信接口203可以為通信模塊的接口,如gsm模塊的接口。
當(dāng)然,圖2所示的負(fù)載均衡器的結(jié)構(gòu)并不構(gòu)成對本申請實施例中負(fù)載均衡器的限定,在實際應(yīng)用中負(fù)載均衡器可以包括比圖2所示的更多或更少的部件,或者組合某些部件。
在本申請實施例中,終端(測試終端或者用戶終端)的組成形式與圖2中負(fù)載均衡器的組成結(jié)構(gòu)相似。當(dāng)然,終端還可以包括輸入單元、顯示器以及音頻輸出單元等等,其中,輸入單元可以為如觸摸感應(yīng)單元、鍵盤等等輸入裝置。
下面結(jié)合本申請的以上共性,對本申請實施例的網(wǎng)站測試方法進(jìn)行詳細(xì)介紹。
為了便于理解本申請實施例的方案,下面先對網(wǎng)站測試之前所需的一些配置進(jìn)行介紹,如,參見圖3,其示出了本申請配置負(fù)載均衡器以及測試服務(wù)器的一種流程示意圖,本實施例以通過測試終端向測試服務(wù)器中配置所需的產(chǎn)品資源為例進(jìn)行介紹,本實施例的方法可以包括:
s301,測試終端從源代碼庫中獲取目標(biāo)網(wǎng)站中所需測試的產(chǎn)品的源代碼;
其中,該目標(biāo)網(wǎng)站為開發(fā)出的,或者存在升級的網(wǎng)站。
可以理解的是,開發(fā)人員在對網(wǎng)站開發(fā),或者對網(wǎng)站中的部分功能進(jìn)行技術(shù)改進(jìn)之后,就開發(fā)出相應(yīng)產(chǎn)品的源代碼。
其中,該源代碼包括:頁面以及頁面所需的靜態(tài)資源,如,源代碼中包括:超文本標(biāo)記語言(hypertextmark-uplanguage,html)頁面,還可以包括層疊樣式表(cascadingstylesheetsjavascript,css)和javascript等靜態(tài)資源。
s302,測試終端編譯該產(chǎn)品的源代碼。
s303,測試終端將編譯后的源代碼存儲到測試服務(wù)器,得到該編輯后的源代碼在該測試服務(wù)器中的目標(biāo)目錄;
可以理解的是,為了減少測試終端中緩存空間的占用,均可以采用增量發(fā)布的方式,以避免重復(fù)瀏覽器中緩存對相同源代碼編譯后的代碼文本。具體的,每次編譯時,可以利用信息摘要算法5(message-digestalgorithm5,md5)對源代碼中的資源進(jìn)行求值,并利用md5求值后的結(jié)果作為該編譯后的該源代碼的文件名,可見,如果源代碼的內(nèi)容相同,利用md5算法對源代碼進(jìn)行求值的結(jié)果相同,從而使得編譯后的源代碼對應(yīng)的文件名相同,在該種情況下,測試終端可以不在瀏覽器中重復(fù)緩存該編譯后的源代碼。
其中,該目標(biāo)目錄為測試服務(wù)器存儲編譯后的源代碼的地址目錄。
在一種可能的實現(xiàn)方式中,在測試終端將編譯后的源代碼存儲到測試服務(wù)器之后,還可以將測試服務(wù)器存儲編譯后的源代碼的該目標(biāo)目錄發(fā)送給負(fù)載均衡設(shè)備進(jìn)行存儲。
s304,測試終端接收用戶為測試該產(chǎn)品的測試環(huán)境配置的測試標(biāo)識,并緩存測試標(biāo)識與測試環(huán)境的映射關(guān)系,構(gòu)建用于選擇所需測試的測試環(huán)境的選擇界面。
其中,測試產(chǎn)品的測試環(huán)境用于表征測試該產(chǎn)品所需的至少一個測試服務(wù)器。換言之,測試環(huán)境中部署了至少一臺測試服務(wù)器。
其中,當(dāng)網(wǎng)站中所需測試的功能有多個時,網(wǎng)站可能需要對每種功能對應(yīng)的產(chǎn)品進(jìn)行測試,同時,還可能會集成有兩種或多種功能的產(chǎn)品進(jìn)行測試,這樣,使得測試的產(chǎn)品也相應(yīng)有多個,在該種情況下,測試每種產(chǎn)品均需要一種測試環(huán)境,而不同測試環(huán)境所對應(yīng)的測試標(biāo)識不同。
該選擇界面可以包括多種用于對不同產(chǎn)品功能進(jìn)行測試的測試環(huán)境的信息。如,選擇界面中可以包括:測試環(huán)境1、測試環(huán)境2、預(yù)上線環(huán)境等,其中,預(yù)上線環(huán)境為對升級后的網(wǎng)站進(jìn)行測試的環(huán)境,該預(yù)上線環(huán)境包括了測試環(huán)境1以及測試環(huán)境2所需測試的所有產(chǎn)品的功能。
為了使得負(fù)載均衡器可以識別不同測試標(biāo)識所表征的測試環(huán)境,在該負(fù)載均衡器中同樣配置有不同測試標(biāo)識與測試環(huán)境的映射關(guān)系,或者是,不同測試標(biāo)識與測試服務(wù)器的映射關(guān)系。如,用戶或測試人員等可以在負(fù)載均衡器中進(jìn)行配置該映射關(guān)系,或者是,用戶通過該測試終端將該映射關(guān)系發(fā)送給負(fù)載均衡器中進(jìn)行存儲。
可以理解的是,配置不同測試環(huán)境所對應(yīng)的測試標(biāo)識僅僅是一種實現(xiàn)方式,考慮到測試環(huán)境實際是與測試服務(wù)器相對應(yīng)的,因此,用戶也可以直接在測試終端中配置測試標(biāo)識與測試服務(wù)器的映射關(guān)系。如,一個測試標(biāo)識可以對應(yīng)著至少一臺測試服務(wù)器,相同測試標(biāo)識所對應(yīng)的至少一個測試服務(wù)器為測試相同產(chǎn)品的測試服務(wù)器。或者是,分別配置待測試的每款測試產(chǎn)品與測試標(biāo)識之間的映射關(guān)系,如,待測試的產(chǎn)品1(具有功能1)對應(yīng)的測試標(biāo)識為1;待測試的產(chǎn)品2(具有功能2)對應(yīng)的測試標(biāo)識為2。
相應(yīng)的,當(dāng)測試終端配置測試服務(wù)器與測試標(biāo)識的映射關(guān)系時,選擇界面中可以包括可選擇測試的每個測試服務(wù)器的信息。當(dāng)測試終端配置產(chǎn)品與測試標(biāo)識的映射關(guān)系,該選擇界面中可以包括可選擇測試的產(chǎn)品的信息。
當(dāng)然,每款待測試的產(chǎn)品實際上都對應(yīng)著一個測試環(huán)境,而每個測試環(huán)境實際都具有至少一個測試服務(wù)器,因此,配置產(chǎn)品、測試服務(wù)器或者測試環(huán)境與測試標(biāo)識的映射關(guān)系本質(zhì)都是相同的。
可以理解的是,以上僅僅是為了理解本申請的方案,以一種配置過程為例進(jìn)行介紹,但是對于通過其他方式將待測試的產(chǎn)品的源代碼進(jìn)行編譯后,存儲到測試服務(wù)器的過程也同樣適用于本申請,在此不加以限制。
參見圖4,其示出了本申請一種網(wǎng)站測試方法一個實施例的流程示意圖,本實施例的方法可以包括:
s401,測試終端展現(xiàn)選擇界面,并根據(jù)用戶在該選擇界面中的選擇操作,確定當(dāng)前待測試的測試環(huán)境。
其中,當(dāng)前待測試的測試環(huán)境也就是該測試終端所需要訪問的測試環(huán)境。
如,參見圖5,其示出了本申請中用于選擇測試環(huán)境的選擇界面的一種示意圖,由圖5可知,選擇界面中包括了:預(yù)上線環(huán)境,測試環(huán)境m1、測試環(huán)境m2以及測試環(huán)境m3,用戶根據(jù)所需測試的產(chǎn)品或者說功能,來選擇所需進(jìn)入的測試環(huán)境。例如,測試環(huán)境m1為用于目標(biāo)網(wǎng)站中升級的功能1所對應(yīng)的產(chǎn)品1進(jìn)行測試的環(huán)境,則用戶需要測試該產(chǎn)品1時,則可以選擇該測試環(huán)境m1;又如,預(yù)測試環(huán)境為對目標(biāo)網(wǎng)站中所有升級的產(chǎn)品進(jìn)行綜合測試的環(huán)境,如果用戶希望測試升級或改進(jìn)后的網(wǎng)站,則可以選擇該預(yù)測試環(huán)境。
當(dāng)然,在該選擇界面中還可以包括用于進(jìn)入線上環(huán)境的選項,如圖5中選擇界面中示出的“正式環(huán)境”,該線上環(huán)境部署有至少一臺用于正式運行該目標(biāo)網(wǎng)站的線上服務(wù)器,如果用戶選擇該線上環(huán)境,則表示不進(jìn)入測試環(huán)境,而需要正常訪問該目標(biāo)網(wǎng)站,則可以選擇該線上環(huán)境的選項,但是該線上環(huán)境并不具有與之對應(yīng)的測試標(biāo)識。
s402,測試終端依據(jù)測試標(biāo)識與測試環(huán)境的映射關(guān)系,確定當(dāng)前待測試的測試環(huán)境所對應(yīng)的測試標(biāo)識,并在測試終端的瀏覽器緩存中緩存當(dāng)前待測試的測試環(huán)境所對應(yīng)的測試標(biāo)識。
其中,測試標(biāo)識用于表征所需測試的測試環(huán)境,測試標(biāo)識的具體形式可以根據(jù)需要設(shè)定,如測試標(biāo)識可以為數(shù)值,也可以為字符串等等。
如,測試環(huán)境1對應(yīng)測試標(biāo)識m1,測試環(huán)境2對應(yīng)測試標(biāo)識m2,如果用戶選擇的測試環(huán)境為測試環(huán)境2,則確定測試環(huán)境2對應(yīng)的測試標(biāo)識為m2。
其中,將該測試標(biāo)識存儲到瀏覽器緩存的目的是可以在該測試終端發(fā)起訪問請求中,自動將該瀏覽器緩存中緩存的測試標(biāo)識攜帶于該訪問請求中。
該瀏覽器緩存可以有多種可能,如,在一種可能的情況中,可以將該測試標(biāo)識存儲于瀏覽器緩存記錄cookies(也稱為cookie)中,cookies為一種瀏覽器緩存,其為瀏覽器中緩存的一種小型文本文件。在該種情況下,測試終端在確定出測試環(huán)境所對應(yīng)的測試標(biāo)識之后,向瀏覽器的cookies中插入該測試標(biāo)識。例如,向cookies中插入用于表征該測試環(huán)境的一個值。
可以理解的是,將該測試標(biāo)識存儲到瀏覽器緩存中僅僅是一種可選的實現(xiàn)方式,在實際應(yīng)用中,也可以不執(zhí)行該將測試標(biāo)識存儲于該瀏覽器緩存中,而直接執(zhí)行后續(xù)將該測試標(biāo)識攜帶于生成的訪問請求中。如,如果用戶每次希望通過測試終端訪問不同的測試環(huán)境,則無需執(zhí)行將測試標(biāo)識存儲于該瀏覽器緩存中的操作。
當(dāng)然,本申請實施例是展現(xiàn)用于選擇的測試環(huán)境的選擇界面為例進(jìn)行說明,但是如果展現(xiàn)用于選擇所需測試的產(chǎn)品(或者測試服務(wù)器)的選擇界面也同樣適用于本申請實施例,其過程相似。如,以用于選擇所需測試的產(chǎn)品為例,測試終端可以根據(jù)用戶在該選擇界面中的選擇操作,確定當(dāng)前待測試的目標(biāo)產(chǎn)品;并依據(jù)測試標(biāo)識與測試產(chǎn)品的映射關(guān)系,確定當(dāng)前待測試的目標(biāo)產(chǎn)品所對應(yīng)的測試標(biāo)識,從而在瀏覽器緩存中緩存該目標(biāo)產(chǎn)品所對應(yīng)的測試標(biāo)識。
s403,測試終端從瀏覽器緩存中獲取緩存的測試標(biāo)識,并生成攜帶有目標(biāo)網(wǎng)站的網(wǎng)站域名以及該瀏覽器緩存中緩存的測試標(biāo)識的訪問請求。
如,測試終端獲取存儲有該測試標(biāo)識的cookies記錄,并生成攜帶有該cookies記錄的訪問請求。
需要說明的是,該測試終端所需要訪問的測試環(huán)境不發(fā)生變化的情況下,該測試終端可以直接從該瀏覽器緩存中獲取該測試環(huán)境的測試標(biāo)識,從而無需每次都執(zhí)行以上步驟s401和s402。如,測試終端在測試訪問某個測試環(huán)境時,在瀏覽器緩存中緩存了該測試環(huán)境的測試標(biāo)識,則該測試終端再次訪問該測試環(huán)境時,則可以直接從瀏覽器緩存中獲取該測試標(biāo)識,則無需用戶重新選擇測試環(huán)境,并由測試終端向瀏覽器緩存中重新插入該測試標(biāo)識。
s404,測試終端將攜帶有目標(biāo)網(wǎng)站的網(wǎng)站域名以及該測試標(biāo)識的訪問請求發(fā)送給目標(biāo)網(wǎng)站的負(fù)載均衡器。
s405,用戶終端將攜帶有目標(biāo)網(wǎng)站的網(wǎng)站域名的訪問請求發(fā)送給負(fù)載均衡器。
為了便于與用于對目標(biāo)網(wǎng)站進(jìn)行測試的測試終端進(jìn)行區(qū)分,本申請實施例中將訪問已經(jīng)發(fā)布的該目標(biāo)網(wǎng)站的普通用戶的終端稱為用戶終端。
與測試終端不同,該用戶終端發(fā)送的訪問請求中僅僅攜帶有用于標(biāo)識該目標(biāo)網(wǎng)站的網(wǎng)站域名,而并未攜帶用于表征需要訪問測試環(huán)境的測試標(biāo)識。
可以理解的是,該步驟s404和步驟s405的順序并不限于圖4所示,在實際應(yīng)用中,用戶終端與測試終端可以同時向負(fù)載均衡器發(fā)送各自的訪問請求,圖4僅僅是為了便于說明,而采用步驟流程的形式對這兩種終端向負(fù)載均衡器發(fā)送訪問請求的情況進(jìn)行介紹。
s406,負(fù)載均衡器檢測接收到的訪問請求中是否攜帶有測試標(biāo)識,如果是,則執(zhí)行步驟s407;如果否,則執(zhí)行步驟s410;
s407,負(fù)載均衡器根據(jù)存儲的測試標(biāo)識與測試環(huán)境的映射關(guān)系,從該目標(biāo)網(wǎng)站對應(yīng)的至少一個測試環(huán)境中,確定出測試標(biāo)識所指向的目標(biāo)測試環(huán)境;
其中,每個測試環(huán)境均部署有至少一臺測試服務(wù)器,且不同的測試環(huán)境用于測試該目標(biāo)網(wǎng)站中不同的待測試產(chǎn)品。其中,測試服務(wù)器用于對目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試。
為了便于區(qū)分,將該測試標(biāo)識所指向的測試環(huán)境稱為目標(biāo)測試環(huán)境。
可以理解的是,在訪問請求攜帶有測試標(biāo)識的情況下,則說明發(fā)送該訪問請求的終端為測試終端,且訪問請求用于請求訪問用于待測試產(chǎn)品進(jìn)行測試的測試環(huán)境。
s408,負(fù)載均衡器從該目標(biāo)測試環(huán)境所部署的至少一臺測試服務(wù)器中,選擇出一臺用于處理該訪問請求的目標(biāo)測試服務(wù)器;
其中,目標(biāo)測試環(huán)境可以僅僅部署一臺測試服務(wù)器,也可以部署多臺測試服務(wù)器,該目標(biāo)測試環(huán)境中各臺測試服務(wù)器均為對目標(biāo)網(wǎng)站中相同產(chǎn)品進(jìn)行測試的服務(wù)器,在該目標(biāo)測試環(huán)境中部署多臺測試服務(wù)器的目的僅僅是為了提高測試的可靠性。
當(dāng)然,考慮到測試過程中,訪問測試服務(wù)器的測試終端的數(shù)量有限,在每個測試環(huán)境中可以僅僅不是一臺測試服務(wù)器。在該種情況下,則無需執(zhí)行該步驟s408,則直接將訪問請求轉(zhuǎn)發(fā)給目標(biāo)測試環(huán)境中的測試服務(wù)器即可。
s409,負(fù)載均衡器將接收到的該訪問請求轉(zhuǎn)發(fā)給該目標(biāo)測試服務(wù)器。
需要說明的是,以上步驟s407至s409是以依據(jù)預(yù)置的測試標(biāo)識與測試環(huán)境的映射關(guān)系,來確定處理訪問請求的目標(biāo)測試服務(wù)器為例進(jìn)行說明,但是可以理解的是,在負(fù)載均衡器中預(yù)置測試標(biāo)識與測試服務(wù)器的映射關(guān)系的情況下,負(fù)載均衡器也可以從該目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器中,確定出該測試標(biāo)識所指向的測試服務(wù)器,并將訪問請求轉(zhuǎn)發(fā)給測試服務(wù)器。其中,該目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器為用于對目標(biāo)網(wǎng)站中改進(jìn)或升級的產(chǎn)品進(jìn)行測試的至少一個測試服務(wù)器,且不同測試標(biāo)識所指向的測試服務(wù)器所需測試的產(chǎn)品不同。
進(jìn)一步的,依據(jù)以上映射關(guān)系,確定測試標(biāo)識所指向的測試服務(wù)器僅僅是一種實現(xiàn)方式,對于其他確定測試標(biāo)識所指向的測試服務(wù)器的方式也同樣適用于本申請實施例。如,如果所需測試的產(chǎn)品僅僅有一種,即測試環(huán)境為一種的情況下,該測試標(biāo)識可以用于標(biāo)識該測試環(huán)境,因此,如果該負(fù)載均衡器接收到攜帶有該測試標(biāo)識的訪問請求,則可以直接將該訪問請求發(fā)送給該測試環(huán)境中的測試服務(wù)器。
s410,負(fù)載均衡器將接收到的訪問請求轉(zhuǎn)發(fā)給用于運行該目標(biāo)網(wǎng)站的線上服務(wù)器。
其中,該線上服務(wù)器為運行該目標(biāo)網(wǎng)站的服務(wù)器,即目標(biāo)網(wǎng)站正式發(fā)布后,運行發(fā)布后的該目標(biāo)網(wǎng)站的服務(wù)器。
在負(fù)載均衡器確定出該訪問請求中未攜帶有測試標(biāo)識的情況下,則說明該訪問請求為用于訪問線上服務(wù)器的普通訪問請求,從而直接將該訪問請求轉(zhuǎn)發(fā)給線上服務(wù)器。
當(dāng)然,在負(fù)載均衡器接收訪問請求之后,同樣需要對部署有線上服務(wù)器的線上環(huán)境進(jìn)行配置,配置線上服務(wù)器時,可以將該目標(biāo)網(wǎng)站相關(guān)的資源數(shù)據(jù)配置到線上服務(wù)器,并進(jìn)行其他配置,具體與常規(guī)的線上服務(wù)器的配置過程相似,在此不再贅述。
可見,在本申請實施例中,運行發(fā)布后的網(wǎng)站的線上環(huán)境,與用于對該開發(fā)或升級后的該網(wǎng)站進(jìn)行測試的測試環(huán)境具有同一個入口,即具有相同的域名,同時,線上環(huán)境與測試環(huán)境共享負(fù)載均衡器,負(fù)載均衡器根據(jù)終端訪問請求中是否攜帶測試標(biāo)識,可以將該訪問請求轉(zhuǎn)發(fā)到測試環(huán)境的測試服務(wù)器或者線上環(huán)境的線上服務(wù)器,這樣,無需單獨為測試環(huán)境分配單獨的域名,避免了分配域名以及域名相關(guān)的配置操作,降低了部署測試環(huán)境的復(fù)雜度。
同時,由于目標(biāo)網(wǎng)站中一些功能(比如,支付功能、分享功能等等)是與域名綁定到一起的,如果采用現(xiàn)有的單獨為測試環(huán)境配置一個獨立的域名,則可能導(dǎo)致這部分需要與域名綁定的功能被測試,而本申請的方案中,由于測試環(huán)境與線上環(huán)境采用相同的域名,可以避免與域名綁定的一些功能無法被測試的問題。
另外,在本申請的方案中,測試終端僅僅需要簡單的配置,而無需修改測試終端中域名所對應(yīng)的主機,從而避免了獲取測試終端的root權(quán)限,進(jìn)而降低了由于獲取root權(quán)限而導(dǎo)致的測試終端出現(xiàn)的一系列安全風(fēng)險。
下面對本發(fā)明實施例提供的一種網(wǎng)站測試裝置進(jìn)行介紹,下文描述的一種應(yīng)用測試裝置可與上文描述的一種網(wǎng)站測試方法相互對應(yīng)參照。
如圖6,其示出了本申請一種網(wǎng)站測試裝置一個實施例的組成結(jié)構(gòu)示意圖,本實施例的裝置可以包括:
請求接收單元601,用于接收終端發(fā)送的攜帶有網(wǎng)站域名的訪問請求,所述網(wǎng)站域名用于標(biāo)識目標(biāo)網(wǎng)站;
第一調(diào)度單元602,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,將所述訪問請求發(fā)送給所述測試標(biāo)識所指向的測試服務(wù)器,所述測試服務(wù)器用于對所述目標(biāo)網(wǎng)站中升級或改進(jìn)的產(chǎn)品進(jìn)行測試;
第二調(diào)度單元603,用于在確定出所述訪問請求中未攜帶有測試標(biāo)識的情況下,將所述訪問請求轉(zhuǎn)發(fā)給用于運行所述目標(biāo)網(wǎng)站的線上服務(wù)器。
可選的,所述第一調(diào)度單元,包括:
測試目標(biāo)確定單元,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,依據(jù)預(yù)置的測試標(biāo)識與測試服務(wù)器的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試服務(wù)器中,確定出所述測試標(biāo)識所指向的測試服務(wù)器
測試處理單元,用于將所述訪問請求發(fā)送給所述測試標(biāo)識所指向的測試服務(wù)器。
可選的,所述測試目標(biāo)確定單元,包括:
環(huán)境確定子單元,用于在確定出所述訪問請求中攜帶有測試標(biāo)識的情況下,依據(jù)預(yù)置的測試標(biāo)識與測試環(huán)境的映射關(guān)系,從所述目標(biāo)網(wǎng)站對應(yīng)的至少一個測試環(huán)境中,確定出所述測試標(biāo)識所指向的目標(biāo)測試環(huán)境,所述測試環(huán)境部署有至少一臺測試服務(wù)器,且不同的測試環(huán)境用于測試所述目標(biāo)網(wǎng)站中不同的待測試產(chǎn)品;
目標(biāo)確定子單元,用于從所述目標(biāo)測試環(huán)境所部署的至少一臺測試服務(wù)器中,選擇出一臺目標(biāo)測試服務(wù)器作為待處理所述訪問請求的測試服務(wù)器。
可選的,所述裝置還包括:
標(biāo)識識別單元,用于在檢測到所述訪問請求中攜帶有瀏覽器緩存記錄cookies,且所述cookies中包括用于表征所需訪問的測試服務(wù)器的測試標(biāo)識時,確定所述訪問請求中攜帶有測試標(biāo)識,其中,所述cookies記錄中的測試標(biāo)識為:所述終端在確定出所需測試的目標(biāo)產(chǎn)品之后,將部署有所述目標(biāo)產(chǎn)品的測試服務(wù)器的測試標(biāo)識插入到所述cookies中的;或者,所述終端當(dāng)前時刻之前訪問所述測試服務(wù)器時生成的。
需要說明的是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
以上僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。