Nicholas @ BlogJava

          Coding the future!
          posts - 1, comments - 7, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          用 Selenium 進(jìn)行功能測(cè)試

          Posted on 2006-11-02 16:34 Nicholas Ding 閱讀(3509) 評(píng)論(7)  編輯  收藏 所屬分類: 測(cè)試
          最近在用 Selenium 對(duì)剛完工的系統(tǒng)做功能測(cè)試,因?yàn)橹車?Selenium 的人太多了,所以想嘗試一下到底用起來(lái)怎么樣。Tin 的文章 Selenium做功能測(cè)試的一點(diǎn)討論 探討了 Selenium 使用的一些問(wèn)題,我再作點(diǎn)補(bǔ)充。

          1、關(guān)于跨域問(wèn)題,因?yàn)槟壳巴旯さ南到y(tǒng)有這個(gè)需求,這個(gè)AJAX應(yīng)用需要啟用跨域訪問(wèn),當(dāng)然是繼承一個(gè)共同的父域。這時(shí)候就需要一個(gè)小小的 trick,手工給頁(yè)面設(shè)置一個(gè)父域,如 document.domain = xxx.com.cn,Selenium IDE 沒(méi)有這個(gè)問(wèn)題是因?yàn)樗?FF 的插件,不想 RC 開(kāi)了一個(gè) iframe 在進(jìn)行測(cè)試。那么如何在開(kāi)始測(cè)試的時(shí)候執(zhí)行一段腳本呢?下面是這個(gè) trick:

          waitForCondition("document.domain=xxx.com.cn;true", "3000")

          waitForCondition 函數(shù)多用于 AJAX 的測(cè)試環(huán)境,這里通過(guò)這個(gè)函數(shù)達(dá)到一個(gè)小小的目的。

          2、無(wú)法向 <input type="file"/> 里面輸入路徑。Tin 同學(xué)說(shuō)如果這個(gè)能用會(huì)存在潛在不安全因素,的確沒(méi)錯(cuò)。但是 Mozilla 系列的瀏覽器通過(guò)插件可以實(shí)現(xiàn)這個(gè)功能,Selenium IDE 就可以做到,RC 目前無(wú)法完成這個(gè)功能,所以在測(cè)試中間如果涉及文件上傳的話就得另想辦法了。

          3、Selenium RC 的 interactive 模式,這個(gè)模式可以讓你手工參與命令的執(zhí)行,你可以在測(cè)試過(guò)程結(jié)束后不要把瀏覽器關(guān)閉,轉(zhuǎn)而通過(guò)手工鍵入命令的形式作一些調(diào)試,還是非常有用的。

          總結(jié)一下,使用 Selenium 的最好方式基本還是先通過(guò) IDE 進(jìn)行錄制,然后轉(zhuǎn)換成代碼并且自己在修修改改。我個(gè)人認(rèn)為 IDE 提供的 xpath 功能是定位的最佳方式,但是我還沒(méi)有找到任何一個(gè) ff 插件可以獨(dú)立作這個(gè)事情。


          評(píng)論

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2006-11-02 17:30 by inlife.cn
          要是能給個(gè)視頻就很爽啊。

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2006-11-02 20:15 by netfishx[匿名]
          關(guān)于xpath,試試XPath Checker。是ff插件

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2006-11-02 21:25 by Nicholas Ding
          @netfishx[匿名]

          我試了,Selenium IDE 產(chǎn)生的 xpath 是以 // 開(kāi)頭的,這點(diǎn) ff 的其他 xpath 插件都沒(méi)法做到。

          Selenium 用的 xpath.js 是 Google 寫(xiě)的,看過(guò)他的代碼,也是基于狀態(tài)機(jī)的實(shí)現(xiàn),非常不錯(cuò)。

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2006-11-02 23:18 by Tin
          呵呵,如果潛心其中,對(duì)Selenium API了如指掌的話還是可以不用Selenium IDE進(jìn)行測(cè)試的,哈哈。nicholas很有這個(gè)潛力:D

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2008-04-25 16:01 by amy
          "Selenium做功能測(cè)試的一點(diǎn)討論" 這篇文章怎么刪了嘛?訪問(wèn)不了

          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2008-12-03 14:15 by brunce
          selenium.Open("xxxx");
          selenium.WaitForPageToLoad("10000"); selenium.WaitForCondition("document.domain='acgchina.8866.org';true", "3000"); //這句運(yùn)行沒(méi)有問(wèn)題
          selenium.Click("id=tab-quality-image");
          selenium.SelectFrame("id=quality"); //這個(gè)frame和當(dāng)前頁(yè)面共同的父域名:acgchina.8866.org; 報(bào)錯(cuò):Access is denied

          請(qǐng)幫忙看看


          # re: 用 Selenium 進(jìn)行功能測(cè)試  回復(fù)  更多評(píng)論   

          2008-12-03 16:34 by brunce
          補(bǔ)充一點(diǎn),這是在IE7里面,如果換到FF3, selenium.WaitForCondition("document.domain='acgchina.8866.org';true", "3000") 就會(huì)出異常。

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 育儿| 冷水江市| 资中县| 镇雄县| 稻城县| 贵溪市| 金阳县| 贵德县| 信宜市| 渭源县| 内丘县| 竹山县| 乐山市| 娄底市| 西平县| 永泰县| 赣州市| 手机| 海原县| 灵山县| 普安县| 同江市| 安泽县| 广安市| 崇礼县| 白玉县| 九台市| 神木县| 宝应县| 新兴县| 门头沟区| 内乡县| 华阴市| 阳原县| 宁阳县| 潮州市| 巫山县| 城步| 沙田区| 庆元县| 松江区|