一種應用程式兼容性測試方法和裝置與流程
2023-09-18 17:29:55 5

本申請涉及軟體測試技術領域,尤其涉及一種應用程式兼容性測試方法和裝置。
背景技術:
兼容性測試是應用程式(application,app)測試中的重要環節,用於測試app中的同一個功能在不同的終端設備上的執行效果和界面展示效果是否一致。
為了確保app的性能,app需要在多個終端設備上進行相同的兼容性測試。對於一些需要測試人員手動執行的兼容性測試操作,例如,觸屏操作或按鍵操作,當需要測試的終端設備數量較多時,測試人員需要逐個在每一個終端設備上進行操作,導致app兼容性測試的測試效率較低。
如何提高app兼容性測試的測試效率,是本申請所要解決的技術問題。
技術實現要素:
有鑑於此,本申請實施例提供一種應用程式兼容性測試方法和裝置,用以解決現有的應用程式兼容性測試的測試效率較低的問題。
本申請實施例提供一種應用程式兼容性測試方法,包括:
確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,其中,所述第二操作事件用於在所述從屬終端設備中執行與所述第一操作事件相同或相似的兼容性測試操作;
將所述第二操作事件發送到所述從屬終端設備。
可選地,確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取所述主終端設備中對待測試應用程式執行兼容性測試操作的操作點序列;
通過解析所述操作點序列,確定所述操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值以及時間標識;
根據所述操作點序列中的任一操作點的時間標識,確定相鄰操作點之間的時間間隔;
根據所述操作點序列中的任一操作點的第一橫坐標值、第一縱坐標值、壓力值、時間標識以及相鄰操作點之間的時間間隔,確定所述第一操作事件,其中,所述第一操作事件為觸屏操作事件。
可選地,確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,包括:
獲取所述主終端設備和所述從屬終端設備的屏幕解析度信息;
根據所述主終端設備和所述從屬終端設備的屏幕解析度信息,將所述操作點序列中的任一操作點的第一橫坐標值轉換為第二橫坐標值,以及將所述操作點序列中的任一操作點的第一縱坐標值轉換為第二縱坐標值;
根據所述操作點序列中的任一操作點的第二橫坐標值、第二縱坐標值、壓力值以及相鄰操作點之間的時間間隔,確定所述第二操作事件。
可選地,所述第一操作事件包括:長按、拖拽、點擊、雙擊或虛擬按鍵。
可選地,確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取所述主終端設備中對待測試應用程式執行兼容性測試操作的操作點;
通過解析所述操作點,確定所述操作點的操作類型;
根據所述操作點的操作類型,確定所述第一操作事件,其中,所述第一操作事件為按鍵操作事件。
可選地,確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,包括:
確定所述第二操作事件為與所述第一操作事件相同的操作事件。
可選地,所述第一操作事件包括:電源鍵操作、返回鍵操作、菜單鍵操作、主鍵操作、音量上鍵操作或音量下鍵操作。
本申請實施例還提供一種應用程式兼容性測試裝置,包括:確定單元和發送單元,其中:
確定單元,用於確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
所述確定單元,還用於確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,其中,所述第二操作事件用於在所述從屬終端設備中執行與所述第一操作事件相同或相似的兼容性測試操作;
發送單元,用於將所述第二操作事件發送到所述從屬終端設備。
本申請實施例還提供一種應用程式兼容性測試裝置,其特徵在於,包括:存儲器和處理器,其中:
存儲器,用於存放程序;
處理器,用於執行所述存儲器存放的程序,並具體執行:
確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,其中,所述第二操作事件用於在所述從屬終端設備中執行與所述第一操作事件相同或相似的兼容性測試操作;
將所述第二操作事件發送到所述從屬終端設備。
本申請實施例還提供一種計算機可讀存儲介質,其特徵在於,所述計算機可讀存儲介質存儲一個或多個程序,所述一個或多個程序當被包括多個應用程式的電子設備執行時,使得所述電子設備執行以下方法:
確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
確定所述第一操作事件在從屬終端設備中相對應的第二操作事件,其中,所述第二操作事件用於在所述從屬終端設備中執行與所述第一操作事件相同或相似的兼容性測試操作;
將所述第二操作事件發送到所述從屬終端設備。
本申請實施例採用的上述至少一個技術方案能夠達到以下有益效果:
通過確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,進而確定第一操作事件在從屬終端設備中相對應的第二操作事件,並將第二操作事件發送到該從屬終端設備,使得該從屬終端設備根據第二操作事件,對自身設備中的待測試應用程式執行與第一操作事件相同或相似的兼容性測試操作,從而能夠有效提高應用程式兼容性測試的測試效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的一種應用程式兼容性測試方法的流程示意圖;
圖2為本申請實施例提供的操作點序列的示意圖;
圖3為本申請實施例提供的第一操作事件識別的示意圖;
圖4為本申請實施例提供的一種應用程式兼容性測試方法的示意圖;
圖5為本申請實施例提供的一種電子設備的示意結構圖;
圖6為本申請實施例提供的一種應用程式兼容性測試裝置的結構示意圖;
圖7為本申請實施例提供的一種應用程式兼容性測試裝置的結構示意圖。
具體實施方式
為了實現本申請的目的,本申請實施例提供了一種應用程式兼容性測試方法和裝置,該方法包括:通過確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,進而確定第一操作事件在從屬終端設備中相對應的第二操作事件,並將第二操作事件發送到該從屬終端設備,使得該從屬終端設備根據第二操作事件,對自身設備中的待測試應用程式執行與第一操作事件相同或相似的兼容性測試操作,從而能夠有效提高應用程式兼容性測試的測試效率。
下面結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
以下結合附圖,詳細說明本申請各實施例提供的技術方案。
實施例1
為了解決現有技術中應用程式兼容性測試的測試效率較低的問題,本申請實施例1提供一種應用程式兼容性測試方法。本申請實施例中的待測試應用程式安裝在需要進行測試的終端設備(以下簡稱:待測試終端設備,即下文描述中的主終端設備和從屬終端設備)中,該終端設備是具有觸控螢幕幕的終端設備,例如:手機、平板電腦,等等。
圖1為本申請實施例提供的一種應用程式兼容性測試方法的流程示意圖。該方法可以如下所示。
步驟101:確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件。
在對應用程式進行兼容性測試之前,將所有的待測試終端設備連接到一臺個人電腦(pc)上,pc中的設備管理器負責管理該pc所連接的所有待測試終端設備,使得該pc能夠通過adb調試工具,獲取任一待測試終端設備的信息,或者向任一待測試終端設備發送指令。
需要說明的是,待測試終端設備可以通過usb方式連接到pc上,也可以通過無線連接方式連接到pc上,這裡不做具體限定。
設備管理器確定待測試終端設備中的主終端設備,主終端設備以外的其他待測試終端設備為從屬終端設備,主終端設備表示測試人員手動執行兼容性測試操作的待測試終端設備。
需要說明的是,主終端設備可以是預先設定的,也可以是隨機選取的,這裡不做具體限定。
設備管理器通過adb調試工具向主終端設備發送getevent命令,使得主終端設備執行該getevent命令。
測試人員對主終端設備中的待測試應用程式執行的兼容性測試操作體現在getevent輸出的操作點中,通過解析getevent輸出的操作點,能夠確定測試人員在主終端設備中執行的第一操作事件,其中,getevent輸出為十六進位輸出。
本申請實施例中,第一操作事件是觸屏操作事件或按鍵操作事件。
當第一操作事件是觸屏操作事件時,確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取主終端設備中對待測試應用程式執行兼容性測試操作的操作點序列;
通過解析操作點序列,確定操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值以及時間標識;
根據操作點序列中任一操作點的時間標識,確定相鄰操作點之間的時間間隔;
根據操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值、時間標識以及相鄰操作點之間的時間間隔,確定第一操作事件,其中,該第一操作事件為觸屏事件。
pc中的操作監聽器實時獲取主終端設備中的getevent輸出,當測試人員對主終端設備中的待測試應用程式執行觸屏操作事件時,getevent輸出的是操作點序列。圖2為本申請實施例提供的操作點序列的示意圖。
操作監聽器通過解析操作點序列,確定操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值以及時間標識。
對於安卓作業系統,getevent的用法如下:
usage:getevent[-t][-n][-sswitchmask][-s][-v[mask]][-d][-p][-i][-l][-q][-ccount][-r][device]
-t:showtimestamps
-n:don'tprintnewlines
-s:printswitchstatesforgivenbits
-s:printallswitchstates
-v:verbositymask(errs=1,dev=2,name=4,info=8,vers=16,pos.events=32,props=64)
-d:showhiddescriptor,ifavailable
-p:showpossibleevents(errs,dev,name,pos.events)
-i:showalldeviceinfoandpossibleevents
-l:labeleventtypesandnamesinplaintext
-q:quiet(clearverbositymask)
-c:printgivennumberofeventsthenexit
-r:printrateeventsarereceived
在安卓作業系統的主終端設備中執行getevent命令之後,獲取得到的getevent輸出片段如下:
其中,ev_keybtn_touchdown表示手指按下屏幕;
ev_keybtn_touchup表示手指離開屏幕。
對於/dev/input/event4:ev_absabs_mt_position_x00000182
/dev/input/event4:ev_absabs_mt_position_y000002a6
/dev/input/event4:ev_absabs_mt_pressure0000003f,
abs_mt_position_x,abs_mt_position_y,分別表示一次觸屏操作中一個觸摸操作點的橫坐標x以及縱坐標y的標識,00000182和000002a6是16進位的數值,解析成10進位分別為:386,678,即該操作點的坐標值為(386,678);
abs_mt_pressure表示在該操作點上的壓力標識,後面的0000003f是16進位的數值,解析成10進位為63,也就表示在操作點(386,678)上的壓力值為63。
確定操作點的壓力值,是為了記錄測試人員執行觸屏操作時手指移動的壓力。
操作監聽器將解析得到的操作點序列發送給事件分析器進行操作事件分析。
對於觸屏操作事件,事件分析器根據操作點序列中的最後一個操作點的事件標識,來界定一個完整的操作事件(即測試人員執行的一次自然操作),例如,當解析得到的操作點序列中最後一個操作點的時間與當前時間的時間間隔大於600ms時,則確定之前解析得到的操作點序列是一個完整的操作事件。
對於一個完整的操作事件對應的操作點序列,根據操作點序列中任一操作點的時間標識,確定相鄰操作點之間的時間間隔。
根據一個完整的操作事件對應的操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值、時間標識以及相鄰操作點之間的時間間隔,確定第一操作事件。
事件分析器識別第一操作事件,其中,第一操作事件包括:長按、拖拽、點擊、雙擊或虛擬按鍵。
圖3為本申請實施例提供的第一操作事件識別的示意圖。
如圖3所示,第一操作事件對應的操作點序列構成曲線軌跡,通過遍歷操作點序列中的各個操作點,確定該操作點序列所覆蓋區域的左上角的操作點a和右下角的操作點b;
計算操作點a和操作點b之間的距離len,通過len來表示第一操作事件對應的操作點序列所覆蓋的範圍的大小;
根據操作點a和操作點b的坐標值,計算操作點a和操作點b的中心點c的坐標值,通過中心點c的坐標值,確定第一操作事件是否作用於虛擬按鍵;
根據第一操作事件對應的操作點序列中的第一個操作點的時間標識以及最後一個操作點的時間標識,計算操作點序列中的第一個操作點和最後一個操作點的時間差,該時間差表示第一操作事件的耗時(timeconsumed)。
當len小於等於100像素,並且timeconsumed大於600ms時,表示第一操作事件的移動範圍較小,但是操作時間較長,因此,確定第一操作事件為長按操作;
當len大於100像素,表示第一操作事件的移動範圍較大,因此,不管timeconsumed的取值是多少,都確定第一操作事件為拖拽操作;另外,當len大於20像素並且timeconsumed大於200ms,或者,當len大於30像素並且timeconsumed大於50ms時,確定第一操作事件為拖拽操作;
當len小於等於20像素,或者,當len小於等於30像素並且timeconsumed大於200ms時,確定第一操作事件為點擊操作;
當第一操作事件中包含兩個時間間隔小於600ms的點擊操作時,確定第一操作事件為雙擊操作;
在待測試終端設備中存在一個文件/sys/board_properties/virtualkeys,用於定義屏幕上的虛擬按鍵區域的坐標值。通過這個文件,以及上述計算得到的中心點c的坐標值,確定第一操作事件是否作用於虛擬按鍵。
當第一操作事件是觸屏操作事件時,確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取主終端設備中對待測試應用程式執行兼容性測試操作的操作點;
通過解析操作點,確定操作點的操作類型標識;
根據操作點的操作類型標識,確定第一操作事件,其中,該第一操作事件為按鍵操作事件。
pc中的操作監聽器實時獲取主終端設備中的getevent輸出,當測試人員對主終端設備中的待測試應用程式執行的按鍵操作事件時,getevent輸出的操作點序列中的操作點包含操作類型標識。
操作監聽器將解析得到的操作點序列發送給事件分析器進行操作事件分析。事件分析器根據操作點序列中操作點的操作類型標識,確定第一操作事件,其中,第一操作事件包括:電源鍵操作、返回鍵操作、菜單鍵操作、主鍵操作、音量上鍵操作或音量下鍵操作。
針對電源鍵操作,操作點的操作類型標識為0074,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001007400000001,確定第一操作事件為電源鍵操作。
針對返回鍵操作,操作點的操作類型標識為009e,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001009e00000001,確定第一操作事件為返回鍵操作。
針對菜單鍵操作,操作點的操作類型標識為008b,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001008b00000001,確定第一操作事件為菜單鍵操作。
針對主鍵操作,操作點的操作類型標識為0066,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001006600000001,確定第一操作事件為主鍵操作。
針對音量上鍵操作,操作點的操作類型標識為0073,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001007300000001,確定第一操作事件為音量上鍵操作。
針對菜單鍵操作,操作點的操作類型標識為0072,對應的getevent輸出樣例如下(00000001是按下標識,00000000是鬆開標識):
根據/dev/input/event2:0001007200000001,確定第一操作事件為音量下鍵操作。
事件分析器確定第一操作事件之後,將第一操作事件發送到事件分發器。
事件分發器將第一操作事件發送到與至少一個從屬終端設備相對應的事件消費器。
步驟102:確定第一操作事件在從屬終端設備中相對應的第二操作事件。
其中,第二操作事件用於在從屬終端設備中執行與第一操作事件相同或相似的兼容性測試操作。
本申請實施例中,當第一操作事件為按鍵操作事件時,事件消費器確定第二操作事件為與第一操作事件相同的操作事件。
本申請實施例中,當第一操作事件為觸屏操作事件時,事件消費器對第一操作事件中的操作點序列中的任一操作點進行坐標轉換,確定第二操作事件,具體地:
獲取主終端設備和從屬終端設備的屏幕解析度信息;
根據主終端設備和從屬終端設備的屏幕解析度信息,將操作點序列中的任一操作點的第一橫坐標值轉換為第二橫坐標值,以及將操作點序列中的任一操作點的第一縱坐標值轉換為第二縱坐標值;
根據操作點序列中的任一操作點的第二橫坐標值、第二縱坐標值、壓力值以及相鄰操作點之間的時間間隔,確定第二操作事件。
在實際測試中,各個從屬終端設備的屏幕解析度信息和主終端設備有可能不相同,為了能夠保證將主終端設備中的兼容性測試操作高保真地同步到各個從屬終端設備中,需要對第一操作事件對應的操作點序列中的任一操作點的進行坐標轉換。
同時,為了能夠保證將主終端設備中的兼容性測試操作高保真地同步到各個從屬終端設備中,需要保留第一操作事件對應的操作點序列中的任一操作點的壓力值以及相鄰操作點之間的時間間隔,即保留測試人員在主終端設備中執行第一操作事件時手指移動的快慢和壓力。
步驟103:將第二操作事件發送到從屬終端設備。
事件消費器生成第二操作事件對應的monkey腳本,並通過adb.push命令發送到對應的從屬終端設備中,使得從屬終端設備通過運行該monkey腳本,對自身設備中的待測試應用程式執行與第一操作事件相同或相似的兼容性測試操作。
monkey腳本的用法如下:
dispatchpress(stringkey_name):實現按鍵操作
@key_name鍵值名
userwait(longsleeptime):相鄰操作點之間的時間間隔
@sleeptime等待時間,單位毫秒
dispatchpointer(downtime,eventtime,action,x,y,pressure,size,metastate,xprecision,yprecision,device,edgeflags)
@paramlongdowntime//主終端設備中操作事件開始的時間標識,一般為固定值
@paramlongeventtime//從屬終端設備中操作事件開始的時間標識,一般為固定值
@paramintaction//(action_down=0,action_move=2,action_up=1,action_cancel=3)
@paramfloatx//x坐標值
@paramfloaty//y坐標值
@paramfloatpressure//當前事件的壓力,範圍0-1
@paramfloatsize//觸摸的近似值,範圍0-1
@paramintmetastate//當前按下的meta鍵的標識
@paramfloatxprecision//x坐標值精度
@paramfloatyprecision//y坐標值精度
@paramintdevice//事件來源,範圍0-x,0表示不來自物理設備
@paramintsedgeflags//
一個點擊操作事件的monkey腳本示例如下:
#startofscript
type=user
count=6
speed=1.0
startdata>>
dispatchpointer(10,10,0,346,771,0.20784314,0.06666667,0,0.0,0.0,65539,0)
userwait(10)
dispatchpointer(10,20,2,346,771,0.20784314,0.06666667,0,0.0,0.0,65539,0)
userwait(10)
dispatchpointer(10,10,1,346,771,0.20784314,0.06666667,0,0.0,0.0,65539,0)
userwait(10)
從屬終端設備通過運行該點擊操作事件對應的monkey腳本,能夠對自身設備中的待測試應用程式執行點擊操作。
本申請實施例中,當從屬終端設備當前操作事件還沒執行完,就接收到新的操作事件時,將新的操作事件緩存起來,當該從屬終端設備空閒時執行。
本申請實施例所記載的技術方案,通過確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,進而確定第一操作事件在從屬終端設備中相對應的第二操作事件,並將第二操作事件發送到該從屬終端設備,使得該從屬終端設備根據第二操作事件,對自身設備中的待測試應用程式執行與第一操作事件相同或相似的兼容性測試操作,從而能夠有效提高應用程式兼容性測試的測試效率。
實施例2
基於前述實施例1詳細敘述的本申請的發明構思,為了便於更好的理解本申請的技術特徵、手段和效果,下面對本申請的應用程式兼容性測試方法做進一步說明,從而形成本申請的又一個實施例。
本申請實施例2中應用程式兼容性測試過程與實施例1中的應用程式兼容性測試過程相似,實施例2中沒有介紹到的其他一些步驟可以參見實施例1中的相關描述,此處不再贅述。
圖4為本申請實施例提供的一種應用程式兼容性測試方法的示意圖。該方法可以如下所示。
步驟401:將待測試終端設備連接到pc上,並確定待測試終端設備中的主終端設備,pc中的設備管理器負責管理該pc所連接的所有待測試終端設備;
步驟402:測試人員在主終端設備中對待測試應用程式執行兼容性測試操作;
步驟403:操作監聽器獲取getevent輸出,得到主終端設備中對待測試應用程式執行兼容性測試操作的操作點序列;
步驟404:事件分析器根據操作點序列,確定第一操作事件,並將第一操作事件發送給事件分發器,其中,第一操作事件為觸屏操作事件或按鍵操作事件;
步驟405:事件分發器將第一操作事件發送給需要執行兼容性測試操作的從屬終端設備對應的事件消費器;
步驟406:當第一操作事件為按鍵操作事件時,事件消費器確定第二操作事件為與第一操作事件相同的操作事件,並生成第二操作事件對應的monkey腳本;
當第一操作事件為觸屏操作事件時,事件消費器根據主終端設備和從屬終端設備的屏幕解析度信息,通過對第一操作事件對應的操作點序列中的任一操作點進行坐標轉換,確定第二操作事件,進而生成第二操作事件對應的monkey腳本。
步驟407:事件消費器將第二操作事件對應的monkey腳本發送到對應的從屬終端設備中,使得從屬終端設備通過運行該monkey腳本,對自身設備中的待測試應用程式執行與第一操作事件相同或相似的兼容性測試操作。
實施例3
圖5為本申請實施例提供的一種電子設備的示意結構圖。如圖5所示,在硬體層面,該電子設備包括處理器、內部總線、網絡接口、內存以及非易失性存儲器,當然還可能包括其他業務所需要的硬體。處理器從非易失性存儲器中讀取對應的電腦程式到內存中然後運行,在邏輯層面上形成應用程式兼容性測試裝置。當然,除了軟體實現方式之外,本申請並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。
圖6為本申請實施例提供的一種應用程式兼容性測試裝置的結構示意圖。裝置600包括:確定單元601和發送單元602:
確定單元601,用於確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
確定單元601,還用於確定第一操作事件在從屬終端設備中相對應的第二操作事件,其中,第二操作事件用於在從屬終端設備中執行與第一操作事件相同或相似的兼容性測試操作;
發送單元602,用於將第二操作事件發送到該從屬終端設備。
可選地,確定單元601確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取主終端設備中對待測試應用程式執行兼容性測試操作的操作點序列;
通過解析操作點序列,確定操作點序列中任一操作點的第一橫坐標值、第一縱坐標值、壓力值以及時間標識;
根據操作點序列中的任一操作點的時間標識,確定相鄰操作點之間的時間間隔;
根據操作點序列中的任一操作點的第一橫坐標值、第一縱坐標值、壓力值以及相鄰操作點之間的時間間隔,確定第一操作事件,其中,第一操作事件為觸屏操作事件。
可選地,確定單元601確定第一操作事件在從屬終端設備中相對應的第二操作事件,包括:
獲取主終端設備和從屬終端設備的屏幕解析度信息;
根據主終端設備和從屬終端設備的屏幕解析度信息,將操作點序列中的任一操作點的第一橫坐標值轉換為第二橫坐標值,以及將操作點序列中的任一操作點的第一縱坐標值轉換為第二縱坐標值;
根據操作點序列中的任一操作點的第二橫坐標值、第二縱坐標值、壓力值以及相鄰操作點之間的時間間隔,確定所述第二操作事件。
可選地,第一操作事件包括:長按、拖拽、點擊、雙擊或虛擬按鍵。
可選地,確定單元601確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件,包括:
獲取主終端設備中對待測試應用程式執行兼容性測試操作的操作點;
通過解析操作點,確定操作點的操作類型標識;
根據操作點的操作類型標識,確定第一操作事件,其中,第一操作事件為按鍵操作事件。
可選地,確定單元601確定第一操作事件在從屬終端設備中相對應的第二操作事件,包括:
確定第二操作事件為與第一操作事件相同的操作事件。
可選地,第一操作事件包括:電源鍵操作、返回鍵操作、菜單鍵操作、主鍵操作、音量上鍵操作或音量下鍵操作。
根據應用程式兼容性測試裝置,確定單元用於確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;確定單元還用於確定第一操作事件在從屬終端設備中相對應的第二操作事件,其中,第二操作事件用於在從屬終端設備中執行與第一操作事件相同或相似的兼容性測試操作;發送單元用於將第二操作事件發送到從屬終端設備,從而能夠有效提高應用程式兼容性測試的測試效率。
圖7為本申請實施例提供的一種應用程式兼容性測試裝置的結構示意圖。卡片拍攝裝置700可包括:通道接口701和處理器702,可選地,包括存儲器703。
通道接口701、處理器702和存儲器703可以通過總線704系統相互連接。總線704可以是isa(industrystandardarchitecture,工業標準體系結構)總線、pci(peripheralcomponentinterconnect,外設部件互連標準)總線或eisa(extendedindustrystandardarchitecture,擴展工業標準結構)總線等。所述總線可以分為地址總線、數據總線、控制總線等。為便於表示,圖7中僅用一個雙向箭頭表示,但並不表示僅有一根總線或一種類型的總線。
可選地,包括存儲器703,用於存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器703可以包括只讀存儲器和隨機存取存儲器,並向處理器702提供指令和數據。存儲器703可能包含高速隨機存取存儲器(random-accessmemory,ram),也可能還包括非易失性存儲器(non-volatilememory),例如至少1個磁碟存儲器。
處理器702,用於執行以下操作,可選地,執行存儲器703所存放的程序,並具體用於執行以下操作:
確定主終端設備中對待測試應用程式執行兼容性測試操作的第一操作事件;
確定第一操作事件在從屬終端設備中相對應的第二操作事件,其中,第二操作事件用於在從屬終端設備中執行與第一操作事件相同或相似的兼容性測試操作;
將第二操作事件發送到從屬終端設備。
上述如本申請圖1和圖5-6所示實施例揭示的應用程式兼容性測試裝置或管理者(master)節點執行的方法可以應用於處理器702中,或者由處理器702實現。處理器702可能是一種集成電路晶片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以通過處理器702中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的處理器702可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網絡處理器(networkprocessor,np)等;還可以是數位訊號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現場可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件。可以實現或者執行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本申請實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器703,處理器702讀取存儲器703中的信息,結合其硬體完成上述方法的步驟。
應用程式兼容性測試裝置700還可執行圖1的方法,並實現管理者節點執行的方法。
實施例4
本申請實施例還提出了一種計算機可讀存儲介質,該計算機可讀存儲介質存儲一個或多個程序,該一個或多個程序包括指令,該指令當被包括多個應用程式的可攜式電子設備執行時,能夠使該可攜式電子設備執行實施例1的方法。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程編程到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模塊來實現。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設計人員自行編程來把一個數字系統「集成」在一片pld上,而不需要請晶片製造廠商來設計和製作專用的集成電路晶片。而且,如今,取代手工地製作集成電路晶片,這種編程也多半改用「邏輯編譯器(logiccompiler)」軟體來實現,它與程序開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式語言來撰寫,此稱之為硬體描述語言(hardwaredescriptionlanguage,hdl),而hdl也並非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯編程並編程到集成電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及存儲可由該(微)處理器執行的計算機可讀程序代碼(例如軟體或固件)的計算機可讀介質、邏輯門、開關、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲器控制器還可以被實現為存儲器的控制邏輯的一部分。本領域技術人員也知道,除了以純計算機可讀程序代碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯編程來使得控制器以邏輯門、開關、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模塊又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模塊或單元,具體可以由計算機晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為計算機。具體的,計算機例如可以為個人計算機、膝上型計算機、蜂窩電話、相機電話、智慧型電話、個人數字助理、媒體播放器、導航設備、電子郵件設備、遊戲控制臺、平板計算機、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或快閃記憶體(flashram)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限於相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光碟只讀存儲器(cd-rom)、數字多功能光碟(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁碟存儲或其他磁性存儲設備或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitorymedia),如調製的數據信號和載波。
還需要說明的是,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求範圍之內。