本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種頁面服務(wù)的a/b測試方法裝置。
背景技術(shù):
a/b測試是一種新興的網(wǎng)頁優(yōu)化方法,可以用于增加轉(zhuǎn)化率、注冊率等網(wǎng)頁指標(biāo)。a/b測試本質(zhì)上是個分離式組間實驗,以前進行a/b測試的技術(shù)成本和資源成本相對較高,但現(xiàn)在一系列專業(yè)的可視化實驗工具的出現(xiàn),a/b測試已越來越成為網(wǎng)站優(yōu)化常用的方法。a/b測試,簡單來說,就是為同一個測試目標(biāo)制定兩個方案(比如兩個頁面),讓一部分用戶使用a方案,另一部分用戶使用b方案,記錄下用戶的使用情況,看哪個方案更符合設(shè)計。
目前在使用a/b測試時,首先需要建立一個測試頁面(variationpage),這個頁面可能在標(biāo)題字體,背景顏色,措辭等方面與原有頁面(controlpage)有所不同,然后將這兩個頁面以隨機的方式同時推送給所有瀏覽用戶。接下來分別統(tǒng)計兩個頁面的用戶轉(zhuǎn)化率,即可清晰的了解到兩種設(shè)計的優(yōu)劣。
但是現(xiàn)有的a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種頁面服務(wù)的a/b測試方法和相應(yīng)的一種頁面服務(wù)的a/b測試裝置。
依據(jù)本發(fā)明的一個方面,提供了一種頁面服務(wù)的a/b測試方法,包括:
接收客戶端發(fā)送的頁面請求;
根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;
根據(jù)所述測試模版生成測試頁面;
將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
可選地,所述根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版的步驟,包括:
從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù);
按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組;
根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
可選地,所述根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版的步驟,包括:
針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素;
如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾;
如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。
可選地,所述按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組的步驟,包括:
根據(jù)各所述測試元素的元素標(biāo)識,將元素標(biāo)識相同的測試元素劃分為同一分組。
可選地,在所述根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版的步驟之前,還包括:
根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。
可選地,在所述將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端的步驟之后,還包括:
從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率;
選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。
根據(jù)本發(fā)明的另一個方面,公開了一種頁面服務(wù)的a/b測試裝置,包括:
頁面請求接收模塊,用于接收客戶端發(fā)送的頁面請求;
初始模板過濾模塊,用于根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;
測試頁面生成模塊,用于根據(jù)所述測試模版生成測試頁面;
測試頁面發(fā)送模塊,用于將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
可選地,所述初始模板過濾模塊,包括:
第一過濾參數(shù)獲取子模塊,用于從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù);
分組子模塊,用于按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組;
初始模板過濾子模塊,用于根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
可選地,所述初始模板過濾子模塊,包括:
目標(biāo)測試元素判斷單元,用于針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素;
第一過濾單元,用于如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾;
第二過濾單元,用于如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。
可選地,所述分組子模塊,還用于根據(jù)各所述測試元素的元素標(biāo)識,將元素標(biāo)識相同的測試元素劃分為同一分組。
可選地,還包括:
初始模版匹配模塊,用于根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。
可選地,還包括:
用戶轉(zhuǎn)化率統(tǒng)計模塊,用于從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率;
發(fā)布版本確定模塊,用于選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。
根據(jù)本發(fā)明的一種頁面服務(wù)的a/b測試方法,可以接收客戶端發(fā)送的頁面請求;根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;根據(jù)所述測試模版生成測試頁面;將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。由此解決了現(xiàn)有a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。取得了減少了修改操作,降低了操作耗時,提高了測試靈活性以及準(zhǔn)確率的有益效果。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例的一種頁面服務(wù)的a/b測試方法的步驟流程圖;
圖2示出了根據(jù)本發(fā)明一個實施例的一種頁面服務(wù)的a/b測試方法的步驟流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例的一種頁面服務(wù)的a/b測試裝置的結(jié)構(gòu)示意圖。以及
圖4示出了根據(jù)本發(fā)明一個實施例的一種頁面服務(wù)的a/b測試裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
實施例一
詳細介紹本發(fā)明實施例提供的一種頁面服務(wù)的a/b測試方法。
參照圖1,示出了本發(fā)明實施例中一種頁面服務(wù)的a/b測試方法的步驟流程圖。
步驟110,接收客戶端發(fā)送的頁面請求。
在實際應(yīng)用中,用戶如果需要訪問某頁面時,需要通過客戶端發(fā)送頁面請求至服務(wù)器,以獲取相應(yīng)的頁面在客戶端進行展示。在本發(fā)明實施例中,為了對同一頁面的不同展示式樣進行測試,可以將對應(yīng)用一頁面的不同展示式樣發(fā)送至不同的客戶端用戶,但是仍然需要在接收到客戶端發(fā)送的頁面請求之后,才會將頁面反饋至客戶端。因此,在本發(fā)明實施例中。首先需要接收客戶端發(fā)送的頁面請求。而且,其中的頁面請求是針對需要進行測試的頁面的頁面請求,可以包括瀏覽器的網(wǎng)頁請求、應(yīng)用程序(application,app)的頁面請求,等等。而且在頁面請求中一般可以相應(yīng)客戶端信息,例如客戶端ip(internetprotocol,網(wǎng)際協(xié)議)地址,客戶端序列號、客戶端當(dāng)前用戶信息,等等。
步驟120,根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
如前述,在實際應(yīng)用中,a/b測試簡單來說就是為同一個測試目標(biāo)制定兩個方案(比如兩個頁面),讓一部分用戶使用a方案,另一部分用戶使用b方案,記錄下用戶的使用情況,看哪個方案更符合設(shè)計。那么在本發(fā)明實施例中,同一個測試目標(biāo)可以理解為針對同一網(wǎng)絡(luò)訪問地址、同一url(uniformresourcelocator,統(tǒng)一資源定位符)、或者是同一app中同一位置頁面,等等。而且,在本發(fā)明實施例中,可以針對同一個測試目標(biāo)制定至少兩個方案,例如針對同一網(wǎng)路訪問地址準(zhǔn)備至少兩個頁面響應(yīng),等等,對此本發(fā)明實施例不加以限定。在本發(fā)明實施例中,可以在本步驟之前,或者是本步驟之前的任一步驟之前根據(jù)需求設(shè)定初始模版中包含的測試元素的種類,以及過濾后的測試模版中最終保留的測試元素數(shù)量以及種類,對此本發(fā)明實施例都不加以限定。
在本發(fā)明實施例中,頁面測試工作人員可以預(yù)先設(shè)置針對當(dāng)前測試地址的初始模版,在初始模版中可以包括多個需要進行測試的測試元素。其中的測試元素也可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟進行設(shè)定,對此本發(fā)明實施例不加以限定。
例如,對于某一待測試的頁面,假設(shè)其包括兩個子區(qū)域,分別為子區(qū)域a和區(qū)域b,其中對于區(qū)域a中的展示內(nèi)容的展示方式可以分為兩種,那么在初始模版中可以針對區(qū)域a的展示內(nèi)容的展示方式設(shè)置兩個測試元素a1和a2;而且針對一個用戶對于區(qū)域b中的展示內(nèi)容的展示方式也可以分為兩種,那么同樣可以在初始模版中可以針對區(qū)域b的展示內(nèi)容的展示方式設(shè)置兩個測試元素b1和b2。其中的a1和a2為針對子區(qū)域a的兩種展示方案,b1和b2為針對子區(qū)域b的兩種展示方案,那么a1和a2則不能同時出現(xiàn)在同一測試模版中,b1和b2也不能同時出現(xiàn)在同一測試模版中。
因此,在本發(fā)明實施例中,需要根據(jù)頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。其中的預(yù)設(shè)規(guī)則可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前進行設(shè)定,對此本發(fā)明實施例不加以限定。
例如,可以設(shè)定預(yù)設(shè)規(guī)則為先對初始模版中的測試元素進行排序,或著是分組后并排序,然后根據(jù)接收到的頁面請求中的用戶ip地址,將初始模版中序列號與ip地址尾號不一致的測試元素進行過濾,或者是將初始模版中各分組中序列號與ip地址尾號奇偶性不一致的測試元素進行過濾,等等。對此本發(fā)明實施例不加以限定。
步驟130,根據(jù)所述測試模版生成測試頁面。
對初始模版中的測試元素過濾后得到測試模版,則可以根據(jù)測試模版生成測試頁面。在本發(fā)明實施例中,在初始模版中設(shè)置的測試元素時,同時可以設(shè)置各測試元素在初始模版中的展示細節(jié),例如展示位置,展示尺寸等等。
那么在本發(fā)明實施例中,則可以根據(jù)過濾后得到的測試模版生成用以作為頁面請求響應(yīng)的測試頁面。具體的可以利用任何一種可以方法根據(jù)測試模版生成測試頁面,對此本發(fā)明實施例不加以限定。
步驟140,將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
在生成相應(yīng)的測試頁面之后,為了檢測相應(yīng)客戶端用戶對該測試頁面的用戶轉(zhuǎn)化情況,進一步分析該測試頁面的用戶轉(zhuǎn)化率,則需要將生成的測試頁面作為接收到的頁面請求的響應(yīng)返回至相應(yīng)的客戶端。在本發(fā)明實施例中,可以利用任何可用方式將測試頁面作為相應(yīng)頁面請求的響應(yīng)發(fā)送至相應(yīng)客戶端,對此本發(fā)明實施例不加以限定。
在本發(fā)明實施例中,可以接收客戶端發(fā)送的頁面請求;根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;根據(jù)所述測試模版生成測試頁面;將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。由此解決了現(xiàn)有a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。取得了減少了修改操作,降低了操作耗時,提高了測試靈活性以及準(zhǔn)確率的有益效果。
實施例二
詳細介紹本發(fā)明實施例提供的一種頁面服務(wù)的a/b測試方法。
參照圖1,示出了本發(fā)明實施例中一種頁面服務(wù)的a/b測試方法的步驟流程圖。
步驟210,接收客戶端發(fā)送的頁面請求。
步驟220,根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。
在實際應(yīng)用中,可以同時針對多個不同的目標(biāo)進行a/b測試。那么在本發(fā)明實施例中,可以預(yù)先設(shè)置一初始模版庫,在初始模版庫中可以包含多個針對不同測試目標(biāo)的初始模版。而且客戶端發(fā)送的頁面請求一般是對應(yīng)某一測試目標(biāo)的頁面請求,那么在本發(fā)明實施例中,則可以根據(jù)接收到的客戶端發(fā)送的頁面請求,從初始模版庫中查找與該頁面請求匹配的初始模版。
具體的可以先獲取頁面請求對應(yīng)的測試目標(biāo),然后從初始模版庫中查找與該測試目標(biāo)對應(yīng)的初始模版,那么該初始模版即為與頁面請求匹配的初始模版。當(dāng)然也可以根據(jù)其他參數(shù)從預(yù)設(shè)的初始模版庫中查找與當(dāng)前接收到的頁面請求匹配的初始模版,對此本發(fā)明實施例不加以限定。
步驟230,從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù)。
如前述,在本發(fā)明實施例中,需要根據(jù)頁面請求對初始模版中的測試元素進行過濾,具體的可以根據(jù)頁面請求中的第一過濾參數(shù)對初始模版中的測試元素進行過濾。其中的第一過濾參數(shù)可以為客戶端的設(shè)備編號、客戶端的ip地址、客戶端用戶的用戶信息,等等,其中的用戶信息可以包括用戶標(biāo)識、用戶年齡、用戶性別、用戶職業(yè)等等。在本發(fā)明實施例中,可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前設(shè)定第一過濾參數(shù)的具體內(nèi)容,對此本發(fā)明實施例不加以限定。
例如,如果需要根據(jù)客戶端的設(shè)備編號的奇偶性對初始模版中的測試元素進行過濾,那么則可以設(shè)置從頁面請求中獲取發(fā)送該頁面請求的客戶端對應(yīng)的客戶端的設(shè)備編號,而且由于根據(jù)客戶端的設(shè)備編號的最后一位即可以確定客戶端的設(shè)備編號的奇偶性,因此也可以設(shè)置直接獲取該頁面請求的客戶端對應(yīng)的客戶端的設(shè)備編號中的最后一位,或者是最后幾位,等等。
步驟240,按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組。
如前述,在初始模版中可以存在針對同一展示區(qū)域的多個測試元素,也即在過濾后的同一測試模版中不能同時出現(xiàn)的多個測試元素。在本發(fā)明實施例中,可以將互相不能出現(xiàn)在同一測試模版中的測試元素分為一組。那么在對測試元素進行過濾時,則可以按照分組進行過濾,并且在同一分組中只保留一個測試元素。那么,在本發(fā)明實施例中,首先需要按照預(yù)設(shè)的分組規(guī)則,確定各測試元素所屬的分組。
在本發(fā)明實施例中,可以根據(jù)各測試元素對應(yīng)的展示區(qū)域?qū)Ω鳒y試元素進行分組。例如,前述的測試元素a1、a2、b1和b2,其中a1和a2對應(yīng)于同一展示區(qū)域a,b1和b2對應(yīng)于同一展示區(qū)域b,那么則可以將a1和a2分為一組,同時將b1和b2分為一組。另外,在本發(fā)明實施例中,也可以利用其他方式確定各測試元素的分組,具體可以在本步驟之前,或者是本步驟之前的任一步驟之前根據(jù)需求設(shè)定分組規(guī)則,對此本發(fā)明實施例不加以限定。
可選地,在本發(fā)明實施例中,所述步驟240進一步可包括:
子步驟241,根據(jù)各所述測試元素的元素標(biāo)識,將元素標(biāo)識相同的測試元素劃分為同一分組。
在本發(fā)明實施例中,在設(shè)置各測試元素時,還可以同時設(shè)置各測試元素的元素標(biāo)識,那么則可以根據(jù)各測試元素的元素標(biāo)識,將元素標(biāo)識相同的測試元素劃分為同一分組。其中,需要保證不同分組的測試元素的元素標(biāo)識互不相同。
例如,對于前述的測試元素a1、a2、b1和b2,可以預(yù)先設(shè)置測試元素a1和a2的元素標(biāo)識為a,而設(shè)置b1和b2的元素標(biāo)識為b,那么則可以將a1和a2分為一組,同時將b1和b2分為一組。
其中,各測試元素的元素標(biāo)識可以根據(jù)需求進行設(shè)定,而且在設(shè)定各測試元素的元素標(biāo)識時,可以設(shè)置對應(yīng)同一展示區(qū)域的測試元素的元素標(biāo)識相同,而對應(yīng)不同展示區(qū)域的測試元素的元素標(biāo)識互不相同。
步驟250,根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
在本發(fā)明實施例中,在獲取了第一過濾參數(shù)之后,則可以根據(jù)第一過濾規(guī)則對初始模版中的測試元素進行過濾。但是在本發(fā)明實施例中,對應(yīng)于不同的分組的預(yù)設(shè)過濾規(guī)則可以不完全一致,那么則可以根據(jù)獲取的第一過濾參數(shù),分別利用與各分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。其中,與各分組對應(yīng)的預(yù)設(shè)過濾規(guī)則可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前進行設(shè)定,對此本發(fā)明實施例不加以限定,而且對應(yīng)與不同分組的預(yù)設(shè)過濾規(guī)則可以完全一致,也可以不完全一致,對此本發(fā)明實施例也不加以限定。
例如,當(dāng)前接收到的頁面請求對應(yīng)的初始模版中包含的測試元素為前述的a1、a2、b1和b2,其中,a1和a2屬于同一個分組,b1和b2屬于另一個分組,假設(shè)對于a1和a2構(gòu)成的分組對應(yīng)的預(yù)設(shè)過濾規(guī)則為將a1分配給設(shè)備編號為奇數(shù)的客戶端,將a2分配給設(shè)備編號為偶數(shù)的客戶端;而對于b1和b2構(gòu)成的分組的預(yù)設(shè)過濾規(guī)則為將b2分配給設(shè)備編號為奇數(shù)的客戶端,將b1分配給設(shè)備編號為偶數(shù)的客戶端。那么假設(shè)此時獲取的頁面請求對應(yīng)的設(shè)備編號為0011,那么此時過濾后得到的測試模版中包含的測試元素為a1和b2。
當(dāng)然,在本發(fā)明實施例中,還可以設(shè)置針對不同分組獲取的第一過濾參數(shù)也不完全相同。例如,可以設(shè)置對于上述的a1和a2構(gòu)成的分組獲取的第一過濾參數(shù)為客戶端的設(shè)備編號,而對于上述的b1和b2構(gòu)成的分組獲取的第一過濾參數(shù)為客戶端的ip地址,那么此時對于a1和a2構(gòu)成的分組對應(yīng)的預(yù)設(shè)過濾規(guī)則仍然可以為將a1分配給設(shè)備編號為奇數(shù)的客戶端,將a2分配給設(shè)備編號為偶數(shù)的客戶端;而對于b1和b2構(gòu)成的分組對應(yīng)的預(yù)設(shè)過濾規(guī)則可以設(shè)置為將b1分配給ip地址尾號為奇數(shù)的客戶端,將b2分配給ip地址尾號為偶數(shù)的客戶端。那么如果針對a1和a2構(gòu)成的分組獲取的客戶端的設(shè)備編號為0011,而對于上述的b1和b2構(gòu)成的分組獲取的客戶端的ip地址為119.57.117.177,那么此時過濾后得到的測試模版中包含的測試元素為a1和b1。
可選地,在本發(fā)明實施例中,所述步驟250進一步可以包括:
子步驟251,針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素。
子步驟252,如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾。
子步驟253,如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。
在實際應(yīng)用中,還有可能針對某一分組中,利用與該分組對應(yīng)的預(yù)設(shè)過濾規(guī)則無法在該分組中獲取與第一過濾參數(shù)匹配的目標(biāo)測試元素,那么此時從該分組中則無法獲取需要保留在測試模版中的目標(biāo)測試元素,從而進一步會影響展示至客戶端的測試頁面的效果。
因此,在本發(fā)明實施例中,可以針對每個分組預(yù)先設(shè)置一個默認(rèn)測試元素,當(dāng)針對某一分組利用相應(yīng)的預(yù)設(shè)過濾規(guī)則確認(rèn)需要將該分組內(nèi)的全部測試元素進行過濾,那么則可以該分組內(nèi)的默認(rèn)測試元素作為需要保留在測試模版中的目標(biāo)測試元素。其中的默認(rèn)測試元素可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前進行設(shè)定,對此本發(fā)明實施例不加以限定。
那么,在本發(fā)明實施例中,在對各分組中的測試元素進行過濾時,可以先針對各分組,利用與各分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各分組中是否存在與第一過濾參數(shù)匹配的目標(biāo)測試元素。如果在當(dāng)前分組中存在與第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中目標(biāo)測試元素以外的其他測試元素進行過濾。而如果在當(dāng)前分組中不存在與第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。
步驟260,根據(jù)所述測試模版生成測試頁面。
步驟270,將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
步驟280,從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率。
在實際應(yīng)用中,對測試目標(biāo)進行a/b測試的目的在于確定出最適合該測試目標(biāo)的測試頁面。那么在本發(fā)明實施例中,在將測試頁面發(fā)送至客戶端之后,可以進一步統(tǒng)計該測試頁面的用戶轉(zhuǎn)化率。其中的用戶轉(zhuǎn)化率可以理解為接收到該測試頁面的用戶中成為該測試頁面正式用戶的比例,也即正式用戶/接收到該測試頁面的用戶,其中的正式用戶可以包括對測試頁面進行點擊操作的用戶,或者是對測試頁面進行消費操作的用戶,或者是在測試頁面進行用戶注冊的用戶等等。在本發(fā)明實施例中,可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前設(shè)定正式用戶的類型,對此本發(fā)明實施例不加以限定。
而且,在本發(fā)明實施例中,為了計算各測試頁面的用戶轉(zhuǎn)化率,可以分別統(tǒng)計在預(yù)設(shè)時間段內(nèi)接收到各測試頁面的用戶轉(zhuǎn)化為正式用戶的比例,進而可以得到各測試頁面的用戶轉(zhuǎn)化率。其中的預(yù)設(shè)時間段可以根據(jù)需求在本步驟之前,或者是本步驟之前的任一步驟之前進行設(shè)定,對此本發(fā)明實施例不加以限定。
步驟290,選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。
如前述,某一測試頁面的用戶轉(zhuǎn)化率越高,則說明接收到該測試頁面的用戶中轉(zhuǎn)化為正式用戶的概率就越高,進一步可以說明該測試頁面對用戶的吸引力更大,那么在計算得到各測試頁面的用戶轉(zhuǎn)化率之后,則可以選擇用戶轉(zhuǎn)化率最高的測試頁面作為相應(yīng)頁面請求的發(fā)布版本,也即可以選擇用戶轉(zhuǎn)化率最高的測試頁面作為相應(yīng)頁面請求對應(yīng)的測試目標(biāo)的發(fā)布版本。在確定了測試目標(biāo)的發(fā)布版本之后,那么再次接收到任一客戶端發(fā)送的針對該測試目標(biāo)的頁面請求后,可以直接以該發(fā)布版本作為響應(yīng)返回至相應(yīng)客戶端。
在本發(fā)明實施例中,可以接收客戶端發(fā)送的頁面請求;根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;根據(jù)所述測試模版生成測試頁面;將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。由此解決了現(xiàn)有a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。取得了減少了修改操作,降低了操作耗時,提高了測試靈活性以及準(zhǔn)確率的有益效果。
而且,在本發(fā)明實施例中,可以從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù);按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組;根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。并且,針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素;如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾;如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。從而可以進一步提高獲取的測試模版的準(zhǔn)確率。
另外,在本發(fā)明實施例中,還可以根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。從而可以同時針對多個測試目標(biāo)進行a/b測試,進一步可以提高測試的效率。
進一步地,在本發(fā)明實施例中,還可以從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率;選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。從而可以準(zhǔn)確確定各測試目標(biāo)的發(fā)布版本。
對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
實施例三
詳細介紹本發(fā)明實施例提供的一種頁面服務(wù)的a/b測試裝置。
參照圖3,示出了本發(fā)明實施例中一種頁面服務(wù)的a/b測試裝置的結(jié)構(gòu)示意圖。
頁面請求接收模塊310,用于接收客戶端發(fā)送的頁面請求。
初始模板過濾模塊320,用于根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
測試頁面生成模塊330,用于根據(jù)所述測試模版生成測試頁面。
測試頁面發(fā)送模塊340,用于將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
在本發(fā)明實施例中,可以接收客戶端發(fā)送的頁面請求;根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;根據(jù)所述測試模版生成測試頁面;將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。由此解決了現(xiàn)有a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。取得了減少了修改操作,降低了操作耗時,提高了測試靈活性以及準(zhǔn)確率的有益效果。
實施例四
詳細介紹本發(fā)明實施例提供的一種頁面服務(wù)的a/b測試裝置。
參照圖4,示出了本發(fā)明實施例中一種頁面服務(wù)的a/b測試裝置的結(jié)構(gòu)示意圖。
頁面請求接收模塊410,用于接收客戶端發(fā)送的頁面請求。
初始模版匹配模塊420,用于根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。
初始模板過濾模塊430,用于根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
可選地,在本發(fā)明實施例中,所述初始模板過濾模塊430,進一步可以包括:
第一過濾參數(shù)獲取子模塊431,用于從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù)。
分組子模塊432,用于按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組。
可選地,在本發(fā)明實施例中,所述分組子模塊432,還用于根據(jù)各所述測試元素的元素標(biāo)識,將元素標(biāo)識相同的測試元素劃分為同一分組。
初始模板過濾子模塊433,用于根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。
可選地,在本發(fā)明實施例中,所述初始模板過濾子模塊433,進一步可以包括:
目標(biāo)測試元素判斷單元,用于針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素。
第一過濾單元,用于如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾。
第二過濾單元,用于如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。
測試頁面生成模塊440,用于根據(jù)所述測試模版生成測試頁面。
測試頁面發(fā)送模塊450,用于將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。
用戶轉(zhuǎn)化率統(tǒng)計模塊460,用于從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率。
發(fā)布版本確定模塊470,用于選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。
在本發(fā)明實施例中,可以接收客戶端發(fā)送的頁面請求;根據(jù)所述頁面請求按照預(yù)設(shè)規(guī)則對初始模版中的測試元素進行過濾,得到測試模版;根據(jù)所述測試模版生成測試頁面;將所述測試頁面作為所述頁面請求的響應(yīng)發(fā)送至所述客戶端。由此解決了現(xiàn)有a/b測試過程中,每次修改測試案例時都要相應(yīng)地修改代碼邏輯,進而導(dǎo)致測試過程耗時且不靈活,而且修改代碼還會導(dǎo)致錯誤率上升、風(fēng)險增大的問題。取得了減少了修改操作,降低了操作耗時,提高了測試靈活性以及準(zhǔn)確率的有益效果。
而且,在本發(fā)明實施例中,可以從所述頁面請求中獲取所述預(yù)設(shè)規(guī)則所需的第一過濾參數(shù);按照預(yù)設(shè)的分組規(guī)則,確定各所述測試元素所屬的分組;根據(jù)所述第一過濾參數(shù),分別利用與各所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則對初始模版中的測試元素進行過濾,得到測試模版。并且,針對各所述分組,利用與所述分組對應(yīng)的預(yù)設(shè)過濾規(guī)則,判斷各所述分組中是否存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素;如果在當(dāng)前分組中存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中所述目標(biāo)測試元素以外的其他測試元素進行過濾;如果在當(dāng)前分組中不存在與所述第一過濾參數(shù)匹配的目標(biāo)測試元素,則將當(dāng)前分組中除默認(rèn)測試元素外的其他測試元素進行過濾。從而可以進一步提高獲取的測試模版的準(zhǔn)確率。
另外,在本發(fā)明實施例中,還可以根據(jù)所述頁面請求,從預(yù)設(shè)的初始模版庫中查找與所述頁面請求匹配的初始模版。從而可以同時針對多個測試目標(biāo)進行a/b測試,進一步可以提高測試的效率。
進一步地,在本發(fā)明實施例中,還可以從所述客戶端統(tǒng)計所述測試頁面的用戶轉(zhuǎn)化率;選擇所述用戶轉(zhuǎn)化率最高的測試頁面作為所述頁面請求的發(fā)布版本。從而可以準(zhǔn)確確定各測試目標(biāo)的發(fā)布版本。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(dsp)來實現(xiàn)根據(jù)本發(fā)明實施例的頁面服務(wù)的a/b測試設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。