qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Selenium執行測試腳本穩定性的一些經驗分享交流

            關于工作中使用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暫停問題。

           我們發現使用WebDriver的過程中,TESTCASE在執行時,并非只有GET(Url)的時候會發生測試CASE卡主的問題,以下是對會發生此情況的函數的補充

            driver.findelement(String locator) //查找頁面元素
            driver.refush(); //刷新頁面
            driver.getpagesource(); //獲取頁面html文本輸出
            element.click();//點擊頁面元素

            見過檢查發現上述函數在加載頁面或查找頁面元素的時候,若發生由于網絡原因或者頁面模塊加載出現問題時,頁面都會在這個過程中卡住,直接的后果就是這個CASE持續執行幾小時沒結果。在 穩定性1文中我們已經介紹過處理的方法,在這里只針對某一個函數去放出部分代碼,

            具體思路為

            以driver.refush();為例

            線程實現的代碼

            核心調用的刷新頁面的函數

            refreshThread();實現

            調用流程

            主CASE執行刷新函數?刷新函數調用子線程?子線程執行刷新?執行完畢告訴主線程OK。

            若主線程判斷子線程超時既頁面卡主的情況,則主線程會關閉子線程執行相應的FAIL操作。

            歡迎交流~

          posted on 2012-12-24 15:28 順其自然EVO 閱讀(1925) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 马山县| 赣州市| 酉阳| 吉安县| 金塔县| 蚌埠市| 永顺县| 济宁市| 迭部县| 新平| 开远市| 霍林郭勒市| 大渡口区| 元朗区| 临汾市| 右玉县| 双鸭山市| 台山市| 乐至县| 萨嘎县| 宜州市| 云梦县| 青浦区| 安吉县| 霞浦县| 北安市| 三河市| 罗甸县| 安陆市| 隆德县| 北流市| 香河县| 天峨县| 门源| 偃师市| 宜兰市| 北票市| 罗山县| 东方市| 巫溪县| 呼图壁县|