新四季網

一種自動化腳本實現方法

2023-05-27 07:10:21


專利名稱::一種自動化腳本實現方法
技術領域:
:本發明涉及軟體自動化測試技術,尤其涉及一種自動化腳本實現方法。技術背景在軟體開發工作中,軟體質量日益受到重視,相應的,軟體測試作為軟體開發項目的必要環節也從一個相對獨立的步驟越來越緊密嵌套在整個軟體生命周期中。所謂軟體測試,是指根據軟體開發各階段的規格說明和程序的內部結構而精心設計一批測試用例,並利用這些測試用例去運行程序,以發現程序錯誤的過程。所述測試用例是指輸入數據並得到預期的輸出結果。在軟體測試領域,以測試用例實施自動化測試時,為了較好的實現代碼的重用,一般除了進行底層操作的封裝外,還需要將相關的測試操作封裝成一系列的動作函數,每個動作函數可包含一個測試動作的邏輯結果或者返回結果。所謂自動化測試,是指通過使用自動化測試工具或其他手段,按照預定的測試計劃對軟體進行自動測試的過程。所謂測試用例的腳本文件是一系列動作函數的邏輯組合,測試邏輯通常包括對測試用例步驟的順序、分支及循環等的控制。目前,實現測試邏輯與測試工作融合的方法通常有以下兩種方式一種是直接在靜態測試腳本中添加測試邏輯,以實現對這些動作函數執行流程的控制;另一種是採用關鍵字驅動的方法由靜態腳本完成數據加載,並根據所需的關鍵字來創建相應的動態腳本,再由動態腳本根據關鍵字實施動作函數的執行。但這些現有的自動測試方法存在如下不足之處第一,採用手動^f'務改靜態腳本的測試方式,雖然實現測試邏輯的靈活性較強,但是對測試腳本執行者的要求較高,需要其熟練掌握腳本語言的語法等技術,且腳本的可維護性差;第二,採用關鍵字驅動的方法實現跳轉需要對測試的目標點進行標記,關鍵字執行內容較多,且測試執行的邏輯順序不直觀;第三,現有的自動化測試方法只能間接地進行邏輯層步驟的跳轉控制,例如通過中間層先將測試腳本中的循環和分支邏輯按照已知環境轉化為順序測試邏輯結構,然後才能再執行。
發明內容有鑑於此,本發明的主要目的在於提供一種自動化腳本實現方法,能簡化測試腳本的執行過程,提高測試腳本的易用性和靈活性。為達到上述目的,本發明的技術方案是這樣實現的一種自動化腳本實現方法,該方法包括A、根據測試環境編寫分層的測試用例腳本,該測試用例腳本中包括至少一個測試用例步驟、至少一個測試用例子步驟、以及所述測試用例子步驟的操作及期望;B、依次加載所編寫測試用例腳本中每個測試用例步驟,根據當前測試用例步驟中所述子步驟執行後的跳轉邏輯信息,或當前測試用例步驟中所述子步驟的操作及期望的邏輯執行結果所得到的跳轉邏輯信息,確定下一個執行的測試用例步驟。其中,所述測試用例子步驟的操作及期望進一步包含對象、對象的動作及所述動作的參數。步驟B所述測試用例子步驟執行後的跳轉邏輯信息為根據測試用例需要預先設置的測試用例步驟標識ID值。步驟B所述根據當前測試用例步驟中所述子步驟的操作及期望的邏輯執行結果所得到的跳轉邏輯信息通過將所述測試用例子步驟的操作及期望的邏輯測試結果進行邏輯與運算得到。所述確定下一個執行的測試用例步驟為將當前測試用例步驟中所設置的ID值所對應的測試用例步驟作為下一個執行的測試用例步驟,直至所述測試用例步驟的ID值超出所述測試用例步驟範圍,結束測試過程;或者,根據所述測試用例子步驟中操作及期望的邏輯測試結果的真假確定下一個執行的測試用例步驟,若所迷邏輯測試結果為真,則繼續執行所述測試用例子步驟所在測試用例步驟的其他測試用例子步驟,否則,將當前所執行的測試用例步驟的ID值加1,並執行新的測試用例步驟,直至所述測試用例步驟的ID值超出所述測試用例步驟範圍,結束測試過程。所述測試用例子步驟在執行時,依次執行操作和期望所指定對象的指定動作,並自動調入動作參數,然後將執行結果返回給當前測試用例子步驟。本發明所提供的自動化腳本實現方法,具有以下優點1)本發明將測試腳本的結構進行分層,實現了與測試用例步驟的——對應,使測試執行的邏輯執行順序變得清晰且可控制,並通過測試用例步驟及其子步驟的邏輯控制和控制測試用例步驟的顆粒度,減少了腳步文件的開發工作量,降低了腳步文件的維護成本。2)本發明通過對設備類進行抽象,統一了測試用例腳本的設計接口,相對於關鍵字技術而言大大減少了動作所需的參數,提高了用戶的易用性,降低了軟體測試人員編制腳本文件時對不同具體設備的認知要求。3)本發明將測試用例步驟、測試用例子步驟的操作細化到了每個對象的動作,提供了測試用例步驟的重用性;並且,採用了動作和儘量少的參數作為測試用例步驟的最小顆粒,隱藏了軟體測試執行人員可以不關注的測試過程細節,使得測試用例腳本設計更為簡單。圖1為本發明實施例中測試用例腳本的層次分解示意圖;圖2為本發明實施例中測試用例的測試組網示意圖;圖3為本發明實施例中測試用例的執行流程示意圖。具體實施方式下面結合附圖及本發明的實施例對本發明的方法作進一步詳細的說明。圖1為本發明實施例中測試用例腳本的層次分解示意圖,如圖1所示,測試用例腳本按照層次,主要包括測試用例步驟、測試用例子步驟。所述測試用例腳本包含一組帶有測試邏輯的測試用例步驟,每個測試用例步驟又包含一個或者多個測試用例子步驟、以及子步驟執行後的跳轉邏輯等信息。每個測試用例子步驟包括操作以及期望等信息,所述操作包括對象、對象的動作和動作的參數;所述期望包括對象、對象的動作和動作的參數。具體說,對象是某類被測設備、某類測試設備或測試儀器等的抽象,每個對象具有控制接口和動作兩種屬性。測試用例腳本執行時,腳本解釋器依次加載每個測試用例步驟,即依次加載測試用例步驟1測試用例步驟m,並根據每個測試用例步驟的執行結果確定下一個測試用例步驟的執行,從而實現分支、循環和順序等邏輯控制。每個測試用例步驟在執行時,依次執行測試用例步驟下的所有測試用例子步驟1測試用例子步驟n,並根據每個測試用例子步驟的結果確定當前測試用例步驟的執行結果。每個測試用例子步驟執行,依次執行操作和期望所指定對象的指定動作,並自動調入動作參數,然後返回執行結果給當前測試用例子步驟。根據以上測試用例腳本的層次結構,每個測試用例腳本所包含的測試用例步驟可以分為三類第一類測試準備,進行測試前的初始化工作。比如,做測試用例的前置條件或者設備連接,這裡可用Start標識。第二類測試執行,執行測試的主體內容。使用固定的步驟標識,如可預先設置每個步驟操作成功後下一步驟(NextStepIfSuc)對應的ID值,操作失敗後下一步驟(NextStepIfFail)對應的ID值,如果ID的數值超過最大值則跳到End,跳轉目標值為空,默認為當前測試用例步驟的ID+1。第三類測試收尾,收尾工作,這裡可用End標識。對於每個測試用例步驟來說包含多個測試用例子步驟,具體內容與測試用例要求相關,每個測試用例子步驟,返回該子步驟的執行結果。每個測試用例步驟的邏輯結果判定來源為每個測試用例子步驟的邏輯結果的"與"操作,如果為"—T-,,即"真",則跳轉到NextStepIfSuc值所指的測試用例步驟;如果為"-F-"即"假",則跳轉到NextStepIfFail值所指測試用例步驟。對於測試用例的測試用例子步驟,其^f各式如下其中,Opemtel表示測試用例子步驟1的對喿作,Expect3表示測試用例子步驟3的期望結果。這裡Obj表示對象,Cmd或Exec表示對象的操作動作,Args表示動作的參數,緊跟在冒號後面的為參數的具體內容。對於測試用例子步驟中Cmd操作,根據測試用例步驟期望結果判定,只能獲得邏輯"-T-"和"-F-"兩種結果,其中,"-T-,,表示當操作成功其返回值為空或一個參數或一個參數列表;"-F-,'表示當操作失敗或者返回值本身為"-F-"。對於測試用例子步驟中Exec操作,測試用例步驟的期望結果有三種即"-N-,'、"-T-"或"-F-";其中,"-N-,,表示是實際的操作本身失敗,該測試用例子步驟整個步驟失效;否則,還是返回邏輯"-T-"或"-F-"來指示下一步驟的跳轉走向。Exec操作的函數可以返回三種值,這裡,Cmd使用的函數發現"-N-"時統一要求返回"-F-"。為了方便對這三種返回值的判定,統一4故如下處理逸歐值^y試席辨,潔趁^應脊到拜ZD關戚關厥應/^碌值關^關敗^/一艱值-r-成#成顛脊贈8tableseeoriginaldocumentpage9其中,Cmd表示在函數實現中執行動作並檢查結果,供測試用例子步驟判斷成功或者失敗;而Exec表示僅執行動作,在操作成功後其返回的邏輯結果不作為判斷測試用例子步驟期望結果成功或失敗的依據,而僅作為步驟跳轉來使用,但如果操作失敗則這個測試用例子步驟也必須失敗。圖2為本發明實施例中測試用例的測試組網示意圖,如圖2所示,是一個對數字用戶線接入復用器(DSLAM,DSLAccessMultiplexer)進行測試的組網示意圖,依據該DSLAM的功能軟體編制測試用例腳本作為一個具體的測試用例。如下為根據圖2所示的組網示意圖搭建測試環境,對該DSLAM的多個局端埠進行遍歷並保存相關參數的測試用例腳本7fe5TOwejVowe=刺試^4大TeWC應jDe"Z/"e7=##箱豕才法rw/CaseZ)McZ:/"e2=#'^€#嚴*5Y印2弄S印jSfe/7l^C=兩試矛始的雀務工斧tableseeoriginaldocumentpage10圖3為本發明實施例中測試用例的執行流程示意圖,如圖3所示,根據圖2組網中所編制的DSLAM設備測試用例腳本的執行過程包括步驟301:讀取測試用例腳本的信息內容。這裡,所述讀:f又測試用例腳本的信息,包括讀:f又測試用例名稱、測試用例步驟的總步驟數、測試用例描述行總數等。本實施例中,所述測試用例步驟的總數共有六步,即第0步ID為[Start]、第1步ID為[Stepl]、第2步ID為[Step2]、第3步ID為[Step3]、第4步ID為[Step4]、第5步ID為[End]。步驟302:設置當前初始測試用例步驟的ID。這裡,所述當前初始測試用例步驟在首輪執行時測試用例步驟的ID為[Start]即測試用例步驟0,經過後續的幾輪執行後,測試用例步驟就可能是[Stepl]、[Step2]、[Step3]、[Step4]或[End]。步驟303:判斷當前測試用例步驟的ID是否在測試用例步驟範圍內,若是,則執行步驟304;否則,執行步驟308。這裡,所述當前測試用例步驟的ID,是根據測試用例步驟中的NextStepIfSuc值或NextStepIfFail值所指的測試用例步驟來確定的。比如,執行到測試用例步驟[step3]時,如果NextStepIfFail=3,則仍然執行[step3]的測試用例步驟,而如果NextStepIfSuc^2時,則在下一個測試用例步驟時執行[step2]的測試用例步驟。同理,若l丸行到NextStepIfFail=End時,則在4丸行下一個測試用例步驟時結束測試用例的所有測試過程。步驟304:執行當前的測試用例步驟,然後執行步驟305。這裡,首先執行的是測試用例步驟[Start]的內容,按照測試用例子步驟等的操作和其參數,對DSLAM進行連接及保存測試記錄數據的標題行,並將預期的輸出結果予以保存。後續執行的測試用例步驟如[Stepl]、[Step2]、[Step3]、[Step4]的內容實際中有差別,但按照測試用例子步驟的操作並保存所輸出預期的測試結果的過程是相似的,這裡就不再贅述。步驟305:判斷當前測試用例步驟邏輯結果是否為真,若是,則執行步驟307;否則,執行步驟306。這裡,所述當前測試用例步驟邏輯結果是否為真,是指執行當前測試用例步驟的測試結果是否為成功,即如果該邏輯結果為真,則說明當前該測試用例步驟測試通過,否則說明測試不通過。步驟306:設置測試用例步驟ID為當前目標值,然後返回執行步驟303。這裡,所述設置步驟ID為當前目標值,是指仍然執行當前測試用例步驟,對該測試用例步驟下的其他子步驟進行遍歷測試。步驟307:設置測試用例步驟ID自增1,然後返回執行步驟303。這裡,所述設置測試用例步驟ID自增1,是指在當前測試用例步驟ID值的基礎上增加1,即緊接著需要開始對下一個測試用例步驟進行測試。步驟308:設置當前腳本測試用例步驟ID為End,結束測試腳本的執行過程。以上所述為本發明實施例中測試用例步驟執行的一般過程,針對本發明實施例中的測試用例腳本執行過程,完整的測試過程描述如下首先,獲取測試用例步驟的總數,然後設置當前測試用例步驟為Start即測試用例步驟O,並執行測試用例步驟Start的內容,進行DSLAM的連接測試,保存記錄數據的標題行;若當前測試用例步驟Start執行成功即測試邏輯結果為真,則將測試用例步驟ID設置為1;否則,設置測試用例步驟ID為End,結束測試用例步驟。其次,判斷當前測試用例步驟ID是否在測試用例步驟範圍內,若在測試用例步驟總數範圍內,則繼續執行當前步驟,否則,轉至測試用例步驟End結束測試用例步驟;f支設測試用例步驟[Start]的測試結果為成功,則執行測試用例步驟[Step1],從DSLAM埠列表中取出第一個埠;這裡4艮設測試用例步驟[Stepl]執行測試結果為成功,此時則執行測試用例步驟[Step2],所述測試用例步驟[Step2]中有兩個測試用例子步驟,分別進行埠建鏈和保存埠參數信息到日誌文件的操作;假設步驟[Step2]執行測試結果為成功,則跳轉到測試用例步驟[Step3],執行測試用例步驟[Step3],取出DSLAM埠列表中的下一個埠並作為當前值;假設測試用例步驟[Step3]的測試執行結果為成功,則跳轉反覆執行步驟[Step2]的測試內容,直至測試用例步驟[Step3]將埠列表中的所有埠遍歷一遍;若測試用例步驟[Step3]的測試執行結果為失敗,則跳轉到測試用例步驟[Step3],此時測試用例步驟ID增加1即跳轉到測試用例步驟[Step4],執行測試用例步驟[Step4]後將所述埠列表中的首個埠恢復初值;假設測試用例步驟[Step4]的測試執行結果為成功,循環執行測試用例步驟[Step4]將所有埠都恢復初值,此時測試用例步驟ID增1,即接著執行下一測試用例步驟[End]的內容,斷開DSLAM的連接。最後,測試用例步驟ID為[End]時,此時當前測試用例步驟已超出測試範圍,測試過程結束。以上所述,僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。權利要求1、一種自動化腳本實現方法,其特徵在於,該方法包括A、根據測試環境編寫分層的測試用例腳本,該測試用例腳本中包括至少一個測試用例步驟、至少一個測試用例子步驟、以及所述測試用例子步驟的操作及期望;B、依次加載所編寫測試用例腳本中每個測試用例步驟,根據當前測試用例步驟中所述子步驟執行後的跳轉邏輯信息,或當前測試用例步驟中所述子步驟的操作及期望的邏輯執行結果所得到的跳轉邏輯信息,確定下一個執行的測試用例步驟。2、根據權利要求1所述的方法,其特徵在於,所述測試用例子步驟的操作及期望進一步包含對象、對象的動作及所述動作的參數。3、根據權利要求1所述的方法,其特徵在於,步驟B所述測試用例子步驟執行後的跳轉邏輯信息為根據測試用例需要預先設置的測試用例步驟標識ID值。4、根據權利要求1所述的方法,其特徵在於,步驟B所述根據當前測試用例步驟中所述子步驟的操作及期望的邏輯執行結果所得到的跳轉邏輯信息通過將所述測試用例子步驟的操作及期望的邏輯測試結果進行邏輯與運算得到。5、根據權利要求3或4所述的方法,其特徵在於,所述確定下一個執行的測試用例步驟為將當前測試用例步驟中所設置的ID值所對應的測試用例步驟作為下一個執行的測試用例步驟,直至所述測試用例步驟的ID值超出所述測試用例步驟範圍,結束測試過程;或者,根據所述測試用例子步驟中操作及期望的邏輯測試結果的真假確定下一個執行的測試用例步驟,若所述邏輯測試結果為真,則繼續執行所述測試用例子步驟所在測試用例步驟的其他測試用例子步驟,否則,將當前所執行的測試用例步驟的ID值加1,並執行新的測試用例步驟,直至所述測試用例步驟的ID值超出所述測試用例步驟範圍,結束測試過程。6、根據權利要求4所述的方法,其特徵在於,所述測試用例子步驟在執行時,依次執行操作和期望所指定對象的指定動作,並自動調入動作參數,然後將執行結果返回給當前測試用例子步驟。全文摘要本發明公開了一種自動化腳本實現方法,通過設置測試用例腳本的測試用例步驟的屬性和執行,以及設置測試用例子步驟的屬性和執行,實現對測試用例相應步驟間跳轉的邏輯控制,從而實現分支、循環和順序等邏輯流程的執行過程。使用本發明的方法,可以降低軟體測試人員對不同具體設備的認知要求,減少測試用例腳本的開發工作量,降低測試用例腳本的維護成本,同時,還提高了測試用例步驟代碼的重用性。文檔編號G06F11/36GK101246448SQ200810085548公開日2008年8月20日申請日期2008年3月17日優先權日2008年3月17日發明者支新軍,臧月琦,陸新華申請人:中興通訊股份有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