關于工作中使用Selenium執行測試腳本穩定性的一些經驗分享
公司的自動化WEB測試框架IATA已上線運行了一段時間,期間發現一些腳本穩定性的問題,與大家分享一下。
CASE執行游覽器:ie firefox chrome
穩定性問題
一、在持續執行WEB自動化的過程中,如需持續執行腳本,比如持續跑腳本24小時,48小時,甚至一周時間。測試CASE會間歇性發生持續加載頁面無響應的情況。此現象發生后,測試CASE會因為持續加載頁面這個動作而無響應。后續CASE也不會執行直到當前人為手工解決當前的測試進程。
現象:頁面持續加載 無反應,測試CASE 中斷無法繼續執行。
解決方案:
1)如上圖
建議使用線程的方式來監控測試進程的WEB加載執行狀態。若超時后則從線程中FAIL當前CASE,使腳本可以持續運行。
方法
在頁面會發生跳轉的時候 啟一個 Thread來監控進程的狀況,在Thread的run方法定義一個 計時器,如果計時器超時,則可以刷新頁面,計時器清零,若此時刷新頁面后,計時器再次超時,則線程會關閉當前進程的游覽器,FAIL掉當前的CASE,TestNG會自動啟動下一個測試CASE。并且在全部測試CASE執行完畢后,TestNG會記載執行失敗的CASE,然后從新執行CASE。
部分Thread 代碼
Refresh code:
干掉線程的 code
這里是關掉chrome的進程 來達到關閉游覽器的目的。
通過上述步驟則可以控制游覽器加載的過程從而解決CASE中加載頁面無響應導致的CASE暫停問題。