本公開的實施例涉及移動信息處理領域,并且更具體地,涉及一種記錄以及回放用戶操作的方法以及設備。
版權申明
本專利文件披露的內容包含受版權保護的材料。該版權為版權所有人所有。版權所有人不反對任何人復制專利與商標局的官方記錄和檔案中所存在的該專利文件或者該專利披露。
背景技術:
隨著移動互聯網的快速發展,用戶體驗成為移動應用最受用戶關注的方面之一。采集用戶操作加以分析從而幫助提升用戶體驗是一種常規的手段。常規的采集用戶操作的方式通過創建一個工具類,將記錄的相關請求操作封裝,業務方在需要打點的業務界面使用該工具類進行記錄,這樣的方式一般稱為“打點”技術。
“打點”技術例如可以通過在用戶點擊、雙擊或滑動界面時發送一個http請求,然而這樣的方式無法獲知用戶當前操作的內容,并需要專業的人員才能進行解讀。此外,隨著互聯網金融等業務的飛速發展,一些基于移動應用的爭議也常有發生。因而,如何客觀地記錄用戶在移動應用上的操作成為一個關注焦點。
技術實現要素:
本公開的實施例提供一種記錄用戶操作以及回放用戶操作的方案。
根據本公開的第一方面,提出了一種記錄用戶操作的方法。該方法包括:接收針對用戶界面的操作請求,響應于操作請求,獲取操作請求所對應的第一json語句;以及向服務器發送第一消息以指示服務器存儲第一json語句,第一消息包含第一json語句。
根據本公開的第二方面,提出了一種回放用戶操作的方法。該方法包括:獲取第一類型json語句以及第二類型json語句;基于第一類型json語句渲染用戶界面;以及基于第二類型json語句模擬用戶操作。
根據本公開的第三方面,提出了一種記錄用戶操作的設備。該設備包括:處理器;存儲器,耦合至處理器并且存儲有指令,指令在由處理器執行時使處理器執行以下動作:接收針對用戶界面的操作請求,響應于操作請求,獲取操作請求所對應的第一json語句;以及向服務器發送第一消息以指示服務器存儲第一json語句,第一消息包含第一json語句。
根據本公開的第四方面,提出了一種回放用戶操作的設備。該設備包括:處理器;存儲器,耦合至處理器并且存儲有指令,指令在由處理器執行時使處理器執行以下動作:獲取第一類型json語句以及第二類型json語句;基于第一類型json語句渲染用戶界面;以及基于第二類型json語句模擬用戶操作。
在本公開的第五方面,提供了一種計算機可讀存儲介質。該計算機可讀存儲介質具有存儲在其上的計算機可讀程序指令,計算機可讀程序指令在被處理單元執行時使得該處理單元實現根據本公開的第一方面和第二方面所描述的方法的任意步驟。
提供發明內容部分是為了以簡化的形式來介紹對概念的選擇,它們在下文的具體實施方式中將被進一步描述。發明內容部分無意標識本公開的關鍵特征或必要特征,也無意限制本公開的范圍。
附圖說明
通過結合附圖對本公開示例性實施例進行更詳細的描述,本公開的上述以及其它目的、特征和優勢將變得更加明顯,其中,在本公開示例性實施例中,相同的參考標號通常代表相同部件。
圖1示出了記錄和回放用戶操作系統架構的示意圖;
圖2示出了根據本公開實施例的記錄用戶操作的方法的流程圖;
圖3示出了根據本公開實施例的示例用戶界面的示意圖;
圖4示出了根據本公開實施例的更新用戶界面的方法的流程圖;
圖5示出了根據本公開實施例的經更新的示例用戶界面的示意圖;
圖6示出了根據本公開的回放用戶操作的方法的流程圖;以及
圖7示出了可以用來實施本公開內容的實施例的示例設備的示意性框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的優選實施例。雖然附圖中顯示了本公開的優選實施例,然而應該理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整地傳達給本領域的技術人員。
在本文中使用的術語“包括”及其變形表示開放性包括,即“包括但不限于”。除非特別申明,術語“或”表示“和/或”。術語“基于”表示“至少部分地基于”。術語“一個示例實施例”和“一個實施例”表示“至少一個示例實施例”。術語“另一實施例”表示“至少一個另外的實施例”。術語“第一”、“第二”等等可以指代不同的或相同的對象。下文還可能包括其他明確的和隱含的定義。
如上文所描述的,常規的操作記錄技術(諸如“打點”技術)通常在用戶對界面進行操作(諸如,點擊、雙擊、拖拽、滑動等)時發出一個http請求,測試人員通過對接收的多個http請求進行人工分析以了解用戶的多個操作。然而,這樣的技術無法證明用戶當前操作的頁面內容,可能會發生業務方后期更改頁面等情形。諸如,用戶在點擊確認某個協議時,若僅記錄用戶的確認操作,則可能在后續糾紛發生時無法確認用戶當時所確認協議的具體內容。此外,打卡技術也無法提供有效的回放。
為了至少部分地解決上述問題以及其他潛在問題,本公開的實施例提供了一種記錄以及回放用戶操作的方案。在該方案中,通過以json語句描述移動應用的所有界面以及操作的內容,在接收到用戶對用戶界面的操作請求時,可以將操作請求所對應的json語句和/或當前界面所對應的json語句發送至服務器,并進行加密存儲。此外,還可以基于所加密存儲的json語句,重新渲染界面并模擬用戶操作以實現回放用戶操作。其中,json(javascriptobjectnotation,js對象標記)是一種輕量級的數據交換格式。它基于ecmascript(w3c制定的js規范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得json成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
基于這樣的方式,所記錄的內容不再需要專業人員進行解讀,可以直接進行回放,相比打點技術更為簡單直觀;用戶操作的界面也可以被記錄,提供對用戶實時操作內容的證明,而相比屏幕錄像軟件大大減少了存儲的數據量;此外,用戶操作的內容可以被加密存儲在諸如區塊鏈的結構中,保證數據無法被篡改以提供更為可信的操作記錄。
圖1示出了記錄和回放用戶操作的系統架構100的示意圖。應當理解,如圖1所示的系統架構100的結構和功能僅用于示例的目的,而不暗示對于本公開的范圍的任何限制。本公開的實施例可以被體現在不同的結構和/或功能中。
如圖1所示,系統架構100可以包括用戶可操作的客戶端102。在一些實施例中,客戶端102可以包括移動客戶端,例如,電話機、移動電話、尋呼機、手提電腦、掌上電腦、pda(個人數字助理)等。在一些實施例中,客戶端102還可以包括筆記本電腦、臺式計算機、一體機等。客戶端102可以被配置為向用戶提供用戶界面、接收用戶對用戶界面的操作、向服務器通信以發送相應用戶操作請求以及與服務器通信以接收來自服務器的數據等。
系統架構100還可以包括服務器104。服務器104可以被配置為接收來自客戶端的用戶操作請求、響應用戶操作請求向客戶端提供數據以及存儲用戶操作請求等。此外,系統架構100還可以包括存儲設備106。存儲設備106可以被配置為存儲來自客戶端的用戶的操作請求信息。在一些實施例中,存儲設備106可以是布置于服務器本地的存儲設備、遠離服務器布置的遠程存儲設備或分布式存儲等。在一些實施例中,存儲設備106還可以是云存儲或者是區塊鏈存儲。
下面將結合圖2-圖3描述根據本公開的記錄用戶操作的方法。其中,圖2示出了根據本公開實施例的記錄用戶操作的方法200的流程圖,圖3示出了根據本公開實施例的示例用戶界面300的示意圖。
在框202中,客戶端102接收用戶針對用戶界面的操作請求。該操作請求包括但不限于用戶對于用戶界面的點擊、雙擊、拖拽、滑動、觸摸等操作。例如,在圖3所示的用戶界面300中,客戶端可以接收用戶對登錄按鈕302以及注冊按鈕304的點擊操作。
具體地,在一些實施例中,可以使用json語句描述用戶界面以及響應于用戶操作所需要傳輸的數據。其中,界面300的顯示部分(諸如登錄按鈕302以及注冊按鈕304)可以基于json語句所描述,同時,對用戶操作的響應也可以基于json語句所描述。這樣的開發框架為安全有效地記錄及回放用戶操作提供了基礎,這將在下文具體地闡述。為了方便描述,本文將采用用戶點擊登錄按鈕302作為示例。
在框204中,客戶端102獲取用戶操作所對應的第一json語句。具體地,在圖3所示的示例中,基于上文所述的json開發框架,客戶端102可以獲取點擊登錄按鈕302所對應的第一json語句為click:{commands:['present'+path+'login.html']}。
在框206中,客戶端向服務器發送用戶操作所對應的第一消息。具體地,在一些實施例中,客戶端102可以將第一json語句封裝到http消息中以發送到服務器104,服務器104將響應于接收到第一消息以提取第一json語句并將其存儲到存儲設備106中。
在一些實施例中,第一消息還可以包括用戶的標識符信息。在一些實施例中,用戶的標識符信息可以包括客戶端104的物理地址信息(諸如imme號和mac地址等)。具體地,用戶標識符信息可以包括客戶端的瀏覽器信息、操作系統信息、廣告標識符(idfa)以及vendo標識符(idfv)等。在一些實施例中,用戶的標識符信息還可以包括用戶的生物信息,例如,指紋信息、虹膜信息、臉部信息以及聲音信息等。
這些用戶標識符用于唯一地標識用戶設備,并可以被分裝在第一信息中。在一些實施例中,用戶標識符信息可以被封裝在http報文的頭部。用戶標識符信息也將被服務器104提取,并與第一json語句一起被存儲到存儲設備106中。
此外,在一些實施例中,響應于用戶操作請求,客戶端102還可以獲取當前界面所對應的第二json語句并發送到服務器104以進行存儲。具體地,在框208中,客戶端102獲取用戶界面所對應的第二json語句。以圖3所示的用戶界面300為例,用戶可以獲取當前界面所對應的全部json語句(即,第二json語句)。
在框210中,客戶端向服務器發送用戶界面所對應的第二消息。具體地,在一些實施例中,客戶端102可以將第二json語句封裝到http消息中以發送到服務器104,服務器104將響應于接收到第二消息以提取第二json語句并將其存儲到存儲設備106中。
通過將當前界面所對應的json語句也進行保存可以有效地避免無法確認用戶記錄操作所對應的具體頁面。例如,用戶在點擊確定同意業務方所提供的具體協議時,用戶當時往往不會保存該協議的具體內容,而當后續發生糾紛需要確定更該協議內容時,無法保證該協議是否被業務方修改。相反,通過本公開的方法,將用戶操作所對應的界面的json語句也發送到服務器進行加密存儲,可以有效地避免這一問題的產生。
此外,客戶端102從服務器104所接收到的信息也將被保存以作為回放用戶操作的一部分。具體地,圖4示出了根據本公開實施例的更新用戶界面的方法400的流程圖,圖5根據本公開實施例的經更新的示例用戶界面500的示意圖。仍舊以圖3所示的示例為例,在用戶點擊登錄按鈕302時,第一消息和/或第二消息被發送至服務器,服務器基于該消息可以提供登錄界面500。
具體地,在框402,客戶端102從服務器104接收消息(為了方便描述,稱為“第三消息”)以更新用戶界面。具體地,在一些實施例中,服務器104可以通過http消息發送新的用戶界面所對應的json語句(為了方便描述,稱為“第三json語句”)。
在框404,客戶端102獲取第三json語句。具體地,在一些實施例中,客戶端102可以從服務器104發送的http消息中提取第三json語句。在框406,為了保證存儲信息的完整性以實現后續的回放功能,客戶端102還可以向服務器發送第四消息以指示服務器104存儲第三json語句。具體地,在一些實施例中,客戶端102可以將第三json語句封裝到http消息中以發送到服務器104,服務器104將響應于接收到第四消息以提取第四json語句并將其存儲到存儲設備106中。
基于以上方法,反映用戶操作的第一json語句、反映用戶操作所針對的界面的第二json語句以及從服務器所接收經更新的界面所對應的第三json語句都可以在客戶端102處被攔截,并被發送給服務器104以進行加密存儲。具體地,在客戶端102實現攔截的示例代碼如下。
在一些實施例中,第一json語句、用戶標識符、第二json語句和/或第三json語句可以被加密存儲區塊鏈中。區塊鏈是一種分布式存儲結構,其基于塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全以及利用由自動化腳本代碼組成的智能合約來編程和操作數據,因此保證了存儲于其中數據的不可篡改,從而使得所存儲的數據更為可信。具體地,在區塊鏈中可以使用以太網的智能合約存儲客戶端所發送的多條json語句。
基于以上記錄用戶操作的方法,本文還提出了一種回放用戶操作的方法。如圖6所示,圖6示出了根據本公開的回放用戶操作的方法600的流程圖。
在框602,客戶端102可以獲取第一類型json語句以及第二類型json語句,其中第一類型json語句為用戶界面所對應的json語句,具體地,其可以為上文所述的經存儲的第二json語句以及第三json語句。以圖3所示的界面300以及點擊登錄按鈕302為例,客戶端可以接收界面300所對應的第一類型json語句、用戶點擊登錄按鈕302所對應的第二類型json語句以及更新頁面至登錄頁面500的第一類型json語句。
在框604,客戶端102可以基于獲取的第一類型json語句渲染用戶界面。在框606,客戶端102可以基于獲取的第二類型json語句模擬用戶操作。具體地。客戶端102可以根據界面300所對應的第二json語渲染用戶界面300,基于點擊登錄按鈕302所對應的第一json語句對用戶的操作進行模擬,并基于登錄界面500所對應的第三json語句渲染登錄界面500。從而實現對用戶操作的回放,這種方式相比屏幕錄像能夠大大減少存儲量從而提高系統的效率。
圖7示出了可以用來實施本公開內容的實施例的示例設備700的示意性框圖。例如,如圖1所示的客戶端102可以由設備700來實施。如圖所示,設備700包括中央處理單元(cpu)701,其可以根據存儲在只讀存儲器(rom)702中的計算機程序指令或者從存儲單元708加載到隨機訪問存儲器(ram)703中的計算機程序指令,來執行各種適當的動作和處理。在ram703中,還可存儲設備700操作所需的各種程序和數據。cpu701、rom702以及ram703通過總線704彼此相連。輸入/輸出(i/o)接口705也連接至總線704。
設備700中的多個部件連接至i/o接口705,包括:輸入單元706,例如鍵盤、鼠標等;輸出單元707,例如各種類型的顯示器、揚聲器等;存儲單元708,例如磁盤、光盤等;以及通信單元709,例如網卡、調制解調器、無線通信收發機等。通信單元709允許設備700通過諸如因特網的計算機網絡和/或各種電信網絡與其他設備交換信息/數據。
上文所描述的各個過程和處理,例如方法200和/或方法600,可由處理單元701執行。例如,在一些實施例中,方法200和/或方法400可被實現為計算機軟件程序,其被有形地包含于機器可讀介質,例如存儲單元708。在一些實施例中,計算機程序的部分或者全部可以經由rom702和/或通信單元709而被載入和/或安裝到設備700上。當計算機程序被加載到ram703并由cpu701執行時,可以執行上文描述的方法200和/或方法600的一個或多個動作。
本公開可以是方法、裝置、系統和/或計算機程序產品。計算機程序產品可以包括計算機可讀存儲介質,其上載有用于執行本公開的各個方面的計算機可讀程序指令。
計算機可讀存儲介質可以是可以保持和存儲由指令執行設備使用的指令的有形設備。計算機可讀存儲介質例如可以是――但不限于――電存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、靜態隨機存取存儲器(sram)、便攜式壓縮盤只讀存儲器(cd-rom)、數字多功能盤(dvd)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸的電信號。
這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質下載到各個計算/處理設備,或者通過網絡、例如因特網、局域網、廣域網和/或無線網下載到外部計算機或外部存儲設備。網絡可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。每個計算/處理設備中的網絡適配卡或者網絡接口從網絡接收計算機可讀程序指令,并轉發該計算機可讀程序指令,以供存儲在各個計算/處理設備中的計算機可讀存儲介質中。
用于執行本公開操作的計算機程序指令可以是匯編指令、指令集架構(isa)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置數據、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向對象的編程語言—諸如smalltalk、c++等,以及常規的過程式編程語言—諸如“c”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡—包括局域網(lan)或廣域網(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態信息來個性化定制電子電路,例如可編程邏輯電路、現場可編程門陣列(fpga)或可編程邏輯陣列(pla),該電子電路可以執行計算機可讀程序指令,從而實現本公開的各個方面。
這里參照根據本公開實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述了本公開的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現。
這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理單元,從而生產出一種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理單元執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質中,這些指令使得計算機、可編程數據處理裝置和/或其他設備以特定方式工作,從而,存儲有指令的計算機可讀介質則包括一個制造品,其包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的各個方面的指令。
也可以把計算機可讀程序指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機、其它可編程數據處理裝置、或其它設備上執行的指令實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作。
附圖中的流程圖和框圖顯示了根據本公開的多個實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個連續的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
以上已經描述了本公開的各實施方式,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施方式。在不偏離所說明的各實施方式的范圍和精神的情況下,對于本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施方式的原理、實際應用或對市場中的技術的改進,或者使本技術領域的其他普通技術人員能理解本文披露的各實施方式。