中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

試用watir——由喜憂參半到柳暗花明

發布時間:2020-08-11 12:54:36 來源:網絡 閱讀:423 作者:jch_zhao 欄目:軟件技術

   我在前面說過基于錄制、回放的web測試麻煩多多,經常是帶來的好處不如麻煩多。所以另尋他途。經過一番調研,覺得webdriver(也即selenium 2.0)前途較好,準備試用。webdriver支持多種語言,我們的項目是基于java編寫的,按說用java能夠更好的和項目集成。但考慮到剛開始用,快速上手很有必要,使用環境越輕量級越好。于是采用watir——Web Application Test In Ruby。我對ruby的了解僅限于聽說過這個名稱,好在網上有不少教程,而且快速展開測試也并不需要多深入的學習語言本身。使用ruby還有個好處就是它是一種解釋性語言,可以即時調試。


安裝沒什么難度(其實比網上的一些例子更容易,因為版本高了,很多工作不用準備了)

1.安裝ruby,最新2.1,我裝的是2.0。一路next完成。(devkit貌似不裝也可以)

2.gem update --system (不升級也可以,自帶的版本也夠)

3.gem install watir 以及gem install watir-webdriver (可以用gem list看一下,如果已經包括了,這步也省了)

4.如果需要用ie和chrome測試,那么下載這兩個的驅動:地址是,ie的:http://code.google.com/p/selenium/downloads/list chrome的:http://chromedriver.storage.googleapis.com/index.html

(關于chrome驅動得多說兩句——因為這個問題費了我十幾個小時的腦力。這個地址是我排查錯誤時找到的。網上大部分說法是在這里下http://code.google.com/p/chromedriver/downloads/list。但是這里搜到的最高版本才2.3,當chrome版本超過30,就不適用了。所以我用chrome測試失敗之后,嘗試很久才發現是驅動版本問題。驅動版本并非越高越好,要在上面我給出的地址里找到和chrome版本對應的驅動才行)


下面說說我在簡單試用中發現的問題和最后的解決辦法。


1.chrome驅動算一個,不重復了。


2.大多時候我們快速開始于一些簡單的例子。比如測試百度、google。因為這兩個頁面看上去似乎非常簡單,一個文本輸入框,一個檢索按鈕。然而,打開百度、google首頁的源代碼,我們發現,這些頁面內容遠比展現出來的復雜的多,頁面元素一層一層嵌套,想找個id和name都不容易。所以開始給我造成一些迷惑以至于讓我對webdriver頗為憂慮。


   舉個例子,我用一段腳本在ie里執行沒問題,換到firefox就不行。讓我對使用watir進行瀏覽器兼容性測試沒了信心。如果換瀏覽器還要重新調試腳本的話,那么跟手工做沒太大區別了。后來經過仔細調試,發現是因為——ie驅動的容錯性更好導致的差別。具體來說,是頁面中有元素的name屬性重名,在ie里就正確識別出來了,而在firefox就報錯了。都改用id屬性就可以了,這樣腳本就通用了。


3.然而更詭異的事情繼續發生。一段腳本前一天執行還沒問題,后一天就不行了。或者換臺機器就不行了。這又是咋回事呢?經過排查,發現在百度和google首頁中元素的id、name是變化的——我現在還沒仔細驗證是根據訪問ip變化的還是根據訪問時段變化的。簡直是坑爹啊。好在測試自己的項目時不會發生這樣的事。所以網上大部分教程用百度、google首頁做例子并不適合,很容易調不通讓新手一頭霧水。


   這樣一來,也給我們自己開發時提了個醒,頁面元素的id和name盡量唯一且固定。找到原因之后,我對watir有些信心了,在項目中準備正式用了。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷波县| 临桂县| 福州市| 阳山县| 江川县| 张家界市| 石嘴山市| 揭阳市| 勃利县| 龙州县| 麻城市| 正宁县| 杭州市| 浦城县| 陆河县| 泾源县| 阿坝| 社会| 林口县| 泸溪县| 湖南省| 全南县| 福建省| 平泉县| 容城县| 墨江| 兴业县| 天峨县| 平江县| 丰城市| 七台河市| 玉田县| 开阳县| 宁远县| 东丰县| 平安县| 樟树市| 盐亭县| 东宁县| 济源市| 伊宁市|