新四季網

模擬用戶輸入的方法、輸入法測試方法及電子裝置製造方法

2023-08-06 08:06:41 1

模擬用戶輸入的方法、輸入法測試方法及電子裝置製造方法
【專利摘要】本發明公開了模擬用戶輸入的方法、輸入法測試方法以及電子裝置。模擬用戶輸入的方法包括:向輸入法發送第一字符,以使輸入法將第一字符作為輸入字符而接收;在向輸入法發送第一字符後,按照預設的等待時間向輸入法發送第二字符,以使輸入法將第二字符作為輸入字符而接收,預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔數據而得到;在向輸入法發送第二字符後,判斷是否還有字符需要發送;如果還有字符需要發送,則重複按照預設的等待時間向輸入法發送字符的步驟,否則,結束髮送字符。通過上述方式,本發明能夠更加準確的測試輸入法性能。
【專利說明】模擬用戶輸入的方法、輸入法測試方法及電子裝置
【技術領域】
[0001]本發明涉及輸入法領域,特別是涉及模擬用戶輸入的方法、輸入法測試方法以及電子裝置。
【背景技術】
[0002]輸入法是指為了將各種符號輸入計算機或其他設備(如手機)而採用的編碼方法。輸入法的性能將直接影響在計算機或其他設備上的輸入效率。因此,需要對輸入法性能進行測試以為不斷完善輸入法提供依據。
[0003]而輸入法測試過程中,需要模擬用戶輸入。合理的模擬用戶輸入時輸入法測試的基礎所在。目前輸入法測試方法中,大多都是通過sendwait方法(即向程序發送給定的鍵以等待消息被處理的方式)給輸入法發送消息,但是這種方法與用戶實際輸入相差較遠,較慢或較快的輸入速度,都無法準確模擬出實際用戶輸入環境,從而沒法準確的實現輸入法性能測試。

【發明內容】

[0004]本發明主要解決的技術問題是提供模擬用戶輸入的方法、輸入法測試方法以及電子裝置,能夠更為準確地實現輸入法性能測試。
[0005]為解決上述技術問題,本發明採用的一個技術方案是:提供一種模擬用戶輸入的方法,包括:向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收;在向所述輸入法發送第一字符後,按照預設的等待時間向所述輸入法發送第二字符,以使所述輸入法將所述第二字符作為輸入字符而接收,所述預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔數據而得到;在向所述輸入法發送第二字符後,判斷是否還有字符需要發送;如果還有字符需要發送,則重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,結束髮送字符。
[0006]其中,所述預設的等待時間為15-200ms中的任意一個。
[0007]其中,所述方法還包括:預先設置60-100ms之間的任意一個值以作為所述等待時間。
[0008]其中,所述向輸入法發送第一字符的步驟包括:利用腳本語言提供的模擬按鍵的接口(sendkey方法)向所述輸入法發送第一字符。
[0009]其中,所述每次重複向所述輸入法發送字符的等待時間,是從15-200ms中隨機獲取的一個值。
[0010]為解決上述技術問題,本發明採用的另一個技術方案是:提供一種輸入法測試方法,包括:向輸入法發送第一字符,使所述輸入法將所述第一字符作為輸入字符而進行接收;在向所述輸入法發送第一字符後,按照預設的等待時間向輸入法發送第二字符,使所述輸入法將所述第二字符作為輸入字符而進行接收,所述預設的等待時間時通過訓練用戶實際輸入的按鍵時間間隔數據而得到;在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送;如果還有字符需要發送,則重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,結束髮送字符;在發送所述第一字符之後,獲取所述輸入法對所述第一字符的相關測試數據,以及在發送所述第二字符之後,獲取所述輸入法對所述第二字符的相關測試數據;根據所述第一字符以及所述第二個字符的相關測試數據,得到所述輸入法的測試結果。
[0011]其中,所述在發送第一字符之後,獲取所述輸入法對所述第一字符的相關測試數據,以及在發送第二字符之後,獲取所述第二字符的相關測試數據的步驟包括:在發送所述第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間;所述根據第一字符以及所述第二字符的相關測試數據,得到所述輸入法的測試結果的步驟包括:對所述第一字符以及所述第二字符的響應時間求和並取平均值,得到所述輸入法的響應時間。
[0012]其中,所述在發送第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間的步驟包括:通過所述輸入法程序的記錄標籤或通過所述輸入法程序接口鉤子,在發送第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間。
[0013]其中,所述預設的等待時間為15-200ms中的任意一個。
[0014]其中,所述方法還包括:預先設置60-100ms之間的任意一個值以作為所述等待時間。
[0015]其中,所述每次重複向所述輸入法發送字符的等待時間,是從15-200ms中隨機獲取的一個值。
[0016]為解決上述技術問題,本發明提供一種電子裝置,包括第一發送模塊、第二發送模塊以及判斷模塊,其中:所述第一發送模塊用於向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收;所述第二發送模塊用於按照預設的等待時間向所述輸入法發送第二字符,以使所述輸入法將所述第二字符作為輸入字符而接收,所述預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到;所述判斷模塊用於在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送,當還有字符要發送時,通知所述第二發送模塊重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,通知所述第二發送模塊停止發送字符。
[0017]其中,所述預設的等待時間為15-200ms中的任意一個。
[0018]其中,所述裝置還包括設置模塊,用於預先設置所述等待時間並保存。
[0019]為解決上述技術問題,本發明的還有一個技術方案是:第一發送模塊、第二發送模塊、判斷模塊、第一獲取模塊以及第二獲取模塊,其中:所述第一發送模塊用於向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收;所述第二發送模塊用於按照預設的等待時間向所述輸入法發送第二字符,所述預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到;所述判斷模塊用於在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送,當還有字符要發送時,通知所述第二發送模塊重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,通知所述第二發送模塊停止發送字符;所述第一獲取模塊用於獲取所述輸入法對所述第一字符以及所述第二字符的相關測試數據;所述第二獲取模塊用於根據所述第一字符以及所述第二個字符的相關測試數據,得到所述輸入法的響應時間。
[0020]其中,所述裝置還包括設置模塊,用於預先設置所述等待時間並保存。
[0021]本發明的有益效果是:區別於現有技術的情況,本發明按照預設的等待時間為間隔分別向輸入法發送字符。而預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔該而得到,因此與用戶實際輸入間隔非常接近,能夠更加準確的模擬用戶輸入,而且該方法不等待輸入法程序返回而輸入,使模擬用戶輸入過程更加貼近用戶實際輸入環境。
[0022]另一方面,結合本發明的模擬用戶輸入的方法,本發明提供一種輸入法測試方法,在模擬用戶輸入過程中不斷獲取輸入法對每個字符的相關測試數據,進而處理得到當前輸入法的響應時間,這種方式能夠更加精確的測試輸入法的性能。
【專利附圖】

