本發(fā)明涉及移動應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種灰度發(fā)布方法及裝置。
背景技術(shù):
在當(dāng)前的互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,灰度發(fā)布是一種重要的用戶參與的測試形式?;叶劝l(fā)布又稱體驗(yàn)式發(fā)布,是指在黑與白之間,能夠平滑過渡的一種發(fā)布形式?;叶劝l(fā)布的主要思想就是把影響集中到一個點(diǎn),然后再發(fā)散到一個面,出現(xiàn)意外情況時,很容易回退,避免造成大范圍的影響,通過灰度發(fā)布可以對某些目標(biāo)功能進(jìn)行測試,從而來控制測試功能的穩(wěn)定性以及終端功能數(shù)據(jù),來達(dá)到產(chǎn)品上的目標(biāo)。
現(xiàn)有技術(shù)中,應(yīng)用程序(APP)端的灰度發(fā)布都是基于本地化(native)開發(fā)的功能,都是基于版本迭代來的,通過發(fā)版讓用戶來獲取對應(yīng)的灰度測試功能,用戶獲取灰度測試的安裝包,只能通過應(yīng)用市場進(jìn)行下載。
通過發(fā)版來進(jìn)行灰度測試,需要用戶更新APP的整個安裝包,不僅耗費(fèi)用戶流量,測試周期長且不靈活,而且取決于用戶是否允許下載最新安裝包,很難控制灰度發(fā)布目標(biāo)用戶。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種灰度發(fā)布方法及裝置,以解決現(xiàn)有的灰度發(fā)布需要通過發(fā)版導(dǎo)致測試周期長且不靈活的至少一個問題。
第一方面,本發(fā)明提供一種灰度發(fā)布方法,包括:
接收客戶端發(fā)送的灰度文件獲取請求,所述灰度文件獲取請求中攜帶所述客戶端的標(biāo)識和所述客戶端的軟件配置信息,所述灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
根據(jù)所述客戶端的軟件配置信息向所述客戶端發(fā)送灰度文件地址,以使所述客戶端根據(jù)所述灰度文件地址下載所述灰度文件,并在下載成功后返回下載成功日志;
根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述客戶端的軟件配置信息包括已安裝應(yīng)用名稱和版本號,所述根據(jù)所述客戶端的軟件配置信息向所述客戶端發(fā)送灰度文件地址,包括:
根據(jù)已安裝應(yīng)用名稱和版本號,確定出存在與已安裝應(yīng)用版本對應(yīng)的所述灰度文件時,向所述客戶端發(fā)送灰度文件地址。
進(jìn)一步地,所述下載成功日志包括所述客戶端的地理位置、所述客戶端的標(biāo)識和下載成功的灰度文件版本。
進(jìn)一步地,所述灰度發(fā)布配置信息包括灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間,N為正整數(shù),所述根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口,包括:
確定接收到所述下載成功日志的時間在所述灰度發(fā)布時間之內(nèi),且所述客戶端的序號小于N,則打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述預(yù)設(shè)的灰度發(fā)布配置信息包括投放對象的地理位置和灰度文件版本,所述根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口,包括:
確定所述下載成功日志中攜帶的所述客戶端的地理位置和下載成功的灰度文件版本滿足所述預(yù)設(shè)的灰度發(fā)布配置信息中的地理位置和灰度文件版本,則打開所述客戶端的灰度功能入口。
進(jìn)一步地,打開所述客戶端的灰度功能入口之后,還包括:
接收所述客戶端發(fā)送的灰度測試數(shù)據(jù);
根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定是否滿足預(yù)設(shè)的測試目標(biāo),若滿足,則打開所有已下載成功灰度文件的客戶端的灰度功能入口,若不滿足,則關(guān)閉已打開灰度功能入口的客戶端的灰度功能入口。
第二方面,本發(fā)明提供一種灰度發(fā)布方法,包括:
向服務(wù)器發(fā)送灰度文件獲取請求,所述灰度文件獲取請求中攜帶客戶端的標(biāo)識和所述客戶端的軟件配置信息,所述灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
接收所述服務(wù)器根據(jù)所述客戶端的軟件配置信息發(fā)送的灰度文件地址;
根據(jù)所述灰度文件地址下載所述灰度文件,并在下載成功后向所述服務(wù)器返回下載成功日志,以使所述服務(wù)器根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述下載成功日志包括所述客戶端的地理位置、所述客戶端的標(biāo)識和下載成功的灰度文件版本。
進(jìn)一步地,所述灰度發(fā)布配置信息包括:
灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間;或者,
投放對象的地理位置和灰度文件版本。
進(jìn)一步地,還包括:
接收所述服務(wù)器發(fā)送的打開灰度功能入口的指令,進(jìn)行灰度測試,并返回灰度測試數(shù)據(jù)。
進(jìn)一步地,還包括:
接收所述服務(wù)器根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定不滿足預(yù)設(shè)的測試目標(biāo)時發(fā)送的關(guān)閉灰度功能入口的指令。
第三方面,本發(fā)明提供一種服務(wù)器,包括:
接收模塊,用于接收客戶端發(fā)送的灰度文件獲取請求,所述灰度文件獲取請求中攜帶所述客戶端的標(biāo)識和所述客戶端的軟件配置信息,所述灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
發(fā)送模塊,用于根據(jù)所述客戶端的軟件配置信息向所述客戶端發(fā)送灰度文件地址,以使所述客戶端根據(jù)所述灰度文件地址下載所述灰度文件,并在下載成功后返回下載成功日志;
處理模塊,用于根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述客戶端的軟件配置信息包括已安裝應(yīng)用名稱和版本號,所述發(fā)送模塊具體用于:
根據(jù)已安裝應(yīng)用名稱和版本號,確定出存在與已安裝應(yīng)用版本對應(yīng)的所述灰度文件時,向所述客戶端發(fā)送灰度文件地址。
進(jìn)一步地,所述下載成功日志包括所述客戶端的地理位置、所述客戶端的標(biāo)識和下載成功的灰度文件版本。
進(jìn)一步地,所述灰度發(fā)布配置信息包括灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間,N為正整數(shù),所述處理模塊具體用于:
確定接收到所述下載成功日志的時間在所述灰度發(fā)布時間之內(nèi),且所述客戶端的序號小于N,則打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述預(yù)設(shè)的灰度發(fā)布配置信息包括投放對象的地理位置和灰度文件版本,所述處理模塊具體用于:
確定所述下載成功日志中攜帶的所述客戶端的地理位置和下載成功的灰度文件版本滿足所述預(yù)設(shè)的灰度發(fā)布配置信息中的地理位置和灰度文件版本,則打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述接收模塊還用于:
在所述處理模塊打開所述客戶端的灰度功能入口之后,接收所述客戶端發(fā)送的灰度測試數(shù)據(jù);
所述處理模塊還用于:根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定是否滿足預(yù)設(shè)的測試目標(biāo),若滿足,則打開所有已下載成功灰度文件的客戶端的灰度功能入口,若不滿足,則關(guān)閉已打開灰度功能入口的客戶端的灰度功能入口。
第四方面,本發(fā)明提供一種客戶端,包括:
發(fā)送模塊,用于向服務(wù)器發(fā)送灰度文件獲取請求,所述灰度文件獲取請求中攜帶客戶端的標(biāo)識和所述客戶端的軟件配置信息,所述灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
接收模塊,用于接收所述服務(wù)器根據(jù)所述客戶端的軟件配置信息發(fā)送的灰度文件地址;
處理模塊,用于根據(jù)所述灰度文件地址下載所述灰度文件,并在下載成功后向所述服務(wù)器返回下載成功日志,以使所述服務(wù)器根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和所述客戶端的下載成功日志確定是否打開所述客戶端的灰度功能入口。
進(jìn)一步地,所述下載成功日志包括所述客戶端的地理位置、所述客戶端的標(biāo)識和下載成功的灰度文件版本。
進(jìn)一步地,所述灰度發(fā)布配置信息包括:
灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間;或者,
投放對象的地理位置和灰度文件版本。
進(jìn)一步地,所述接收模塊還用于:
接收所述服務(wù)器發(fā)送的打開灰度功能入口的指令;
所述處理模塊還用于進(jìn)行灰度測試;
所述發(fā)送模塊還用于返回灰度測試數(shù)據(jù)。
進(jìn)一步地,所述接收模塊還用于:
接收所述服務(wù)器根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定不滿足預(yù)設(shè)的測試目標(biāo)時發(fā)送的關(guān)閉灰度功能入口的指令。
本發(fā)明提供的灰度發(fā)布方法及裝置,通過服務(wù)器控制可以渲染出灰度功能界面的灰度文件,所有的客戶端都可以下載灰度文件,通過預(yù)設(shè)的灰度發(fā)布配置信息控制目標(biāo)測試用戶的灰度功能打開,不需要用戶更新APP的整個安裝包,從而達(dá)到不需要發(fā)版也可以進(jìn)行灰度測試的效果,減少測試周期,可以靈活控制灰度發(fā)布目標(biāo)用戶。
附圖說明
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明灰度發(fā)布方法實(shí)施例一的流程圖;
圖2為本發(fā)明灰度發(fā)布方法實(shí)施例二的流程圖;
圖3為本發(fā)明服務(wù)器實(shí)施例一的結(jié)構(gòu)示意圖;
圖4為本發(fā)明客戶端實(shí)施例一的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實(shí)施例應(yīng)用的系統(tǒng)架構(gòu)可以包括終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器,用戶可以使用終端設(shè)備通過網(wǎng)絡(luò)與服務(wù)器交互,以訪問各種服務(wù),如瀏覽網(wǎng)頁、下載移動應(yīng)用等,終端設(shè)備上可以安裝有各種客戶端應(yīng)用,例如應(yīng)用商店、社交應(yīng)用、各種游戲等。終端設(shè)備可以是各種電子設(shè)備。服務(wù)器可以是提供各種服務(wù)的服務(wù)器,本申請下述實(shí)施例中涉及的服務(wù)器可以包括但不限于應(yīng)用商店服務(wù)器。本申請下述實(shí)施例的灰度發(fā)布方法基于應(yīng)用程序(APP)的升級流程完成。
圖1為本發(fā)明灰度發(fā)布方法實(shí)施例一的流程圖,如圖1所示,本實(shí)施例以服務(wù)器與客戶端的交互為例進(jìn)行說明,本實(shí)施例的方法可以包括:
S101、客戶端向服務(wù)器發(fā)送灰度文件獲取請求,灰度文件獲取請求中攜帶客戶端的標(biāo)識和客戶端的軟件配置信息,灰度文件是APP安裝包中的灰度測試文件。
其中,客戶端是終端設(shè)備上安裝的各種客戶端APP,服務(wù)器是灰度發(fā)布的服務(wù)器處理后臺,在服務(wù)器處理后臺下載的文件是一些可以在終端設(shè)備構(gòu)建出APP功能界面的文件,比如基于Html5界面的JavaScript/CSS文件;基于React Native的JSBundle文件;基于lua的lua腳本等等。這些文件下載到APP端以后,可以通過Native寫好的載體頁代碼構(gòu)建APP功能界面,運(yùn)行在APP端??蛻舳送ㄟ^服務(wù)器提供的應(yīng)用程序編程接口(ApplicationProgrammingInterface,簡稱:API)向客戶端發(fā)送灰度文件獲取請求,可以是在APP啟動時從后臺切換到前臺時發(fā)送。
灰度文件獲取請求中攜帶客戶端的標(biāo)識和客戶端的軟件配置信息,客戶端的軟件配置信息包括已安裝應(yīng)用名稱和版本號,灰度文件是APP安裝包中的灰度測試文件,即就是APP版本更新的功能對應(yīng)的文件。
S102、服務(wù)器接收客戶端發(fā)送的灰度文件獲取請求,根據(jù)客戶端的軟件配置信息向客戶端發(fā)送灰度文件地址。
具體地,服務(wù)器根據(jù)已安裝應(yīng)用名稱和版本號,確定出存在與已安裝應(yīng)用版本對應(yīng)的灰度文件時,向客戶端發(fā)送灰度文件地址。即根據(jù)服務(wù)器后臺配置,發(fā)送給客戶端灰度文件url。
S103、客戶端根據(jù)灰度文件地址下載灰度文件,并在下載成功后向服務(wù)器返回下載成功日志。
具體地,客戶端根據(jù)灰度文件url將灰度文件下載到APP存儲目錄中。下載成功后,向服務(wù)器返回下載成功日志。下載成功日志包括客戶端的地理位置、客戶端的標(biāo)識和下載成功的灰度文件版本。
S104、服務(wù)器根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和客戶端的下載成功日志確定是否打開客戶端的灰度功能入口。
服務(wù)器接收到客戶端的下載成功日志后,可以獲知客戶端的地理位置、標(biāo)識和下載成功的灰度文件版本,根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和這些信息確定是否打開客戶端的灰度功能入口。其中灰度功能是目標(biāo)測試功能,也是通過下載灰度文件在本地渲染出的功能。
可選的,預(yù)設(shè)的灰度發(fā)布配置信息包括灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間,N為正整數(shù),則服務(wù)器確定接收到下載成功日志的時間在灰度發(fā)布時間之內(nèi),且客戶端的序號小于N時,則打開客戶端的灰度功能入口。例如預(yù)先設(shè)置在灰度發(fā)布時間為兩周內(nèi)前1000個下載灰度文件成功的客戶端為目標(biāo)測試用戶的客戶端,為滿足這兩個條件的客戶端打開灰度功能入口。
可選的,預(yù)設(shè)的灰度發(fā)布配置信息包括投放對象的地理位置和灰度文件版本,則服務(wù)器確定下載成功日志中攜帶的客戶端的地理位置和下載成功的灰度文件版本滿足預(yù)設(shè)的灰度發(fā)布配置信息中的地理位置和灰度文件版本,則打開客戶端的灰度功能入口。如只有灰度文件在最新版本并且處于一線城市才可以打開灰度功能入口,即就是才可以成為目標(biāo)測試用戶。預(yù)設(shè)的灰度發(fā)布配置信息還可以是其它限制條件,可以靈活設(shè)置灰度功能入口打開條件,本發(fā)明對此不做限制。
對于客戶端而言,在APP的某一個功能界面上,通過點(diǎn)擊某個按鈕去訪問某灰度功能入口,點(diǎn)擊此按鈕的跳轉(zhuǎn)數(shù)據(jù)從服務(wù)器獲取,這樣服務(wù)器可以控制灰度功能入口是否打開。若服務(wù)器確定滿足灰度功能入口開放條件,則向客戶端發(fā)送打開灰度功能入口的指令,客戶端進(jìn)入對應(yīng)的灰度功能界面,進(jìn)行灰度測試,并返回灰度測試數(shù)據(jù)。如果不滿足灰度功能入口開放條件,則客戶端進(jìn)入更新前的功能界面。更新前的功能是一個備份的功能,與灰度功能相對應(yīng)的功能。
進(jìn)一步地,在打開客戶端的灰度功能入口之后,還包括:
接收客戶端發(fā)送的灰度測試數(shù)據(jù),根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定是否滿足預(yù)設(shè)的測試目標(biāo),若滿足,則打開所有已下載成功灰度文件的客戶端的灰度功能入口,若不滿足,則關(guān)閉已打開灰度功能入口的客戶端的灰度功能入口。
例如,當(dāng)灰度期間產(chǎn)生的問題數(shù)過多,比如崩潰率過高就必須快速關(guān)閉灰度功能入口,避免給用戶帶來更大影響;當(dāng)灰度期間的一些關(guān)鍵數(shù)據(jù),比如產(chǎn)生的業(yè)績收入沒有達(dá)到預(yù)定目標(biāo),也會關(guān)閉灰度入口,結(jié)束此項(xiàng)灰度功能嘗試;當(dāng)灰度期間產(chǎn)生的數(shù)據(jù)良好,滿足預(yù)期目標(biāo),就給所有已經(jīng)成功下載好灰度文件的APP打開灰度功能入口,讓產(chǎn)品功能全面上線。
本實(shí)施例提供的上述灰度發(fā)布方法適用于可以根據(jù)灰度文件加載出整個APP安裝包文件的框架,如基于Html5的Hybrid框架,基于React Native的技術(shù)框架,基于lua的技術(shù)框架。
本實(shí)施例提供的灰度發(fā)布方法,通過服務(wù)器控制可以渲染出灰度功能界面的灰度文件,所有的客戶端都可以下載灰度文件,通過預(yù)設(shè)的灰度發(fā)布配置信息控制目標(biāo)測試用戶的灰度功能打開,不需要用戶更新APP的整個安裝包,從而達(dá)到不需要發(fā)版也可以進(jìn)行灰度測試的效果,減少測試周期,可以靈活控制灰度發(fā)布目標(biāo)用戶。
進(jìn)一步地,通過客戶端返回的灰度測試數(shù)據(jù)還可靈活控制灰度功能打開和關(guān)閉,能有效地控制灰度功能運(yùn)行期間的風(fēng)險。
下面采用一個具體的實(shí)施例,對圖1所示方法實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)說明。
圖2為本發(fā)明灰度發(fā)布方法實(shí)施例二的流程圖,如圖2所示,本實(shí)施例的方法可以包括:
S201、客戶端向服務(wù)器發(fā)送灰度文件獲取請求,灰度文件獲取請求中攜帶客戶端的標(biāo)識和客戶端的軟件配置信息,灰度文件是APP安裝包中的灰度測試文件。
S202、服務(wù)器接收客戶端發(fā)送的灰度文件獲取請求,根據(jù)客戶端的軟件配置信息向客戶端發(fā)送灰度文件地址。
S203、客戶端根據(jù)灰度文件地址下載灰度文件,并在下載成功后向服務(wù)器返回下載成功日志。
S204、服務(wù)器確定是否滿足打開灰度功能入口條件。
具體包括:一、服務(wù)器根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和客戶端的下載成功日志確定是否打開客戶端的灰度功能入口。
二、接收客戶端發(fā)送的灰度測試數(shù)據(jù),根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定是否滿足預(yù)設(shè)的測試目標(biāo),若滿足,則打開所有已下載成功灰度文件的客戶端的灰度功能入口,若不滿足,則關(guān)閉已打開灰度功能入口的客戶端的灰度功能入口。
S205、客戶端進(jìn)入灰度功能界面。
S206、客戶端進(jìn)入更新前的功能界面。
S207、客戶端向服務(wù)器發(fā)送灰度測試數(shù)據(jù)。
圖3為本發(fā)明服務(wù)器實(shí)施例一的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例的裝置可以包括:接收模塊11、發(fā)送模塊12和處理模塊13,其中,
接收模塊11用于接收客戶端發(fā)送的灰度文件獲取請求,灰度文件獲取請求中攜帶客戶端的標(biāo)識和客戶端的軟件配置信息,灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
發(fā)送模塊12用于根據(jù)客戶端的軟件配置信息向客戶端發(fā)送灰度文件地址,以使客戶端根據(jù)灰度文件地址下載灰度文件,并在下載成功后返回下載成功日志;
處理模塊13用于根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和客戶端的下載成功日志確定是否打開客戶端的灰度功能入口。
可選的,客戶端的軟件配置信息包括已安裝應(yīng)用名稱和版本號,發(fā)送模塊12具體用于:根據(jù)已安裝應(yīng)用名稱和版本號,確定出存在與已安裝應(yīng)用版本對應(yīng)的灰度文件時,向客戶端發(fā)送灰度文件地址。
可選的,下載成功日志包括客戶端的地理位置、客戶端的標(biāo)識和下載成功的灰度文件版本。
可選的,灰度發(fā)布配置信息包括灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間,N為正整數(shù),處理模塊13具體用于:確定接收到下載成功日志的時間在灰度發(fā)布時間之內(nèi),且客戶端的序號小于N,則打開客戶端的灰度功能入口。
可選的,預(yù)設(shè)的灰度發(fā)布配置信息包括投放對象的地理位置和灰度文件版本,處理模塊13具體用于:確定下載成功日志中攜帶的客戶端的地理位置和下載成功的灰度文件版本滿足預(yù)設(shè)的灰度發(fā)布配置信息中的地理位置和灰度文件版本,則打開客戶端的灰度功能入口。
可選的,接收模塊11還用于:在處理模塊13打開客戶端的灰度功能入口之后,接收客戶端發(fā)送的灰度測試數(shù)據(jù)。處理模塊13還用于:根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定是否滿足預(yù)設(shè)的測試目標(biāo),若滿足,則打開所有已下載成功灰度文件的客戶端的灰度功能入口,若不滿足,則關(guān)閉已打開灰度功能入口的客戶端的灰度功能入口。
本實(shí)施例的裝置,可以用于執(zhí)行圖1或圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理類似,此處不再贅述。
本實(shí)施例提供的灰度發(fā)布方法,通過服務(wù)器控制可以渲染出灰度功能界面的灰度文件,所有的客戶端都可以下載灰度文件,通過預(yù)設(shè)的灰度發(fā)布配置信息控制目標(biāo)測試用戶的灰度功能打開,不需要用戶更新APP的整個安裝包,從而達(dá)到不需要發(fā)版也可以進(jìn)行灰度測試的效果,減少測試周期,可以靈活控制灰度發(fā)布目標(biāo)用戶。
進(jìn)一步地,通過客戶端返回的灰度測試數(shù)據(jù)還可靈活控制灰度功能打開和關(guān)閉,能有效地控制灰度功能運(yùn)行期間的風(fēng)險。
圖4為本發(fā)明客戶端實(shí)施例一的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例的裝置可以包括:接收模塊21、發(fā)送模塊22和處理模塊23,其中,
發(fā)送模塊21用于向服務(wù)器發(fā)送灰度文件獲取請求,灰度文件獲取請求中攜帶客戶端的標(biāo)識和客戶端的軟件配置信息,灰度文件是應(yīng)用程序APP安裝包中的灰度測試文件;
接收模塊22用于接收服務(wù)器根據(jù)客戶端的軟件配置信息發(fā)送的灰度文件地址;
處理模塊23用于根據(jù)灰度文件地址下載灰度文件,并在下載成功后向服務(wù)器返回下載成功日志,以使服務(wù)器根據(jù)預(yù)設(shè)的灰度發(fā)布配置信息和客戶端的下載成功日志確定是否打開客戶端的灰度功能入口。
可選的,下載成功日志包括客戶端的地理位置、客戶端的標(biāo)識和下載成功的灰度文件版本。
可選的,灰度發(fā)布配置信息包括:灰度發(fā)布的數(shù)量N和灰度發(fā)布的時間;或者,投放對象的地理位置和灰度文件版本。
可選的,接收模塊21還用于:接收服務(wù)器發(fā)送的打開灰度功能入口的指令,處理模塊23還用于進(jìn)行灰度測試,發(fā)送模塊23還用于返回灰度測試數(shù)據(jù)。
可選的,接收模塊21還用于:接收服務(wù)器根據(jù)灰度測試期間接收到的所有的灰度測試數(shù)據(jù)確定不滿足預(yù)設(shè)的測試目標(biāo)時發(fā)送的關(guān)閉灰度功能入口的指令。
本實(shí)施例的裝置,可以用于執(zhí)行圖1或圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理類似,此處不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。