HyperPacer指令碼錄製原理及常見問題解決
HyperPacer指令碼錄製是通過在執行機器上啟動一個Http代理伺服器,讓被錄製應用程式通過該代理伺服器進行網路傳輸,HyperPacer指令碼錄製器會攔截通過代理伺服器的所有請求響應資料,來自動生成測試指令碼。注意是攔截所有通過代理伺服器的請求響應,可能在錄製指令碼的過程中存在其它程式不可見的網路訪問,如果不希望錄製在指令碼中,就需要在錄製配置中進行過濾設定,以保證錄製的指令碼中的請求都是期望的被測系統的請求。HyperPacer目前支援基於URI的過濾和Content Type的過濾,如果沒有配置,錄製生成了非期望的指令碼,也不打緊,直接在指令碼中刪除即可。
基於以上原理,需要錄製指令碼,首先就需要更改瀏覽器的代理設定,目前HyperPacer在Windows系統上實現了錄製開始時自動設定IE瀏覽器代理,錄製結束後自動取消代理設定,其它瀏覽器如Chrome、Firefox等瀏覽器上需要手動設定瀏覽器代理,在其他瀏覽器選擇了使用IE的代理設定的情況下直接設定IE的即可。
指令碼錄製的基本步驟為:點選選單欄的“錄製”,開啟“錄製配置”介面,完成“錄製配置”後,點選“確定”,彈出“指令碼錄製器”,即開始自動指令碼錄製。如果是Windows系統,正常情況下會自動開啟IE瀏覽器,直接在瀏覽器中進行操作即可。如果沒有開啟,則需要手工開啟瀏覽器,首先需要進行代理設定,代理IP地址為本地IP地址,埠為錄製配置中的監聽埠。如果需要使用非IE瀏覽器錄製指令碼,在非Windows系統上都需要首先手動設定代理,錄製結束後手動取消代理設定。
由於執行機執行環境的不穩定性,有時候結束指令碼錄製後,自動設定的代理可能無法自動取消,如果發現上不了網了,就手動取消代理設定。IE瀏覽器取消代理後,其它瀏覽器由於快取了代理設定,如果快取還未失效,無法上網的也需要手動取消一下代理設定。有些瀏覽器,如Chrome,可能快取了IE的代理設定,取消IE代理設定後,不會立即自動同步,代理設定需要手動修改一下。
在所有平臺和瀏覽器上實現自動代理配置對HyperPacer來說,尚有難度,未來HyperPacer會繼續強化指令碼錄製的易用性,可能通過COM訪問等更加穩定的方式來解決此問題。
HyperPacer在Win8、Win10上不能自動開啟IE瀏覽器,但是能夠自動設定代理,需要手動開啟IE進行指令碼錄製。不能開啟瀏覽器的原因是執行“explorer.exe about:Tabs”命令時Windows不能找到正確的開啟方式,我暫時沒找到解決辦法,有知道的煩請告知。