專利名稱:一種生成測試腳本的方法及裝置的制作方法
技術領域:
本發(fā)明涉及測試技術,尤指一種生成測試腳本的方法及裝置。
背景技術:
自動化測試由于其具有測試周期短、測試資源的利用率高等特點,在測試領域受到越來越高的關注。在現有的自動化測試技術中,測試腳本通常根據可以通過以下兩種方法得到。
其一為,首先由測試人員執(zhí)行一次手工測試,然后再由測試人員根據手工測試過程,手工編寫測試腳本文件。這里,測試人員需要經過一次手工測試過程,再編寫測試腳本文件的原因是測試過程的隨機性比較大,因此測試人員必須先做一次手工測試,然后再根據手工測試中所遇到的問題、出現的情況,對測試過程進行改進,避免由于測試過程的不完善而導致測試不準確的問題,因此在編寫測試腳本文件之前需要執(zhí)行一次手工測試過程。這種方法的弊端就是重復工作量大,并且手工編寫的腳本文件很難重現當時的手工測試過程。
其二為,通過一個具有捕獲回放功能的自動化測試工具來生成測試腳本。這種自動化測試工具的工作原理就是完全復制手工測試過程,在需要進行測試時重放該復制的手工測試過程。這種生成測試腳本的方法,雖然能夠減小測試人員的工作量,能夠完全重現當時的手工測試過程,但由于自動化測試工具是采用傻瓜的復制方式,因此在手工測試過程中出現的一些問題,如輸入了的錯誤命令,或輸入了多余的字符,自動化測試工具是不能夠識別并予以清除的。因此,這種生成測試腳本的方法不能根據記錄的手工測試過程,對測試操作進行優(yōu)化進而生成測試腳本。
發(fā)明內容
有鑒于此,本發(fā)明實施例的主要目的在于提供一種生成測試腳本的方法,應用該方法能夠根據測試腳本生成方的需要,生成優(yōu)化的測試腳本。
同時,本發(fā)明實施例的又一主要目的在于提供一種生成測試腳本的裝置,該裝置能夠實現根據測試腳本生成方的需要,生成優(yōu)化的測試腳本。
為達到上述目的,本發(fā)明實施例的技術方案是這樣實現的本發(fā)明實施例提供了一種生成測試腳本的方法,設置腳本參數列表;該方法包括以下步驟A、根據手工測試過程,生成測試記錄文件;根據腳本參數列表,選擇腳本參數;B、根據選擇的腳本參數及測試記錄文件,生成測試腳本。
另外,本發(fā)明實施例還提供了一種生成測試腳本的裝置,該裝置包括記錄單元,用于根據手工測試過程,生成測試記錄文件;選擇單元,用于根據腳本參數列表,確定腳本參數;測試腳本生成單元,用于根據記錄單元生成的測試記錄文件、以及選擇單元確定的腳本參數,生成測試腳本。
本發(fā)明實施例所提供的一種生成測試腳本的方法,通過設置腳本參數列表;接著首先根據手工測試過程,生成測試記錄文件;再根據腳本參數列表,選擇腳本參數;最后根據選擇的腳本參數及測試記錄文件,生成測試腳本。由于腳本參數列表中包含的是與優(yōu)化測試腳本的相關腳本參數,因此用戶或測試腳本的生成方,則可以根據自身的情況在腳本參數列表中選擇一個或多個腳本參數,并根據選擇的腳本參數及測試記錄文件生成優(yōu)化的測試腳本。另外,本發(fā)明實施例還提供了一種生成測試腳本的裝置。通過應用本發(fā)明實施例提供的方法及裝置,能夠實現根據測試腳本生成方的需要,生成優(yōu)化的測試腳本,能夠實現刪除錯誤、歸并重復、歸并循環(huán)等功能,提高了測試腳本的測試性能,節(jié)約了測試系統的資源,同時也就有很強的適應性。
下面將通過參照附圖詳細描述本發(fā)明的示例性實施例,使本領域的普通技術人員更清楚本發(fā)明的上述及其它特征和優(yōu)點,附圖中圖1為本發(fā)明較佳實施例方法的流程圖;圖2為本發(fā)明較佳實施例中生成相關鏈表的方法流程圖;圖3為本發(fā)明較佳實施例裝置的結構圖。
具體實施例方式
為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明做進一步的詳細說明。
在本發(fā)明的實施例的技術方案中,預先設置腳本參數列表;接著,首先根據手工測試過程,生成測試記錄文件;再根據腳本參數列表,選擇腳本參數;最后根據選擇的腳本參數及測試記錄文件,生成測試腳本。
這里腳本參數列表中包含的是與優(yōu)化測試腳本的相關腳本參數,可以包括如下幾種歸并重復命令、歸并循環(huán)操作、轉化檢查操作、過濾錯誤命令、刪除命令和刪除時間間隔。當然還可以包括其他與優(yōu)化測試腳本有關的腳本參數,在此不一一列舉。當設置了腳本參數列表之后,用戶或測試腳本的生成方,則可以根據自身的情況在腳本參數列表中選擇一個或多個腳本參數,并根據選擇的腳本參數及測試記錄文件生成測試腳本。由于腳本參數是用于優(yōu)化測試腳本的,因此在生成測試腳本根據腳本參數就能夠優(yōu)化測試腳本。例如在生成測試腳本的過程中,歸并重復命令和過濾錯誤命令,就能夠消除測試腳本中的重復命令和過濾錯誤命令,進而優(yōu)化測試腳本。
圖1為本發(fā)明較佳實施例方法的流程圖。在本較佳實施例中假設預先設置的腳本參數列表中包括歸并重復命令、歸并循環(huán)操作、轉化檢查操作、過濾錯誤命令、刪除命令和刪除時間間隔,本發(fā)明較佳實施例方法的流程如下所述在步驟101中,根據手工測試過程,生成測試記錄文件。
這里生成的測試記錄文件是根據手工測試的操作過程,按照時間順序記錄所有擊鍵內容及相應的擊鍵時間、回顯內容、窗口信息。例如在一臺設備上執(zhí)行dis this的測試,敲入的命令行以及在測試設備上的回顯內容如下所示[NE40-16Test-Ethernet2/0/4]dis this#interface Ethernet2/0/4undo shutdownportswitchport trunk allow-pass vlan21#return當用可擴展行標簽語言(XML)文件記錄該測試過程時,相應的測試記錄文件為如下形式<VTP_KEY_RECORD>
<term name=″NE67″>
<K t=″2915500″>d</K>
<E t=″2915500″1=″3″>d</E>
<K t=″2915703″>i</K>
<E t=″2915719″1=″3″>i</E>
<K t=″2915844″>s</K>
<E t=″2915844″1=″3″>s</E>
<K t=″2919828″></K>
<K t=″2920109″>t</K>
<E t=″2920125″1=″3″>t</E>
<K t= ″2920312″>h</K>
<E t=″2920328″1=″3″>h</E>
<K t=″2920641″>
</K>
<E t=″2920719″1=″3″>#</E>
<E t=″2920734″1=″521″>interface Ethernet2/0/4undo shutdownportswitchport trunk allow-pass vlan21#return[NE40-16Test-Ethernet2/0/4]</E>
</term>
</VTP_KEY_RECORD>
其中,<VTP_KEY_RECORD>為XML文件根節(jié)點;<term>表示窗口的信息;以K為標記的表示擊鍵輸入內容;以E為標記的表示回顯內容;屬性t為時標,記錄當前擊鍵時間;屬性1為長度。這里記錄的回顯內容包括兩部分擊鍵的回顯內容和測試命令的回顯內容。
如步驟101中列舉的例子,<E t=″2920734″1=″521″>interface Ethernet2/0/4undo shutdownportswitchport trunk allow-pass vlan21#return[NE40-16Test-Ethernet2/0/4]
</E>
為測試命令的回顯內容;而<E t=″2915500″1=″3″>d</E>
為擊鍵信息的回顯內容。
在步驟102中,在生成測試記錄文件后,測試腳本生成方根據腳本參數列表,選擇腳本參數。
在本較佳實施例中,假設測試腳本生成方選擇了腳本參數列表中的所有腳本參數,即選擇了歸并重復命令、歸并循環(huán)操作、轉化檢查操作、過濾錯誤命令、刪除命令和刪除時間間隔。當然測試腳本生成方也可以選擇其中的一個或多個腳本參數。
這里,所指的測試腳本生成方可以是進行測試的測試人員,也可以是某個具體的設備。當測試腳本生成方是某個具體的設備時,則可以根據預先設置的一些選擇規(guī)則,選擇腳本參數。
步驟102也可以與步驟101同時進行,也可以在步驟102之前執(zhí)行。
在步驟103中,根據測試記錄文件生成命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表。
這里的命令行輸入鏈表用于記錄測試過程中輸入的每條命令;回顯內容輸出鏈表用于記錄測試過程中每條輸入命令對應的回顯內容,其中回顯內容輸出鏈表中并不包含對擊鍵內容的回顯;控制臺窗口名稱鏈表用于記錄每條命令所在窗口的名稱;命令行時間間隔鏈表用于針對每條命令,記錄當前命令與上一命令輸入之間的時間間隔。
生成命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表的方式可以是如下形式在生成命令行輸入鏈表時,遍歷測試記錄文件,將測試記錄文件中第一個回車鍵之前的擊鍵內容作為一條命令,加入命令行輸入鏈表;之后,將兩個回車鍵之間所有的擊鍵內容作為一條命令加入命令行輸入鏈表;然后,將針對每條命令的回顯內容,分別加入回顯內容輸出鏈表;并在每次將命令加入命令行輸入鏈表時,根據當前命令所對應的控制臺窗口,將控制臺窗口信息記錄至控制臺窗口名稱鏈表中;最后,針對當前命令,將當前命令與上條命令之間輸入的時間間隔加入到命令行時間間隔鏈表內,其中第一命令行的時間間隔為0。在命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表中,相同行的元素均是一一對應的,即相應行中的元素均對應的同一條命令。
在本較佳實施例中,還提供了一個詳細的生成命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表的方法,具體流程參見圖2。
在步驟104中,根據選擇的腳本參數、命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表,生成測試腳本。
由于在本較佳實施例中,測試腳本的生成方選擇的是歸并重復命令、歸并循環(huán)操作、轉化檢查操作、過濾錯誤命令、刪除設置命令和刪除時間間隔。因此在根據命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表,生成測試腳本的過程中,需要歸并重復命令、歸并循環(huán)操作、轉化檢查操作、過濾錯誤命令、刪除設置命令和刪除時間間隔。
其中,歸并重復命令的具體方法可以是在生成測試腳本的過程中,在使用到命令行輸入鏈表時,當遇到連續(xù)兩次以上的重復命令,則在生成腳本時僅利用其中一個生成測試腳本。例如,當在命令行輸入鏈表中,連續(xù)出現了三個dis th的命令時,則僅利用其中一個dis th命令用來生成測試腳本。
歸并循環(huán)操作的具體方法可以是在生成測試腳本的過程中,在使用到命令行輸入鏈表時,識別其中存在的循環(huán)操作,同時歸并識別出的循環(huán)操作。識別循環(huán)操作的方法可以是對命令行輸入鏈表中的內容進行遍歷,當遇到三次以上輸入內容中的數字部分成等差數列排列時,則可以確定該部分的命令為循環(huán)操作。例如如下三個命令int e0.1、int e0.2、int e0.3則為一個循環(huán)操作,因此在生成測試腳本時,可以將這三個命令歸并為一個循環(huán)操作,進而實現對測試腳本的優(yōu)化。
轉化檢查操作的具體方法可以是在進行轉化檢查操作之前測試腳本生成方需要預先設置需要轉化的命令,例如ping和route。在生成測試腳本的過程中,使用到命令行輸入鏈表時,查找到命令行輸入鏈表中需要轉換的命令,將查找到的命令轉化為檢查操作,例如<CHECK>ping、<CHECK>route,其中<CHECK>是已經封裝好的關鍵字,利用<CHECK>中不同的參數選項能夠提供不同的檢查操作。此時,還可以根據回顯內容輸出鏈表,查找到所述需要轉化的命令對應的回顯內容,將所述查找到的回顯內容作為轉化檢查操作的參數,向測試方提供預期的結果。根據這個預期結果,測試設備就能夠顯示測試腳本當前的運行結果與預期結果之間的差異。
過濾錯誤命令的具體方法可以是在生成測試腳本的過程中,在使用到回顯內容輸出鏈表時,根據回顯內容輸出鏈表中記錄的錯誤指示,刪除所述錯誤指示對應的命令行。例如,輸入命令為[Quidway]int e5/0/2相應的回顯內容為ErrorWrong parameter found at′′position此時,則可以刪去錯誤回顯內容所對應的命令。這里,命令int e5/0/2錯誤的原因在于在當前設備上沒有e5/0/2的端口。
刪除命令的具體方法可以是預先設置刪除命令集合,在生成測試腳本的過程中,在使用到命令行輸入鏈表時,判斷命令行輸入鏈表中記錄的命令是否為刪除命令集合中的命令,在命令為刪除命令集合中的命令,在生成測試腳本時,忽略該命令。
刪除時間間隔的具體方法是在生成測試腳本的過程中,根據命令行時間間隔鏈表刪除兩條命令之間的延時。
在本較佳實施例中,在生成測試腳本的過程時還可以針對每個腳本參數的處理,向測試腳本生成方提示,讓測試腳本生成方確認是否需要執(zhí)行相應的操作。例如在歸并重復命令,查詢到存在兩個以上連續(xù)的重復操作時,可以向測試腳本生成方提示,由測試腳本生成方來確定是否需要歸并重復命令。
在執(zhí)行測試腳本時,也可定義通過另外定義選項,用于選擇是否反復執(zhí)行或者限定執(zhí)行的次數、或者提供執(zhí)行過程中可以暫停并繼續(xù)的選項。
另外,需要指出的是根據命令行輸入鏈表和控制臺窗口名稱鏈表就可以生成測試腳本。回顯內容輸出鏈表和命令行時間間隔鏈表是為了實現一些腳本參數而生成的。例如,回顯內容輸出鏈表可以用來實現過濾錯誤命令;命令行時間間隔鏈表可以用來實現刪除時間間隔。也就是說,當不存在與回顯內容相關的腳本參數時,可以不生成回顯內容輸出鏈表,相應的也就不需要記錄針對每個命令相應的回顯內容;當不存在與時間間隔相關的腳本參數時,可以不生成命令行時間間隔鏈表,相應的也就不需要記錄每條命令行對應的時間間隔。
當然,還存在另外一種實現方式,即在生成鏈表時,生成命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表,生成腳本時,利用選擇的腳本參數對應的鏈表生成測試腳本。例如,選擇的腳本參數為歸并重復命令,在生成鏈表時可以生成這四種類型的鏈表,但在生成測試腳本時,則只需要根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本。又如,選擇的腳本參數為刪除時間間隔,生成測試腳本時只需要根據命令行輸入鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表生成測試腳本即可。
以上為本較佳實施例方法流程的具體介紹,以下描述的是根據測試記錄文件生成命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表的詳細步驟。
圖2為上面描述的詳細步驟。在圖2所示的流程中,測試記錄文件以XML文件格式存在,與步驟101中列舉的XML文件形式相同,即以<term>表示窗口的切換信息;以K為標記表示擊鍵輸入內容;以E為標記表示回顯內容;屬性t為時標,記錄當前擊鍵時間;屬性1為長度。
在執(zhí)行本流程之前,還需要設置臨時文件和臨時時間鏈表。其中臨時文件用于在遍歷測試記錄文件的過程,臨時存儲未形成命令行的擊鍵內容。例如,當一個命令為ping時,這個命令存在四個擊鍵內容,分別是p、i、n、g,由于一個命令通常以回車鍵結束,因此在沒有遇到回車鍵時,p、i、n、g分別依次存儲在臨時文件中,當遇到回車鍵時,則從臨時文件中取出該ping命令并清空臨時文件。另外,臨時時間鏈表,用于存儲一條命令的輸入時間。
在生成上述相關鏈表時,需要遍歷XML文件中的所有的結點,在此為了簡要清楚的描述,圖2為針對XML文件中一個結點的處理過程為例進行描述,其他結點的處理方法與該過程相同,具體過程如下所示在步驟201中,判斷當前結點是否為元素結點(ELEMENT_NODE),如果是,則執(zhí)行步驟202;否則,執(zhí)行步驟213。
在此,介紹一下XML文件中的結點,在本發(fā)明的實施例中使用到的XML文件中的結點主要分為兩類,例如<K t=″2915500″>為一類結點,結點類型為ELEMENT_NODE;而之后緊跟的d為一類結點,結點類型為文本結點(TEXT_NODE),文本結點用于記錄緊跟的元素結點對應的內容。
在步驟202中,判斷當前元素結點的標記是否為K,如果是,則執(zhí)行步驟203;否則,執(zhí)行步驟208。
在步驟203中,遍歷當前元素結點對應的文本結點,判斷文本結點的內容是否為回車鍵,如果是,則執(zhí)行步驟204;否則,執(zhí)行步驟207。
在步驟204中,將臨時文件中的內容作為一條命令加入命令行輸入鏈表中。當擊鍵內容為回車鍵時,則表明當前在臨時文件中所保存的內容為一條命令,因此可以將該條命令作為一個元素加入命令行輸入鏈表中。
在步驟205中,將當前元素結點的時間屬性追加存儲至臨時時間鏈表。此時,由于遇到了回車鍵,則表明此刻對應著某條命令的輸入結束,因此則可以將當前元素結點的時間屬性作為步驟204中所述命令的時間。
在步驟206中,根據臨時時間鏈表得到本次命令輸入的時間間隔,并記錄至命令行時間間隔鏈表中,執(zhí)行步驟213。
當本次記錄的時間為臨時時間鏈表中第一次記錄的時間,即本次命令輸入為測試過程中的第一次輸入命令,此時將本次命令的輸入時間間隔為0;當本次記錄的時間不為臨時時間鏈表中的第一次記錄,則獲得臨時時間鏈表中最后兩次記錄的時間,得到這兩個時間的差值,該差值即為對應于本次命令行的時間間隔。在臨時時間鏈表中記錄的時間均是輸入命令的時間,因此最后兩次記錄時間的差值就是本次命令與上次命令的輸入時間間隔。
在步驟207中,將當前文本結點內容追加存儲至臨時文本中,執(zhí)行步驟213。
在步驟208中,判斷當前元素結點的標記是否為E,如果是,執(zhí)行步驟209;否則,執(zhí)行步驟211。
在步驟209中,判斷臨時文本中的內容是否為空,如果是,則執(zhí)行步驟210;否則,執(zhí)行步驟213。
在步驟210中,遍歷當前元素結點對應的文本結點,將文件結點中記錄的回顯內容作為一個元素,記錄至回顯內容輸出鏈表中,執(zhí)行步驟213。另外,當由于回顯內容過多,而需要記錄在多個連續(xù)標記為E的元素結點對應的文本結點時,則將則多個連接的標記為E的元素結點對應的回顯內容作為一個元素,記錄至回顯內容輸出鏈表中。
步驟210是在臨時文本中的內容為空的情況下執(zhí)行的。當臨時文本中的內容為空時,說明一條測試命令剛輸入,則此時標記為E的元素結點對應的文本結點記錄著該測試命令的回顯內容。
在步驟211中,判斷當前元素結點的標記是否為term,如果是,則執(zhí)行步驟212;否則,執(zhí)行步驟213。
在步驟212中,遍歷當前元素結點對應的文本結點,將該文本結點的內容記錄至控制臺窗口名稱鏈表。
在步驟213中,結束當前結點的處理流程。
通過對每個結點執(zhí)行如上的流程,就可以根據測試記錄文件命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表。
如上所述的方法也可以采用軟件實現,該軟件可以存儲在計算機可讀取的存儲介質中,例如光盤、軟盤、閃存、或者計算機的硬盤。
圖3為本發(fā)明較佳實施例裝置的結構圖。該裝置包括記錄單元31、選擇單元32和測試腳本生成單元33。其中,記錄單元31,用于根據手工測試過程,生成測試記錄文件。選擇單元32,用于根據腳本參數列表,確定腳本參數。測試腳本生成單元33,用于根據記錄單元31生成的測試記錄文件、以及選擇單元32確定的腳本參數,生成測試腳本。
另外,本發(fā)明可以采用利用命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表和命令行時間間隔鏈表生成測試腳本的方法,因此該裝置進一步包括鏈表生成單元34。這里,鏈表生成單元34,位于記錄單元31與選擇單元32之間,用于根據記錄單元31生成的測試記錄文件,生成并將命令行輸入鏈表和控制臺窗口名稱鏈表發(fā)送至測試腳本生成單元33;相應的,測試腳本生成單元33,根據命令行輸入鏈表和控制臺窗口名稱鏈表,以及選擇單元32確定的腳本參數生成測試腳本。另外,鏈表生成單元34進一步用于生成回顯內容輸出鏈表和/或命令行時間間隔鏈表,并將其發(fā)送至測試腳本生成單元33;相應的,測試腳本生成單元33,在生成測試腳本時進一步根據回顯內容輸出鏈表和/或命令行時間間隔鏈表生成測試腳本。
上述實現本發(fā)明實施例方法的軟件與圖3所示的裝置具有相同的技術效果。
綜上所述,在本發(fā)明實施例的方法以及裝置中,通過設置優(yōu)化測試腳本的腳本參數列表,使腳本生成方能夠根據腳本參數列表,選擇腳本參數;并根據選擇的腳本參數生成測試腳本。因此用戶或測試腳本的生成方,則可以根據自身的情況在腳本參數列表中選擇一個或多個腳本參數,并根據選擇的腳本參數及測試記錄文件生成優(yōu)化的測試腳本。本發(fā)明實施例所提供的方法以及裝置,能夠實現根據測試腳本生成方的需要,生成優(yōu)化的測試腳本,能夠實現刪除錯誤、歸并重復、歸并循環(huán)等功能,提高了測試腳本的測試性能,節(jié)約了測試系統的資源,同時也就有很強的適應性。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種生成測試腳本的方法,其特征在于,設置腳本參數列表;該方法包括以下步驟A、根據手工測試過程,生成測試記錄文件;根據腳本參數列表,選擇腳本參數;B、根據選擇的腳本參數及測試記錄文件,生成測試腳本。
2.根據權利要求1所述的方法,其特征在于,在步驟B之前,該方法進一步包括X、根據測試記錄文件生成命令行輸入鏈表和控制臺窗口名稱鏈表;相應的,步驟B中,所述生成測試腳本包括根據命令行輸入鏈表、控制臺窗口名稱鏈表及選擇的腳本參數,生成測試腳本。
3.根據權利要求2所述的方法,其特征在于,步驟A中,所述生成測試記錄文件為根據手工測試的操作過程,按照時間順序記錄所有擊鍵內容及窗口信息。
4.根據權利要求3所述的方法,其特征在于,步驟X中,所述生成命令行輸入鏈表的步驟包括遍歷測試記錄文件,將測試記錄文件中第一個回車鍵之前所有的擊鍵內容作為一條命令,加入命令行輸入鏈表;將之后每兩個回車鍵之間所有的擊鍵內容作為一條命令加入命令行輸入鏈表;相應的,所述生成控制臺窗口名稱鏈表的步驟包括根據記錄的窗口信息,針對每條命令將該命令所在的控制臺窗口名稱記錄至控制臺窗口名稱鏈表。
5.根據權利要求2、3或4所述的方法,其特征在于,所述選擇的腳本參數為歸并重復命令;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,根據命令行輸入鏈表識別并歸并連續(xù)的重復命令。
6.根據權利要求2、3或4所述的方法,其特征在于,所述選擇的腳本參數為歸并循環(huán)操作;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,識別命令行輸入鏈表中的循環(huán)操作并歸并識別出的循環(huán)操作。
7.根據權利要求2、3或4所述的方法,其特征在于,進一步包括設置刪除命令集合;所述腳本參數為刪除命令;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,根據刪除命令集合以及命令行輸入鏈表,刪除相應命令。
8.根據權利要求3所述的方法,其特征在于,步驟A中,根據手工測試的操作過程,進一步記錄與所有擊鍵內容對應的回顯內容;步驟X中,進一步根據測試記錄文件生成回顯內容輸出鏈表;當選擇的腳本參數與回顯內容相關時,所述生成測試腳本包括根據命令行輸入鏈表、回顯內容輸出鏈表、控制臺窗口名稱鏈表及選擇的腳本參數,生成測試腳本。
9.根據權利要求8所述的方法,其特征在于,所述生成回顯內容輸出鏈表包括將針對每條命令的回顯內容,分別加入回顯內容輸出鏈表。
10.根據權利要求8或9所述的方法,其特征在于,所述選擇的腳本參數為轉化檢查操作;該方法進一步包括設置需要轉化的命令;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,根據命令輸入鏈表查找到需要轉化的命令,將所述命令轉化為檢查操作。
11.根據權利要求10所述的方法,其特征在于,該方法進一步包括根據回顯內容輸出鏈表,查找到所述需要轉化的命令對應的回顯內容,將所述查找到的回顯內容作為所述轉化檢查操作的參數。
12.根據權利要求8或9所述的方法,其特征在于,所述腳本參數為過濾錯誤命令;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,根據回顯內容輸出鏈表中記錄的錯誤指示,忽略所述錯誤指示對應的命令行。
13.根據權利要求3所述的方法,其特征在于,步驟A中,根據手工測試的操作過程,進一步記錄與所有擊鍵內容對應的擊鍵時間;步驟X中,進一步根據測試記錄文件生成命令行時間間隔鏈表;當選擇的腳本參數與擊鍵時間相關時,所述生成測試腳本包括根據命令行輸入鏈表、命令行時間間隔鏈表和控制臺窗口名稱鏈表及選擇的腳本參數,生成測試腳本。
14.根據權利要求13所述的方法,其特征在于,所述生成命令行時間間隔鏈表包括針對每條命令行,得到該命令行與上條命令行之間的時間間隔,并記錄至命令行時間間隔鏈表。
15.根據權利要求13或14所述的方法,其特征在于,所述腳本參數為刪除時間間隔;步驟B中,所述生成測試腳本為在根據命令行輸入鏈表和控制臺窗口名稱鏈表生成測試腳本的過程中,根據命令行時間間隔鏈表刪除兩條命令之間的延時。
16.一種生成測試腳本的裝置,其特征在于,該裝置包括記錄單元,用于根據手工測試過程,生成測試記錄文件;選擇單元,用于根據腳本參數列表,確定腳本參數;測試腳本生成單元,用于根據記錄單元生成的測試記錄文件、以及選擇單元確定的腳本參數,生成測試腳本。
17.根據權利要求16所述的裝置,其特征在于,該裝置進一步包括鏈表生成單元;所述鏈表生成單元,位于記錄單元與選擇單元之間,用于根據記錄單元生成的測試記錄文件,生成并將命令行輸入鏈表和控制臺窗口名稱鏈表發(fā)送至測試腳本生成單元;相應的,所述測試腳本生成單元,根據命令行輸入鏈表和控制臺窗口名稱鏈表,以及選擇單元確定的腳本參數生成測試腳本。
18.根據權利要求17所述的裝置,其特征在于,所述鏈表生成單元,進一步用于生成回顯內容輸出鏈表和/或命令行時間間隔鏈表,并將其發(fā)送至測試腳本生成單元;相應的,所述測試腳本生成單元,在生成測試腳本時進一步根據回顯內容輸出鏈表和/或命令行時間間隔鏈表生成測試腳本。
全文摘要
本發(fā)明公開了一種生成測試腳本的方法,設置腳本參數列表;該方法包括以下步驟A、根據手工測試過程,生成測試記錄文件;根據腳本參數列表,選擇腳本參數;B、根據選擇的腳本參數及測試記錄文件,生成測試腳本。另外,本發(fā)明還公開了一種生成測試腳本的裝置。通過應用本發(fā)明提供的方法及裝置,能夠實現根據測試腳本生成方的需要,生成優(yōu)化的測試腳本,能夠實現刪除錯誤、歸并重復、歸并循環(huán)等功能,提高了測試腳本的測試性能,節(jié)約了測試系統的資源,同時也就有很強的適應性。
文檔編號G06F11/36GK1996239SQ20061016718
公開日2007年7月11日 申請日期2006年12月26日 優(yōu)先權日2006年12月26日
發(fā)明者許永利, 白琳 申請人:華為技術有限公司