全國服務熱線 : 4000-020-230

當前位置:首(shǒu)頁 > 技術支持 > 技術文(wén)章

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

技術(shù)文章

如何自動測(cè)試蝌蚪视频在线观看視邁(OZEAM)全數字可視對講係(xì)統軟件的(de)穩定性?
發布日期:2012-03-15 15:25:00     作者:    已有  閱讀過本文

     摘要:本文(wén)闡述了(le)一(yī)種模擬觸摸屏自動點(diǎn)屏和模擬按鍵事件(jiàn)的方法,利用定時器實現自(zì)動(dòng)測試蝌蚪视频在线观看(ōu)視邁全數字可視對講係統軟件的穩定性,減少測試人員(yuán)的(de)工作量。

        關鍵詞:自動測試 軟件穩(wěn)定性 全數字可視對講(jiǎng)係統 蝌蚪视频在线观看視邁 OZEAM模擬觸摸(mō)屏點屏 模擬按(àn)鍵事件

 

     我們在研(yán)發(fā)蝌蚪视频在线观看視邁(OZEAM)全數字可視對講係統應用(yòng)軟件(jiàn)時,必須對軟(ruǎn)件的(de)穩定性進行測試。穩定性測試(shì)是在保證功能(néng)完整正確的前提下,必不可少的(de)一項測試內容,通過對軟件穩定性的測試可以觀察在一個運行周期(qī)內、一定的壓力條件下,軟件的出錯機率、性能劣化趨勢等。進而大大減少軟(ruǎn)件上線後的崩潰卡死(sǐ)等現象,為軟件的逐步優化提供方向及驗證。

 

    下麵針對WINCE下(xià)有界(jiè)麵和按(àn)鍵功能(néng)的程序,介紹一種模擬觸摸屏自動(dòng)點屏和模擬按鍵事件(jiàn)的方法,從而測試程序穩定性。

 

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

    函數功(gōng)能:該函數綜合鼠標擊鍵和鼠(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

  );

  參數:

  dwFlags:標誌位集(jí),指定點擊按鈕和鼠標動作的多(duō)種情況。此參數裏的各位可以是下列值的任何合理組合:

  MOUSEEVENTF_ABSOLUTE:表明參數dX,dy含有規範化的絕對(duì)坐標。如果不設置此(cǐ)位,參數(shù)含有相對數(shù)據:相(xiàng)對於上次位置的改動位置。此標誌(zhì)可被設置,也可不設置,不管(guǎn)鼠標的類型或與係統相連的類似於鼠(shǔ)標的設備的類型如何。要得到關(guān)於(yú)相對鼠標(biāo)動作的信息,參見下麵備注部分。

  MOUSEEVENTF_MOVE:表(biǎo)明發生移動。

  MOUSEEVENTF_LEFTDOWN:表明接按下鼠標左鍵。

  MOUSEEVENTF_LEFTUP:表明鬆開鼠標左鍵。

  MOUSEEVENTF_RIGHTDOWN:表明按下鼠標右(yòu)鍵。

  MOUSEEVENTF_RIGHTUP:表明鬆開鼠標右鍵。

  MOUSEEVENTF_MIDDLEDOWN:表明按下鼠標中鍵(jiàn)。

  MOUSEEVENTF_MIDDLEUP:表明鬆開鼠(shǔ)標中鍵。

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

  dx:指定(dìng)鼠標沿x軸的絕對位置或者從上次鼠標事件產生以(yǐ)來移動的數量,依賴於MOUSEEVENTF_ABSOLUTE的設(shè)置。給出的絕(jué)對數據作為鼠標的實際X坐標;給出的相對數據作為移動(dòng)的mickeys數。一個(gè)mickey表示鼠標移動的數量,表明鼠標已經移(yí)動。

  dy:指定(dìng)鼠標沿y軸的絕對(duì)位置或者從上次鼠標事件產生以來移動的數量,依賴於(yú)MOUSEEVENTF_ABSOLUTE的設置。給出的絕對數據作為鼠標的實際y坐標,給(gěi)出的(de)相對數據作為(wéi)移動的mickeys數(shù)。

  dwData:如果dwFlags為(wéi)MOUSEEVENTF_WHEEL,則dwData指定鼠標(biāo)輪移動的數量(liàng)。正值表明鼠標輪向前轉動,即遠離用戶的方向;負值(zhí)表明鼠標輪向後轉動,即朝向用戶。一個輪擊定義為WHEEL_DELTA,即120。

  如果dwFlagsS不是MOUSEEVENTF_WHEEL,則(zé)dWData應為零(líng)。

  dwExtralnfo:指定與鼠標事件(jiàn)相關的附加32位值。應(yīng)用程序調用函數GetMessgeExtraInfo來獲(huò)得此附加信息。

  返(fǎn)回值:無。

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

  如果指定(dìng)了MOUSEEVENTF_ABSOLUTE值,則dX和dy含有標準化的絕對坐標,其值在0到65535之間。事件程序將此坐標映射(shè)到顯示表麵。坐標(0,0)映射到顯示(shì)表麵的(de)左上角,(65535,65535)映射到右下角。

  如果(guǒ)沒指定(dìng)MOUSEEVENTF_ABSOLUTE,dX和dy表示相對於上次鼠標(biāo)事件(jiàn)產生的位置(即上次報告的位置)的移動。正值表示鼠標向右(或下)移動;負值表示鼠標向左(或上(shàng))移動(dòng)。

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

  在應用加速時係(xì)統對指定(dìng)相對鼠標移動(dòng)提供了兩個測試。如果指定的沿X軸y軸的距離比第一個鼠(shǔ)標(biāo)閾值大,並且(qiě)鼠標(biāo)的加速等級非零,則操作係統將(jiāng)距離加倍(bèi)。如果指定(dìng)的沿X軸或y軸的(de)距離比第二個(gè)鼠(shǔ)標閾值大,並且鼠標的加速等級為2,則操作係統將從第一個閾測試得來的(de)距離加倍。這樣就允許操作(zuò)係統將指定鼠標沿X軸或y軸的相對位移加到4倍。

  一旦應(yīng)用了加速,係統用期望的鼠標速度換算合成的值。鼠標速度的範(fàn)圍是從1(最慢)到20(最快),並代表基於鼠(shǔ)標移動(dòng)的距離指示符移動的數量。缺省值是10,表示對鼠標的移動(dòng)設有附加的修改。

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

