国产免费观看拍拍拍_国产精品一区欧美日韩不卡在线_午夜小视频欧美三级在线_免费看美女全身的软件中文字幕_人妻少妇456在线视频_中文字幕a视频直播_亚洲精品无码18_精品国产亚洲一区人成在线_91热爆亚洲精品首页_久久 国产 人妖 系列

全國服務(wù)熱線 : 4000-020-230

當(dāng)前位置:首頁 > 技術(shù)支持 > 技術(shù)文章

技術(shù)文章 產(chǎn)品知識 下載中心

技術(shù)文章

如何自動測試歐視邁(OZEAM)全數(shù)字可視對講系統(tǒng)軟件的穩(wěn)定性?
發(fā)布日期:2012-03-15 15:25:00     作者:    已有  閱讀過本文

     摘要:本文闡述了一種模擬觸摸屏自動點屏和模擬按鍵事件的方法,利用定時器實現(xiàn)自動測試歐視邁全數(shù)字可視對講系統(tǒng)軟件的穩(wěn)定性,減少測試人員的工作量。

        關(guān)鍵詞:自動測試 軟件穩(wěn)定性 全數(shù)字可視對講系統(tǒng) 歐視邁 OZEAM模擬觸摸屏點屏 模擬按鍵事件

 

     我們在研發(fā)歐視邁(OZEAM)全數(shù)字可視對講系統(tǒng)應(yīng)用軟件時,必須對軟件的穩(wěn)定性進行測試。穩(wěn)定性測試是在保證功能完整正確的前提下,必不可少的一項測試內(nèi)容,通過對軟件穩(wěn)定性的測試可以觀察在一個運行周期內(nèi)、一定的壓力條件下,軟件的出錯機率、性能劣化趨勢等。進而大大減少軟件上線后的崩潰卡死等現(xiàn)象,為軟件的逐步優(yōu)化提供方向及驗證。

 

    下面針對WINCE下有界面和按鍵功能的程序,介紹一種模擬觸摸屏自動點屏和模擬按鍵事件的方法,從而測試程序穩(wěn)定性。

 

    一.利用函數(shù)mouse_event模擬觸摸屏觸摸事件

    函數(shù)功能:該函數(shù)綜合鼠標(biāo)擊鍵和鼠標(biāo)動作。

  函數(shù)原型:

  VOID mouse_event(

  DWORD dwFlags, // motion and click options

  DWORD dx, // horizontal position or change

  DWORD dy, // vertical position or change

  DWORD dwData, // wheel movement

  ULONG_PTR dwExtraInfo // application-defined information

  );

  參數(shù):

  dwFlags:標(biāo)志位集,指定點擊按鈕和鼠標(biāo)動作的多種情況。此參數(shù)里的各位可以是下列值的任何合理組合:

  MOUSEEVENTF_ABSOLUTE:表明參數(shù)dX,dy含有規(guī)范化的絕對坐標(biāo)。如果不設(shè)置此位,參數(shù)含有相對數(shù)據(jù):相對于上次位置的改動位置。此標(biāo)志可被設(shè)置,也可不設(shè)置,不管鼠標(biāo)的類型或與系統(tǒng)相連的類似于鼠標(biāo)的設(shè)備的類型如何。要得到關(guān)于相對鼠標(biāo)動作的信息,參見下面?zhèn)渥⒉糠帧?/p>

  MOUSEEVENTF_MOVE:表明發(fā)生移動。

  MOUSEEVENTF_LEFTDOWN:表明接按下鼠標(biāo)左鍵。

  MOUSEEVENTF_LEFTUP:表明松開鼠標(biāo)左鍵。

  MOUSEEVENTF_RIGHTDOWN:表明按下鼠標(biāo)右鍵。

  MOUSEEVENTF_RIGHTUP:表明松開鼠標(biāo)右鍵。

  MOUSEEVENTF_MIDDLEDOWN:表明按下鼠標(biāo)中鍵。

  MOUSEEVENTF_MIDDLEUP:表明松開鼠標(biāo)中鍵。

  MOUSEEVENTF_WHEEL:在Windows NT中如果鼠標(biāo)有一個輪,表明鼠標(biāo)輪被移動。移動的數(shù)量由dwData給出。

  dx:指定鼠標(biāo)沿x軸的絕對位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動的數(shù)量,依賴于MOUSEEVENTF_ABSOLUTE的設(shè)置。給出的絕對數(shù)據(jù)作為鼠標(biāo)的實際X坐標(biāo);給出的相對數(shù)據(jù)作為移動的mickeys數(shù)。一個mickey表示鼠標(biāo)移動的數(shù)量,表明鼠標(biāo)已經(jīng)移動。

  dy:指定鼠標(biāo)沿y軸的絕對位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動的數(shù)量,依賴于MOUSEEVENTF_ABSOLUTE的設(shè)置。給出的絕對數(shù)據(jù)作為鼠標(biāo)的實際y坐標(biāo),給出的相對數(shù)據(jù)作為移動的mickeys數(shù)。

  dwData:如果dwFlags為MOUSEEVENTF_WHEEL,則dwData指定鼠標(biāo)輪移動的數(shù)量。正值表明鼠標(biāo)輪向前轉(zhuǎn)動,即遠(yuǎn)離用戶的方向;負(fù)值表明鼠標(biāo)輪向后轉(zhuǎn)動,即朝向用戶。一個輪擊定義為WHEEL_DELTA,即120。

  如果dwFlagsS不是MOUSEEVENTF_WHEEL,則dWData應(yīng)為零。

  dwExtralnfo:指定與鼠標(biāo)事件相關(guān)的附加32位值。應(yīng)用程序調(diào)用函數(shù)GetMessgeExtraInfo來獲得此附加信息。

  返回值:無。

  備注:如果鼠標(biāo)被移動,用設(shè)置MOUSEEVENTF_MOVE來表明,dX和dy保留移動的信息。給出的信息是絕對或相對整數(shù)值。

  如果指定了MOUSEEVENTF_ABSOLUTE值,則dX和dy含有標(biāo)準(zhǔn)化的絕對坐標(biāo),其值在0到65535之間。事件程序?qū)⒋俗鴺?biāo)映射到顯示表面。坐標(biāo)(0,0)映射到顯示表面的左上角,(65535,65535)映射到右下角。

  如果沒指定MOUSEEVENTF_ABSOLUTE,dX和dy表示相對于上次鼠標(biāo)事件產(chǎn)生的位置(即上次報告的位置)的移動。正值表示鼠標(biāo)向右(或下)移動;負(fù)值表示鼠標(biāo)向左(或上)移動。

  鼠標(biāo)的相對移動服從鼠標(biāo)速度和加速度等級的設(shè)置,一個最終用戶用鼠標(biāo)控制面板應(yīng)用程序來設(shè)置這些值,應(yīng)用程序用函數(shù)SystemParameterslnfo來取得和設(shè)置這些值。

  在應(yīng)用加速時系統(tǒng)對指定相對鼠標(biāo)移動提供了兩個測試。如果指定的沿X軸y軸的距離比第一個鼠標(biāo)閾值大,并且鼠標(biāo)的加速等級非零,則操作系統(tǒng)將距離加倍。如果指定的沿X軸或y軸的距離比第二個鼠標(biāo)閾值大,并且鼠標(biāo)的加速等級為2,則操作系統(tǒng)將從第一個閾測試得來的距離加倍。這樣就允許操作系統(tǒng)將指定鼠標(biāo)沿X軸或y軸的相對位移加到4倍。

  一旦應(yīng)用了加速,系統(tǒng)用期望的鼠標(biāo)速度換算合成的值。鼠標(biāo)速度的范圍是從1(最慢)到20(最快),并代表基于鼠標(biāo)移動的距離指示符移動的數(shù)量。缺省值是10,表示對鼠標(biāo)的移動設(shè)有附加的修改。

  函數(shù)mouse_event需要用的應(yīng)用程序用來合成鼠標(biāo)事件。也被應(yīng)用程序用來取得鼠標(biāo)位置和鼠標(biāo)按鍵狀態(tài)之外的鼠標(biāo)信息。例如,想將基于畫筆的信息傳給自己的應(yīng)用程序,可以寫一個直接與輸入板硬件通信的動態(tài)鍵接庫(DLL),獲得附加的信息,并保存到一個隊列中。DLL然后調(diào)用 mouse_event,用標(biāo)準(zhǔn)按鍵和x/y位置數(shù)據(jù),并在參數(shù)dwExtralnfo設(shè)置排列的附加信息的指針或索引。當(dāng)應(yīng)用程序需要附加信息時,調(diào)用 DLL(連同存貯在dwEXtralnfo中的指針或索引),則DLL返回附加信息。

