您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > PHPUnit
phpunit常見(jiàn)問(wèn)題分析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/12/27 9:43:47 ] 推薦標(biāo)簽:開(kāi)發(fā) 客戶(hù)端

根本的解決方法:

      $this->waitForCondition("selenium.browserbot.getUserWindow().jQuery.active == 0", "3000");       //此處3000,即限定的超時(shí)時(shí)間timeout。

       $this->click("css=input[type=submit]");

 

解釋waitForCondition用法:

waitForCondition(JavaScriptSnippet,time)

-在限定時(shí)間內(nèi),等待一段JavaScript.代碼返回true值,超時(shí)則停止等待

   其中"selenium.browserbot.getUserWindow().jQuery.active == 0"這是一段javascript語(yǔ)句,

 意思:檢查得到的窗體里AJAX的活動(dòng)數(shù)量為0時(shí),則為0即無(wú)AJAX活動(dòng)了,則為真,為真可以繼續(xù)向下運(yùn)行。反之,在限定的timeout 3秒時(shí)間內(nèi),活動(dòng)數(shù)仍不為0,則會(huì)報(bào)錯(cuò)。

常見(jiàn)的框架:

jQuery   : “jQuery.active”

Prototype: “Ajax.activeRequestCount”

Dojo    : “dojo.io.XMLHTTPTransport.inFlight.length

我們用的是jQuery框架,即寫(xiě)成jQuery.actiive

3000是3秒。

 

不正確的解決方法:

for ($second = 0; ; $second++) {

           if ($second >= 60) $this->fail("timeout");

            try {

                if ($this->isElementPresent("css=input[type=submit]")) break;

            } catch (Exception $e) {}

           sleep(1);

      }

此處用的方法:waitForElementPresent(locator,variableName)驗(yàn)證指定元素在頁(yè)面上。

此方法解決AJAX錯(cuò)誤時(shí)無(wú)效。其檢驗(yàn)元素的方法,可解決javascript的問(wèn)題。常見(jiàn)問(wèn)題4中會(huì)詳解。

 

常見(jiàn)問(wèn)題2:服務(wù)器連接不上。

解決方法:目前我們服務(wù)器上同時(shí)只能邊接兩臺(tái)機(jī)器。所以,這兒的解決方法,只能限于兩臺(tái)哦。

上一頁(yè)12345下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd