亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種模擬用戶操作的方法和裝置的制造方法

文檔序號(hào):9375341閱讀:247來源:國知局
一種模擬用戶操作的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種模擬用戶操作的方法和裝置。
【背景技術(shù)】
[0002] 在手機(jī)應(yīng)用軟件或游戲的測試過程中,經(jīng)常需要模擬用戶的操作事件,以驗(yàn)證用 戶操作過程中應(yīng)用軟件是否正常運(yùn)行,例如對手機(jī)按鍵的按鍵事件和對手機(jī)屏幕的觸摸事 件?,F(xiàn)有的實(shí)現(xiàn)方法主要如下:
[0003] 方法一、通過ADB、MonkeyRunner等測試工具發(fā)送事件命令進(jìn)行用戶操作事件的 模擬。手機(jī)打開調(diào)試模式并通過數(shù)據(jù)線連接電腦,電腦端通過ADB、MonkeyRunner等測試工 具向手機(jī)發(fā)送ADB命令或者其他事件命令。然而由于電腦和手機(jī)通過數(shù)據(jù)線進(jìn)行通信,再 加上ADB、MonkeyRunner啟動(dòng)運(yùn)行需要的時(shí)間,無法做到發(fā)送命令給手機(jī),手機(jī)立刻執(zhí)行, 其間存在較長的時(shí)間延遲,大約為幾百毫秒,無法滿足對時(shí)間精度要求較高的測試需要。
[0004] 方法二、通過 Robotium、Activity Instrumentation、Robolectric 等測試框架對 測試程序進(jìn)行操作模擬。然而上述測試框架依賴程序的源代碼且只能實(shí)現(xiàn)應(yīng)用程序內(nèi)部的 事件模擬,無法實(shí)現(xiàn)跨進(jìn)程的事件注入,需要針對不同測試程序編寫不同的測試腳本,通用 性較差。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明實(shí)施例的目的在于提供了一種模擬用戶操作的方法和裝置,實(shí)現(xiàn)跨進(jìn)程的 事件注入,降低模擬用戶操作的時(shí)間延遲。
[0006] 為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種模擬用戶操作的方法,包括:
[0007] 根據(jù)系統(tǒng)的底層事件協(xié)議,將待模擬的用戶操作事件轉(zhuǎn)換成所述系統(tǒng)可識(shí)別的事 件數(shù)據(jù)流;
[0008] 將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。
[0009] 優(yōu)選地,所述將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中,具體為:
[0010] 通過Java本地接口將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。
[0011] 優(yōu)選地,所述通過Java本地接口將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中,包括:
[0012] 通過所述Java本地接口調(diào)用注入線程;
[0013] 利用所述注入線程按照預(yù)設(shè)的時(shí)間間隔將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。
[0014] 優(yōu)選地,所述根據(jù)系統(tǒng)的底層事件協(xié)議,將待模擬的用戶操作事件轉(zhuǎn)換成所述系 統(tǒng)可識(shí)別的事件數(shù)據(jù)流,具體為:
[0015] 根據(jù)系統(tǒng)的底層事件協(xié)議,將所述待模擬的用戶操作事件轉(zhuǎn)換成相應(yīng)的事件類 型、鍵碼類別和操作數(shù)值,生成所述系統(tǒng)可識(shí)別的事件數(shù)據(jù)流。
[0016] 優(yōu)選地,所述用戶操作事件為用戶屏幕操作事件。
[0017] 優(yōu)選地,所述用戶屏幕操作事件包括屏幕點(diǎn)擊和屏幕滑動(dòng)中的一種或兩種組合。
[0018] 優(yōu)選地,所述系統(tǒng)為安卓系統(tǒng)。
[0019] 本發(fā)明實(shí)施例還提供了一種模擬用戶操作的裝置,包括:
[0020] 轉(zhuǎn)換模塊,根據(jù)系統(tǒng)的底層事件協(xié)議,將待模擬的用戶操作事件轉(zhuǎn)換成所述系統(tǒng) 可識(shí)別的事件數(shù)據(jù)流。
[0021] 注入模塊,將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。
[0022] 優(yōu)選地,所述注入模塊包括:
[0023] 數(shù)據(jù)流注入子模塊,用于通過Java本地接口將所述事件數(shù)據(jù)流注入到所述系統(tǒng) 中。
[0024] 優(yōu)選地,所述數(shù)據(jù)流注入子模塊包括:
[0025] JNI調(diào)用單元,通過所述Java本地接口調(diào)用注入線程;
[0026] 注入控制單元,利用所述注入線程按照預(yù)設(shè)的時(shí)間間隔將所述事件數(shù)據(jù)流注入到 所述系統(tǒng)中。
[0027] 優(yōu)選地,所述轉(zhuǎn)換模塊包括:
[0028] 數(shù)據(jù)流轉(zhuǎn)換子模塊,用于根據(jù)系統(tǒng)的底層事件協(xié)議,將所述待模擬的用戶操作事 件轉(zhuǎn)換成相應(yīng)的事件類型、鍵碼類別和操作數(shù)值,生成所述系統(tǒng)可識(shí)別的事件數(shù)據(jù)流。
[0029] 優(yōu)選地,所述用戶操作事件為用戶屏幕操作事件。
[0030] 優(yōu)選地,所述用戶屏幕操作事件包括屏幕點(diǎn)擊和屏幕滑動(dòng)中的一種或兩種組合。
[0031] 優(yōu)選地,所述系統(tǒng)為安卓系統(tǒng)。
[0032] 本發(fā)明通過將待模擬的用戶操作事件根據(jù)系統(tǒng)的底層事件協(xié)議轉(zhuǎn)換成所述系統(tǒng) 可識(shí)別的事件數(shù)據(jù)流,并將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中以實(shí)現(xiàn)用戶操作事件的模 擬,可實(shí)現(xiàn)跨進(jìn)程的事件注入,適用于系統(tǒng)中的所用軟件和游戲,可實(shí)現(xiàn)準(zhǔn)確快速的用戶操 作事件模擬,避免了現(xiàn)有技術(shù)中采用adb等工具在發(fā)送事件命令上的延遲,尤其適合在某 些需要精確時(shí)間計(jì)算的測試場景中使用。
[0033] 進(jìn)一步地,本發(fā)明通過JNI接口調(diào)用注入線程,對注入所述事件數(shù)據(jù)流的時(shí)間間 隔進(jìn)行控制,可實(shí)現(xiàn)速度可控的用戶操作事件,如勻速滑動(dòng)事件、變速滑動(dòng)事件以及周期性 的按鍵操作等,滿足不同的測試需求。
【附圖說明】
[0034] 圖1是本發(fā)明提供的模擬用戶操作的方法的一個(gè)實(shí)施例的流程圖;
[0035] 圖2是圖1所示實(shí)施例提供的步驟S02的流程圖;
[0036] 圖3是本發(fā)明提供的模擬用戶操作的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0037] 圖4是圖3所示實(shí)施例提供的數(shù)據(jù)流注入子模塊的結(jié)構(gòu)示意圖;
[0038] 圖5是本發(fā)明提供的模擬用戶操作的方法一個(gè)應(yīng)用示例的流程圖。
【具體實(shí)施方式】
[0039] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040] 參見圖1,是本發(fā)明提供的模擬用戶操作的方法的一個(gè)實(shí)施例的流程圖。
[0041] 所述模擬用戶操作的方法,包括步驟SOl~S02 :
[0042] S01,根據(jù)系統(tǒng)的底層事件協(xié)議,將待模擬的用戶操作事件轉(zhuǎn)換成所述系統(tǒng)可識(shí)別 的事件數(shù)據(jù)流。
[0043] 在具體實(shí)施當(dāng)中,所述步驟SOl具體為:
[0044] 根據(jù)系統(tǒng)的底層事件協(xié)議,將所述待模擬的用戶操作事件轉(zhuǎn)換成相應(yīng)的事件類型 (Type)、鍵碼類別(Code)和操作數(shù)值(Value),生成所述系統(tǒng)可識(shí)別的事件數(shù)據(jù)流。
[0045] 所述系統(tǒng)優(yōu)選為安卓系統(tǒng),安卓系統(tǒng)基于Iinux內(nèi)核,Iinux內(nèi)核的輸入(input) 子系統(tǒng)將設(shè)備抽象成了文件,屏幕設(shè)備和按鍵設(shè)備均對應(yīng)著系統(tǒng)上的一個(gè)事件文件,所述 事件文件用于記錄用戶操作事件對應(yīng)的事件數(shù)據(jù)流,所述事件數(shù)據(jù)流包含事件協(xié)議數(shù)據(jù)和 用戶的操作數(shù)據(jù),一個(gè)觸摸事件的事件數(shù)據(jù)流示例如下:
[0046] 0003 0039 0000d276 (用于區(qū)分本次觸摸事件的一個(gè)ID)
[0047] 0003 0035 OOOOOlba (當(dāng)前觸摸點(diǎn)的 X 坐標(biāo))
[0048] 0003 0036 00000234 (當(dāng)前觸摸點(diǎn)的 Y 坐標(biāo))
[0049] 0003 003a 00000047 (當(dāng)前觸摸點(diǎn)的壓力值)
[0050] 0000 0000 00000000 (結(jié)束本次觸摸事件)
[0051] 上述事件數(shù)據(jù)流的第一列數(shù)據(jù)代表事件類型,第二列數(shù)據(jù)代表鍵碼類別,第三列 數(shù)據(jù)代表用戶操作的具體數(shù)值,如上述示例第一列數(shù)據(jù)中的0003代表本次事件的事件類 型為觸摸事件,第二列數(shù)據(jù)中的0035為本次觸摸事件觸摸點(diǎn)的X坐標(biāo),0036為本次觸摸事 件的Y坐標(biāo),而第三列數(shù)據(jù)即為本次觸摸事件的具體操作數(shù)值,如示例中的OOOOOlba為當(dāng) 前觸摸點(diǎn)的X坐標(biāo)的具體數(shù)值。由此可見,待模擬的用戶操作事件均可根據(jù)系統(tǒng)的底層事 件協(xié)議轉(zhuǎn)換成所述系統(tǒng)可識(shí)別的事件數(shù)據(jù)流,通過模擬設(shè)備產(chǎn)生的事件數(shù)據(jù)流即可實(shí)現(xiàn)對 用戶操作事件的模擬。
[0052] S02,將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。
[0053] 在具體實(shí)施當(dāng)中,所述步驟S02具體為,通過Java本地接口(JNI,Java Native Interface)將所述事件數(shù)據(jù)流注入到所述系統(tǒng)中。所述用戶操作事件優(yōu)選為
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1