Windows CE:Windows CE不支持參數(shù) dwFlags取MOUSE EVENTF WHEEL常數(shù)。

 

    下面是模擬隨意點擊觸摸的例子:

POINT p = {0,0};//定義一個坐標(biāo)

// w_screen 為觸摸屏分辨率寬,h_screen為觸摸屏分辨率高,也可自定義范圍

p.x = rand()%w_screen;//x橫坐標(biāo)

p.y = rand()%h_screen;//y縱坐標(biāo)

::SetCursorPos(p.x,p.y);//將光標(biāo)移動到p坐標(biāo)位置

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//模擬觸摸屏消息

 

 

二.利用keybd_event如何模擬按鍵事件

 

    函數(shù)原型:VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo)

 

參數(shù):  

    bVk:定義一個虛據(jù)擬鍵碼。鍵碼值必須在1~254之間。  

    bScan:定義該鍵的硬件掃描碼。  

    dwFlags:定義函數(shù)操作的名個方面的一個標(biāo)志位集。應(yīng)用程序可使用如下一些預(yù)定義常數(shù)的組合設(shè)置標(biāo)志位:  

    KEYEVENTF_EXETENDEDKEY:若指定該值,則掃描碼前一個值為OXEO(224)的前綴字節(jié)。

    KEYEVENTF_KEYUP:若指定該值,該鍵將被釋放;若未指定該值,該鍵將被按下

    KEYEVENTF_SILENT:使用該標(biāo)志模擬擊鍵,而不產(chǎn)生敲擊的聲音。

    dwExtralnfo:定義與擊鍵相關(guān)的附加的32位值。  

   