windows ces:windows ces不支持參數 dwFlags取(qǔ)MOUSE EVENTF WHEEL常數。

 

    下(xià)麵是模擬隨意點擊觸摸的例子:

POINT p = {0,0};//定義一個坐標

// w_screen 為觸摸屏分辨率寬,h_screen為觸摸屏分辨率高(gāo),也可自定(dìng)義範圍

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

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

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

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//模(mó)擬觸摸屏消(xiāo)息

 

 

二.利用keybd_event如何模擬(nǐ)按鍵事件

 

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

 

參數:  

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

    bScan:定義該鍵的硬(yìng)件掃描碼。  

    dwFlags:定義函數操作的(de)名個(gè)方麵的一個標誌位集。應用程序可使用如下一些預定義(yì)常數的組合設置標(biāo)誌(zhì)位:  

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

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

    KEYEVENTF_SILENT:使用該(gāi)標誌模(mó)擬擊鍵,而不產生敲擊的聲音。

    dwExtralnfo:定義與(yǔ)擊鍵(jiàn)相關的附加的32位值。  

   

返(fǎn)回值(zhí):

    該函數無返回值。  

備(bèi)注:

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

 

//模擬按鍵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);

 

三.利用定時器實現自動測試(shì)

    如何實(shí)現自動呢,方法很多,其中可以通過(guò)SetTimer來設置一個定時器,設置需要(yào)模(mó)擬事件發生(shēng)頻率,定時的模擬事(shì)件。

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

 

   我們在測試蝌蚪视频在线观看視邁(OZEAM)全數字可視對講係統軟件時利用了以上方法,大大地(dì)減輕了測試人員的工作量,同時也(yě)保證了軟(ruǎn)件的健壯性。


返回
【推薦閱讀】

24小時全國服務熱線:4000-020-230

關注我們:
©2016 廣(guǎng)州市蝌蚪视频在线观看智智能科技有限公司 版權所(suǒ)有.All Rights Reserved.      粵ICP備10043508號-1
業務服務
客服(fú)電話

4000-020-230

蝌蚪视频在线观看_小蝌蚪网站在线观看_小蝌蚪免费视频_小蝌蚪污污视频APP