假設該自動測試框架的原日志方案已經具有生成文本日志和截圖的功能,我們將在它的基礎上進行改進和優化,使之具有生成偽視頻日志的新特性。
圖三闡述了改進方案的基本工作步驟:
測試人員啟動某自動測試腳本script1的運行;
自動測試腳本script1進行初始化工作,并創建緩沖區screenshotsPool來儲存測試過程中捕獲的截圖;
自動測試腳本script1按既定邏輯順序執行;
與此同時,緩沖區screenshotsPool正獨立運行,以固定頻率不斷地截取屏幕圖像;
如果緩沖區到達最大容量,較早的截圖會在存入新圖前被刪去;
一旦自動測試發生錯誤,script1會通知screenshotsPool有錯誤產生;而后screenshotsPool搜集所有緩沖截圖,立即生成動態圖片(偽視頻);
Script1的自動測試結束;
圖三: 改進方案的時序圖

本例中給出的代碼主體ScreenshotsPool將以線程的形式運行,獨立于自動測試腳本的回放,因此實現了Runnable接口中的run()方法。(見圖四)
此外,還包括了其它必要的屬性,方法來完成截圖、儲存、生成偽視頻等操作,以及相關設置。后面會做詳細介紹。
在每個RFT腳本的初始化方法中,可以同時創建一個ScreenshotsPool對象,用以對腳本自動回放過程進行監控。
圖四: 改進方案的類圖

新方案關鍵代碼解釋
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/