返回值:

    該函數(shù)無返回值。  

備注:

    盡管keybd_event傳遞一個與OEM相關(guān)的硬件掃描碼給系統(tǒng),但應(yīng)用程序不能用此掃描碼。系統(tǒng)在內(nèi)部將掃描碼轉(zhuǎn)換成虛擬鍵碼,并且在傳送給應(yīng)用程序前清除鍵碼的UP/down位。應(yīng)用程序可以摸擬PRINTSCREEN鍵的按下來獲得一個屏幕快照,并把它存放到剪切板中。若要做到這一點,則要將keybd_event的bVk參數(shù)置為VK_SNAPSHOT,bScan參數(shù)置為0(用以獲得全屏快照)或hScan置為1(僅獲得活動窗口的快照)。WINCE:WindowsCE支持dwFlags參數(shù)附加的標(biāo)志位。即使用KEYEVENTF_SILENT標(biāo)志模擬擊鍵,而不產(chǎn)生敲擊的聲音。WINCE不支持KEYEVENTF_EXTENDEDKEY標(biāo)志。

 

//模擬按鍵VK_NUMPAD7消息

keybd_event( VK_NUMPAD7,1,0,0); 

keybd_event( VK_NUMPAD7,1,KEYEVENTF_KEYUP,0);

 

 

//模擬重啟

keybd_event (VK_OFF, 0, KEYEVENTF_SILENT, 0);   

keybd_event (VK_OFF, 0, KEYEVENTF_SILENT|KEYEVENTF_KEYUP, 0);

 

三.利用定時器實現(xiàn)自動測試

    如何實現(xiàn)自動呢,方法很多,其中可以通過SetTimer來設(shè)置一個定時器,設(shè)置需要模擬事件發(fā)生頻率,定時的模擬事件。

設(shè)置定時器,可在OnTimer實現(xiàn)模擬觸摸屏和軟鍵盤(或機械按鍵)時間,從而達(dá)到自動測試的效果。

 

   我們在測試歐視邁(OZEAM)全數(shù)字可視對講系統(tǒng)軟件時利用了以上方法,大大地減輕了測試人員的工作量,同時也保證了軟件的健壯性。


返回
上一篇  如何辨別真假全數(shù)字可視對講系統(tǒng)?
下一篇  EPON在歐視邁(OZEAM)全數(shù)字可視對講系統(tǒng)中的應(yīng)用
【推薦閱讀】

24小時全國服務(wù)熱線:4000-020-230

關(guān)注我們:
?2016 廣州市歐智智能科技有限公司 版權(quán)所有.All Rights Reserved.      粵ICP備10043508號-1
網(wǎng)絡(luò)支持:艾迪品牌策劃設(shè)計
尊敬的客戶,您是第【{visits:all}】訪客
業(yè)務(wù)服務(wù)
客服電話

4000-020-230