【附圖說明】
[0023]圖1是本發明模擬用戶輸入的方法一個實施方式的流程圖;
[0024]圖2是本發明輸入法測試方法一個實施方式的流程圖;
[0025]圖3是本發明電子裝置一個實施方式的結構示意圖;
[0026]圖4是本發明電子裝置另一個實施方式的結構示意圖。
【具體實施方式】
[0027]參閱圖1,本發明模擬用戶輸入的方法一個實施方式包括:
[0028]步驟SlOl:向輸入法發送第一字符;
[0029]需要模擬用戶輸入的時候,打開一個能利用輸入法進行輸入的應用,比如記事本或代碼編輯程序(Not印ad)或者網頁瀏覽器(IE)等等。準備需要輸入的字符,比如字母a、b、c、d、e、f等,數字1、2、3、4、5等,或者一串羅馬字符1、I1、II1、IV等。這些字符可以預先保存在被選中的語料集中。向輸入法發送第一字符,以使輸入法將第一字符作為輸入字符而接收。這裡定義的第一字符是指模擬用戶輸入時,最先向輸入法發送的字符。通常模擬輸入時,最先向輸入法發送的為字符串的首字符。
[0030]實際應用中,可以通過腳本語言提供的模擬按鍵的接口(sendkey方法)向輸入法發送字符。Sendkey是Visual Basic中的一個編程語句,它可將一個或多個按鍵消息發送到活動窗口,就如同用鍵盤進行輸入一樣。即通過藉助腳本autohotkey,調用sendkey的接口發送字符,從而實現模擬用戶向輸入法輸入字符。
[0031]步驟S102:按照預設的等待時間向輸入法發送第二字符;
[0032]向輸入法發送第一字符之後,按照預設的等待時間向輸入法發送第二字符。這裡預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔而得到。第二字符可以是準備向輸入法發送的所有字符中還沒有發送給輸入法的任何一個字符。但是通常情況下,模擬用戶輸入時,都是按照字符串中字符的排列順序先後依次向輸入法發送字符。也就是說,如果發送的字符串為「1、2、3、4」,那麼最先發送(即上述的第一字符)的通常為首字符「1」,緊接著發送的第二字符即為「2」,第一次重複發送的第二字符即為「3」,第二次重複發送的第二字符即為「4」,依次類推。
[0033]在實際應用過程中,可以通過統計學的方法訓練得到用戶實際輸入的按鍵時間間隔範圍。比如通過正態分布的方式,即收集用戶利用輸入法進行輸入的按鍵時間間隔數據,通過統計獲知用戶實際輸入的按鍵時間間隔範圍為15-200ms,進一步通過正態分布函數處理而得到95%以上用戶實際輸入的按鍵時間間隔範圍落在60-100ms之間。在模擬用戶輸入時,以所得到的用戶實際輸入的按鍵時間間隔為參考,設定發送字符的時間間隔即所述等待時間。
[0034]本發明實施方式,通過以上方法訓練得到用戶實際輸入的按鍵時間間隔為15-200ms 之間。[0035]通常情況下,模擬用戶輸入之前,預先設置每次發送字符的等待時間並保存。在設置時,可以設置所有發送字符的等待時間都是同一個從15-200ms之間隨機抽取的一個值,比如設置所有發送字符的等待時間都為80ms,或都為150ms等等。也可以設置每次發送字符的等待時間都是分別從15-200ms之間隨機抽取的值。比如設置時,發送第一個字符跟第二個字符的等待時間隨機抽取一個值預先設定,比如為50ms,發送第三個字符跟發送第二個字符的等待時間又隨機抽取一個值預先設定,比如為180ms……以此類推進行設置。
[0036]具體實施中,由於sendkey是一個等待返回的方式,即下一個字符要按下必須等到上面一個字符處理完才能進行。但是這種方式違背用戶實際輸入的過程,因此可以通過設置實現不等待返回而直接發送第二字符,比如通過如下方式來實現第二字符的發送:
[0037]預先設定等待時間為t,獲取輸入法的響應時間h ;比較預設的等待時間t與輸入法的響應時間h的大小;若ft,則掛起等待直到預設的等待時間t再向輸入法發送第二字符;若^ t,則直接在預設的等待時間向輸入法發送第二字符。這樣,就實現不等待輸入法響應而進行模擬用戶輸入。
[0038]步驟S103:判斷是否還有字符需要發送;
[0039]完成上述S102步驟之後,判斷需要發送的字符是否全部發送完成,如果還有字符需要發送,則返回步驟S102繼續發送,否則,進行步驟S104。如此重複,直到所有需要發送的字符都發送完畢。
[0040]步驟S104:結束髮送字符;
[0041]當判斷結果為沒有字符需要發送,則結束髮送字符。
[0042]通過上述實施方式的闡述,可以理解,本發明按照預設的等待時間為間隔分別向輸入法發送字符。而預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔該而得到,因此與用戶實際輸入間隔非常接近,從而能夠更加準確的模擬用戶輸入,而且該方法不等待輸入法程序返回而輸入,能夠使模擬用戶輸入過程更加貼近用戶實際輸入環境。
[0043]請參閱圖2,本發明輸入法的測試方式一個實施方式包括:
[0044]步驟S201:向輸入法發送第一字符;
[0045]需要進行輸入法測試的時候,打開一個能利用輸入法進行輸入的應用,比如Word文檔或者搜尋引擎等等。準備需要輸入的字符,需要輸入的字符可以從輸入法測試語料中得來,測試語料可以是手工收集的測試語料或者自動化手機的測試語料。比如語料為文字「我要去吃飯了」,需要輸入的字符可以是「woyaoquchifanle」的字符串,或者語料為英文單詞「English」,那麼需要輸入的字符即為「English」字符串等等。
[0046]這裡的第一字符是指需要向輸入法輸入的所有字符中的任意一個字符,這裡定義的第一字符主要是指輸入法測試時,最先向輸入法發送的字符。通常在模擬輸入時,需要發送的字符串首字符為最先向輸入法發送的字符,比如需要輸入的字符串「woyaoquchifanle」,第一字符是指 「W」。
[0047]實際應用中,可以通過sendkey方法向輸入法發送字符。Sendkey是Visual Basic中的一個編程語句,它可將將一個或多個按鍵消息發送到活動窗口,就如同用鍵盤進行輸入一樣。即通過藉助腳本autohotkey,調用sendkey的接口發送字符,從而實現模擬用戶向輸入法輸入字符。
[0048]步驟S202:按照預設的等待時間向輸入法發送第二字符;
[0049]向輸入法發送第一字符之後,按照預設的等待時間向輸入法發送第二字符。這裡預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔而得到。第二字符是準備向輸入法發送但還沒有發送的字符中的任意一個字符。但是通常情況下,都是按照字符串的先後順序依次發送。比如需要發送的字符串「woyaoquchifanle」,已經發送第一字符「W」,那麼第一次發送的第二字符即是「oyaoquchifanle」中的「O」,第二次發送的第二字符即是「y」,依次類推。
[0050]在實際應用過程中,可以通過統計學的方法訓練得到用戶實際輸入的按鍵時間間隔範圍。比如通過正態分布的方式,即收集用戶利用輸入法進行輸入的按鍵時間間隔數據,通過正態分布函數處理而得到用戶實際輸入的按鍵時間間隔範圍。在模擬用戶輸入時,以所得到的用戶實際輸入的按鍵時間間隔為參考設定發送字符的時間間隔。
[0051]本發明實施方式,通過以上方法訓練得到用戶實際輸入的按鍵時間間隔為15-200ms 之間。
[0052]通常情況下,模擬用戶輸入之前,預先設置每次發送字符的等待時間並保存。在設置時,可以設置所有發送字符的等待時間都是同一個從15-200ms之間隨機抽取的一個值,比如設置所有發送字符的等待時間都為60ms,或都為120ms等等。也可以設置每次發送字符的等待時間都是分別從15-2·00ms之間隨機抽取的一個值。比如設置時,發送第一個字符跟第二個字符的等待時間隨機抽取一個值預先設定,比如為100ms,發送第三個字符跟發送第二個字符的等待時間又隨機抽取一個值預先設定,比如為70ms……以此類推進行設置。
[0053]在輸入法測試過程中,採用固定的同一個值作為等待時間進行模擬輸入,可以獲得比較高精度的測試效果;而每次發送字符的等待時間都是分別從15-200ms之間隨機抽取的一個值進行模擬輸入,可以獲得比較穩定的測試結果。
[0054]具體實施中,由於sendkey是一個等待返回的方式,即下一個字符要按下必須等到上面一個字符處理完才能進行。但是這種方式違背用戶實際輸入的過程,因此可以設置不等待程序返回而直接發送第二字符,比如可以通過如下方式來發送第二字符:
[0055]預先設定等待時間為t,獲取輸入法的響應時間h ;比較預設的等待時間t與輸入法的響應時間h的大小;若ft,則掛起等待直到預設的等待時間t再向輸入法發送第二字符;若^ t,則直接在預設的等待時間向輸入法發送第二字符。這樣,就實現不等待輸入法響應而進行模擬用戶輸入。
[0056]步驟S203:判斷是否還有字符需要發送;
[0057]完成上述S202步驟之後,判斷需要發送的字符是否發送完成,如果還有字符需要發送,則返回步驟S202繼續發送,否則,進行步驟S204。繼續重複發送字符的過程,通常也是按照字符串的先後順序進行,比如字符串「woyaoquchifanle」,已經發送第一字符「W」,第一次發送第二字符「O」,第一次重複時則發送第二字符「y」,第二次重複時則發送第二字符「a」,以此類推,直到所有需要發送的字符都發送完畢。
[0058]步驟S204:結束髮送字符;
[0059]當判斷結果為沒有字符需要發送,則結束髮送字符。
[0060]步驟S205:獲取輸入法對第一字符以及第二字符的相關測試數據;
[0061]在輸入過程中,不斷獲取輸入法對每個字符的相關測試數據,比如可以是輸入法響應每一個字符的時間點,也可以是輸入法響應每個字符的時間。實際應用中,可以通過輸入法程序的記錄標籤(即在輸入法程序內部打log)或通過輸入法程序接口鉤子,獲取輸入法對每個字符的響應時間。
[0062]獲取輸入法對每個字符的相關測試數據可以是分別在每個字符發送給輸入法之後便獲取,也可以是將準備發送的一串字符串都發送完成後再獲取。若將準備發送的一串字符都發送完成後再獲取,則需要對獲取的測試數據根據字符串長,分開按照單個字符的相關測試數據來處理。
[0063]步驟S206:根據第一字符以及第二個字符的相關測試數據,得到輸入法的測試結果;
[0064]通過統計輸入法對每個字符的相關測試數據,而獲得輸入法的測試結果。比如根據輸入法響應每一個字符的時間點,通過計算獲取輸入法響應前後兩個字符的時間點之差即為輸入法對前一個字符的響應時間,如此類推可以獲取輸入法對每個字符的響應時間,對輸入法對每個字符的響應時間求和取均值,可以獲得輸入法的平均響應時間。這個輸入法的平均響應時間可以作為評價輸入法的響應性能的參考。當然,也可以直接從輸入法程序中獲取輸入法對每個字符的響應時間,進而對輸入法對每個字符的響應時間求和取平均值的方式獲得輸入法的平均響 應時間。
[0065]通過上述實施方式的闡述,本發明輸入法測試方法,在模擬用戶輸入過程中不斷獲取輸入法對每個字符的相關測試數據,進而處理得到當前輸入法的響應時間,這種方式能夠更加精確的測試輸入法的響應性能。
[0066]請參閱圖3,本發明電子裝置一個實施方式包括第一發送模塊11、第二發送模塊12以及判斷模塊13,其中:
[0067]第一發送模塊11用於向輸入法發送第一字符,以使輸入法將第一字符作為輸入字符而接收;
[0068]需要模擬用戶輸入的時候,打開一個能利用輸入法進行輸入的應用,比如記事本或代碼編輯程序(Not印ad)或者網頁瀏覽器(IE)等等。準備需要輸入的字符,比如字母
11、1^、11、(1、(1、8、11、11、1^、8等,符號@、#、¥、%、&等,或者一串羅馬字符1、11、111、1¥等。這些字符可以是從預先保存的語料集中獲取,也可以是隨機定義的字符。第一發送模塊11向輸入法發送第一字符,以使輸入法將第一字符作為輸入字符而接收。這裡的第一字符是指需要向輸入法輸入的所有字符中的任意一個字符。這裡定義的第一字符主要是指模擬輸入時,最先向輸入法發送的字符。模擬用戶輸入時,通常按照需要發送的字符串的排列順序先後向輸入法發送,即最先發送的字符通常是需要發送的字符串的首字符。
[0069]實際應用中,可以通過sendkey方法向輸入法發送字符。Sendkey是Visual Basic中的一個編程語句,它可將將一個或多個按鍵消息發送到活動窗口,就如同用鍵盤進行輸入一樣。即通過藉助腳本autohotkey,調用sendkey的接口發送字符,從而實現模擬用戶向輸入法發送字符。
[0070]第二發送模塊12用於按照預設的等待時間向輸入法發送第二字符,預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到;
[0071]第一發送模塊11向輸入法發送第一字符之後,第二發送模塊12按照預設的等待時間向輸入法發送第二字符。這裡預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔而得到。第二字符可以是準備向輸入法發送但還沒有發送的字符中的任何一個字符。但是通常情況下,根據字符串的排列順序先後向輸入法發送字符。這裡第二字符只是一個定義,事實上,除了上述已經發送的第一字符之外,剩下的需要發送的字符都為第二字符。也就是說,第二發送模塊12發送除第一發送模塊11已經發送的第一字符之外,剩下的所有需要發送的字符,但是是依次按照字符串的排列順序先後發送。
[0072]在實際應用過程中,可以通過統計學的方法訓練得到用戶實際輸入的按鍵時間間隔範圍。比如通過正態分布的方式,即收集用戶利用輸入法進行輸入的按鍵時間間隔數據,通過正態分布函數處理而得到用戶實際輸入的按鍵時間間隔範圍。在模擬用戶輸入時,以所得到的用戶實際輸入的按鍵時間間隔為參考設定發送字符的時間間隔。
[0073]本發明實施方式,通過以上方法訓練得到用戶實際輸入的按鍵時間間隔為15-200ms 之間。
[0074]具體實施中,由於sendkey是一個等待返回的方式,即下一個字符要按下必須等到上面一個字符處理完才能進行。但是這種方式違背用戶實際輸入的過程,因此第二發送模塊12可以通過如下方式來發送第二字符:
[0075]預先設定等待時間為t,獲取輸入法的響應時間h ;比較預設的等待時間t與輸入法的響應時間h的大小;若ft,則掛起等待直到預設的等待時間t再向輸入法發送第二字符;若^ t,則直接在預設的等待時間向輸入法發送第二字符。這樣,就實現不等待輸入法響應而進行模擬用戶輸入。
[0076]判斷模塊13用於判斷是否還有字符需要發送,當還有字符要發送時,通知第二發送模塊12重複按照預設的等待時間向輸入法發送字符的步驟,否則,通知第二發送模塊12停止發送字符。
[0077]請繼續參閱圖3,本發明電子裝置另一個實施方式中,還包括設置模塊14,用於預先設置等待時間並保存。
[0078]通常情況下,模擬用戶輸入之前,通過設置模塊14預先設置每次發送第二字符的等待時間並保存。
[0079]在模擬用戶輸入時,設置模塊14以上述所得到的用戶實際輸入的按鍵時間間隔為參考設定發送字符的時間間隔。
[0080]設置模塊14在設置時,可以設置所有發送字符的等待時間都是同一個從15-200ms之間隨機抽取的值,比如設置所有發送字符的等待時間都為30ms,或都為70ms等等。也可以設置每次發送字符的等待時間都是分別從15-200ms之間隨機抽取的值。比如設置時,發送第一個字符跟第二個字符的等待時間隨機抽取一個值預先設定,比如為110ms,發送第三個字符跟發送第二個字符的等待時間又隨機抽取一個值預先設定,比如為140ms……以此類推進行設置。[0081]在另一個實施方式中,上述第一發送模塊11和第二發送模塊12可以集成同一個模塊上,用於發送所有需要向輸入法發送的字符。
[0082]請參閱圖4,本發明電子裝置另一個實施方式中,包括第一發送模塊21、第二發送模塊22、判斷模塊23、第一獲取模塊24以及第二獲取模塊25,其中:
[0083]第一發送模塊21用於向輸入法發送第一字符,以使輸入法將第一字符作為輸入字符而接收;
[0084]需要進行輸入法測試的時候,打開一個能利用輸入法進行輸入的應用,比如Word文檔或者搜尋引擎等等。準備需要輸入的字符,需要輸入的字符可以從輸入法測試語料中得來,測試語料可以是手工收集的測試語料或者自動化手機的測試語料。比如語料為文字「我要去吃飯了」,需要輸入的字符即為「woyaoquchifanle」的字符串,或者語料為英文單詞「English」,那麼需要輸入的字符即為「English」字符串等等。這裡的第一字符是指最先向輸入法發送的字符。通常情況下,都是按照字符串的先後順序向輸入法發送字符,比如字符串「woyaoquchifanle」,最先向輸入法發送的為「W」。
[0085]實際應用中,可以通過sendkey方法向輸入法發送字符。Sendkey是Visual Basic中的一個編程語句,它可將將一個或多個按鍵消息發送到活動窗口,就如同用鍵盤進行輸入一樣。即通過藉助腳本autohotkey,調用sendkey的接口發送字符,以實現模擬用戶向輸入法發送字符。
[0086]第二發送模塊22用於按照預設的等待時間向輸入法發送第二字符,預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到;
[0087]第一發送模塊21向輸入法發送第一字符之後,第二發送模塊22按照預設的等待時間向輸入法發送第 二字符。這裡預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔而得到。第二字符是準備向輸入法發送但還沒有發送的字符。除第一發送模塊21發送的第一字符之外,剩下的需要向輸入法發送的所有字符都通過第二發送模塊22完成發送。
[0088]通常情況下,第二發送模塊22經過多次重複,按照預設的等待時間分布依次按照字符串的先後順序發送需要向輸入法發送但還沒有發送的字符。比如需要發送的字符串「woyaoquchifanle」,已經發送第一字符「W」,那麼第二發送模塊22第一次發送第二字符「oyaoquchifanle」中的「O」,第二次發送第二字符「y」,第三次發送「a」……依次類推。
[0089]在實際應用過程中,可以通過統計學的方法訓練得到用戶實際輸入的按鍵時間間隔範圍。比如通過正態分布的方式,即收集用戶利用輸入法進行輸入的按鍵時間間隔數據,通過正態分布函數處理而得到用戶實際輸入的按鍵時間間隔範圍。在模擬用戶輸入時,以所得到的用戶實際輸入的按鍵時間間隔為參考設定發送字符的時間間隔。
[0090]本發明實施方式,通過以上方法訓練得到用戶實際輸入的按鍵時間間隔為15-200ms 之間。
[0091]在輸入法測試過程中,採用固定的同一個值作為等待時間進行模擬輸入,可以獲得比較高精度的測量效果;而每次發送字符的等待時間都是分別從15-200ms之間隨機抽取的一個值進行模擬輸入,可以獲得比較穩定的測試結果。
[0092]具體實施中,由於sendkey是一個等待返回的方式,即下一個字符要按下必須等到上面一個字符處理完才能進行。但是這種方式違背用戶實際輸入的過程,因此第二發送模塊22可以通過如下方式來發送第二字符:[0093]預先設定等待時間為t,獲取輸入法的響應時間h ;比較預設的等待時間t與輸入法的響應時間h的大小;若ft,則掛起等待直到預設的等待時間t再向輸入法發送第二字符;若^ t,則直接在預設的等待時間向輸入法發送第二字符。這樣,就實現不等待輸入法響應而進行模擬用戶輸入。
[0094]判斷模塊23用於判斷是否還有字符需要發送,當還有字符要發送時,通知第二發送模塊22重複按照預設的等待時間向輸入法發送第二字符的步驟,否則,通知第二發送模塊22停止發送字符;
[0095]第一獲取模塊24用於獲取輸入法對第一字符以及第二字符的相關測試數據;
[0096]在輸入過程中,第一獲取模塊24不斷獲取輸入法對每個字符的相關測試數據,比如可以是輸入法響應每一個字符的時間點,也可以是輸入法響應每個字符的時間。實際應用中,第一獲取模塊24可以通過輸入法程序的記錄標籤(即在輸入法程序內部打log)或通過輸入法程序接口鉤子,獲取輸入法對每個字符的響應時間。
[0097]第一獲取模塊24獲取輸入法對每個字符的相關測試數據可以是分別在每個字符發送給輸入法之後便獲取,也可以是將準備發送的一串字符串都發送完成後再獲取。若將準備發送的一串字符都發送完成後再獲取,則需要對獲取的測試數據根據字符串長,分開按照單個字符的相關測試數據來處理。
[0098]第二獲取模塊25用於根據第一字符以及第二個字符的相關測試數據,得到輸入法的響應時間。
[0099]第二獲取模塊25通過統計輸入法對每個字符的相關測試數據,而獲得輸入法的響應時間。比如根據輸入法響應每一個字符的時間點,通過計算獲取輸入法響應每相鄰兩個字符的時間點之差即為輸入法對兩個字符的響應時間,如此類推可以獲取輸入法對每個字符的響應時間,對輸入法對每個字符的響應時間求和取均值,可以獲得一個輸入法的平均響應時間。這個輸入法的平均·響應時間可以用於評價輸入法的響應性能的參考。當然,也可以直接從輸入法程序中獲取輸入法對每個字符的響應時間,第二獲取模塊25進而通過對輸入法對每個字符的響應時間求和取平均值的方式獲得輸入法的平均響應時間。
[0100]請繼續參閱圖4,本發明電子裝置的另一個實施方式中,還可以包括設置模塊26,用於預先設置等待時間並保存。
[0101]通常情況下,輸入法進行測試之前,通過設置模塊26預先設置每次發送字符的等待時間並保存。在輸入法測試中,設置模塊26以上述所得到的用戶實際輸入的按鍵時間間隔為參考設定發送字符的時間間隔。
[0102]設置模塊26在設置時,可以設置所有發送字符的等待時間都是同一個從15-200ms之間隨機抽取的一個值,比如設置所有發送字符的等待時間都為120ms,或都為160ms等等。也可以設置每次發送字符的等待時間都是分別從15-200ms之間隨機抽取的一個值。比如設置時,發送第一個字符跟第二個字符的等待時間隨機抽取一個值預先設定,比如為50ms,發送第三個字符跟發送第二個字符的等待時間又隨機抽取一個值預先設定,比如為200ms……以此類推進行設置。
[0103]通過上述實施方式的闡述,可以理解,本發明按照預設的等待時間為間隔分別向輸入法發送字符。而預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔該而得到,因此與用戶實際輸入間隔非常接近,能夠更加準確的模擬用戶輸入,而且該方法不等待輸入法程序返回而輸入,更加貼近用戶實際輸入環境。
[0104]另一方面,結合本發明的模擬用戶輸入的方法,本發明提供一種輸入法測試方法,在模擬用戶輸入過程中不斷獲取輸入法對每個字符的相關測試數據,進而處理得到當前輸入法的響應時間,這種方式能夠更加精確的測試輸入法的響應性能。
[0105]在本發明所提供的幾個實施方式中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施方式僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0106]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施方式方案的目的。
[0107]另外,在本發明各個實施方式中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
[0108]所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)或處理器(processor)執行本申請各個實施方式所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光碟等各種可以存儲程序代碼的介質。
[0109]以上所述僅為本發明的實施方式,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發明的專利保護範圍內。
【權利要求】
1.一種模擬用戶輸入的方法,其特徵在於,包括: 向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收; 在向所述輸入法發送第一字符後,按照預設的等待時間向所述輸入法發送第二字符,以使所述輸入法將所述第二字符作為輸入字符而接收,所述預設的等待時間是通過訓練用戶實際輸入的按鍵時間間隔數據而得到; 在向所述輸入法發送第二字符後,判斷是否還有字符需要發送; 如果還有字符需要發送,則重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,結束髮送字符。
2.根據權利要求1所述的方法,其特徵在於,所述預設的等待時間為15-200ms中的任意一個。
3.根據權利要求2所述的方法,其特徵在於,所述方法還包括:預先設置60-100ms之間的任意一個值以作為所述等待時間。
4.根據權利要求1所述的方法,其特徵在於,所述向輸入法發送第一字符的步驟包括:利用腳本語言提供的模擬按鍵的接口向所述輸入法發送第一字符。
5.根據權利要求1所述的方法,其特徵在於,所述每次重複向所述輸入法發送字符的等待時間,是從15-200ms中隨機獲取的一個值。
6.一種輸入法測試方法,其特徵在於,包括: 向輸入法發送第一字符,使所述輸入法將所述第一字符作為輸入字符而進行接收;在向所述輸入法發送第一字符後,按照預設的等待時間向輸入法發送第二字符,使所述輸入法將所述第二字符作為·輸入字符而進行接收,所述預設的等待時間時通過訓練用戶實際輸入的按鍵時間間隔數據而得到; 在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送; 如果還有字符需要發送,則重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,結束髮送字符; 在發送所述第一字符之後,獲取所述輸入法對所述第一字符的相關測試數據,以及在發送所述第二字符之後,獲取所述輸入法對所述第二字符的相關測試數據; 根據所述第一字符以及所述第二個字符的相關測試數據,得到所述輸入法的測試結果O
7.根據權利要求6所述的方法,其特徵在於, 所述在發送第一字符之後,獲取所述輸入法對所述第一字符的相關測試數據,以及在發送第二字符之後,獲取所述第二字符的相關測試數據的步驟包括:在發送所述第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間; 所述根據第一字符以及所述第二字符的相關測試數據,得到所述輸入法的測試結果的步驟包括:對所述第一字符以及所述第二字符的響應時間求和並取平均值,得到所述輸入法的響應時間。
8.根據權利要求7所述的方法,其特徵在於,所述在發送第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間的步驟包括:通過所述輸入法程序的記錄標籤或通過所述輸入法程序接口鉤子,在發送第一字符之後,獲取所述輸入法對所述第一字符的響應時間,以及在發送第二字符之後,獲取所述輸入法對所述第二字符的響應時間。
9.根據權利要求6所述的方法,其特徵在於,所述預設的等待時間為15-200ms中的任意一個。
10.根據權利要求9所述的方法,其特徵在於,所述方法還包括:預先設置60-100ms之間的任意一個值以作為所述等待時間。
11.根據權利要求6所述的方法,其特徵在於,所述每次重複向所述輸入法發送字符的等待時間,是從15-200ms中隨機獲取的一個值。
12.一種電子裝置,其特徵在於,包括第一發送模塊、第二發送模塊以及判斷模塊,其中: 所述第一發送模塊用於向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收; 所述第二發送模塊用於按照預設的等待時間向所述輸入法發送第二字符,以使所述輸入法將所述第二字符作為輸入字符而接收,所述預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到; 所述判斷模塊用於在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送,當還有字符要發送時,通知所述第二發送模塊重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,通知所述第二發送模塊停止發送字符。
13.根據權利要求12所述的裝置,其特徵在於,所述預設的等待時間為15-200ms中的任意一個。
14.根據權利要求12所述的裝置,其特徵在於,所述裝置還包括設置模塊,用於預先設置所述等待時間並保存。
15.一種電子裝置,其特徵在於,包括,第一發送模塊、第二發送模塊、判斷模塊、第一獲取模塊以及第二獲取模塊,其中: 所述第一發送模塊用於向輸入法發送第一字符,以使所述輸入法將所述第一字符作為輸入字符而接收; 所述第二發送模塊用於按照預設的等待時間向所述輸入法發送第二字符,所述預設的等待時間是通過訓練用戶實際輸入的時間間隔數據而得到; 所述判斷模塊用於在向所述輸入法發送第二字符之後,判斷是否還有字符需要發送,當還有字符要發送時,通知所述第二發送模塊重複所述按照預設的等待時間向所述輸入法發送字符的步驟,否則,通知所述第二發送模塊停止發送字符; 所述第一獲取模塊用於獲取所述輸入法對所述第一字符以及所述第二字符的相關測試數據; 所述第二獲取模塊用於根據所述第一字符以及所述第二個字符的相關測試數據,得到所述輸入法的響應時間。
16.根據權利要求15所述的裝置,其特徵在於,所述裝置還包括設置模塊,用於預先設置所述等待時間並保存。
【文檔編號】G06F3/023GK103853342SQ201210523658
【公開日】2014年6月11日 申請日期:2012年12月7日 優先權日:2012年12月7日
【發明者】江桂華 申請人:百度國際科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